Aws Amplify Kurulumu -1
Herkese selam 🖐 Bu yazıda Amplify’ın ne olduğundan ve kurulumunda bahsedeceğim. O zaman haydi başlayalım :)
Amplify Nedir ?
Amplify, mobil ve web uygulamalar için AWS tarafından oluşturulan servistir. Client tarafında yapılan model vb. ayarlar ile DynamoDB kullanarak hazır REST veya GraphQL olarak bir API servisi sunar.
Amplify Cli Kurulumu
AWS, Amplify için bazı işlerimizi otomatize etmemizi sağlayan Amplify Cli
oluşturmuş. Bu paketi npm / yarn aracılığı ve curl ile kurabiliriz.
npm install -g @aws-amplify/cli
veya
yarn global add @aws-amplify/cli
komutu ile amplify cli’yı global’e kurabiliriz.
Ya da curl ile kurmak istersek:
Macos ve Linux sürümleri için:
curl -sL https://aws-amplify.github.io/amplify-cli/install | bash && $SHELL
Windows sürümü için:
curl -sL https://aws-amplify.github.io/amplify-cli/install-win -o install.cmd && install.cmd
komutlarını çalıştırarak kurabiliriz.
Kurulum tamamlandıktan amplify
komutu ile versiyon kontrolü yapıp kurulumun gerçekleştiğinden emin olabiliriz.
amplify -v
Artık amplify’ı kullanabiliriz :)
Amplify Konfigrasyonu
Amplify’ı kullanmamız için lokalimizdeki ayarları düzenleyip var olan AWS hesabı ile ilişkilendirmek gerekiyor. Bunun için configure
komutunu çalıştırmak gerekiyor.
amplify configure
Bunu yaptığımız anda, AWS consolu açılır. Burada amplify kullanımda yetkilendirmek üzere bir user eklememiz gerekir. Bunun için sırası ile şu ayarlar gelir.
- region (Bölge seçimi)
- user name (Amplify’ı kullanacak olan user için user name)
Bu alanları girdiken sonra, eklediğimiz user’ın access ayarlarını yapmamız için AWS console’nuna gitmek gerekiyor. Ve sırası ile şu alanları doldurmamız gerekiyor.
Burada en önemli şey, AdministratorAccess-Amplify
ayarlarını aktif etmeyi unutmamaktır.
Bu aşamaları yaptıktan sonra, son ekranda Access Key ID
ve Secret Access Key
bilgilerinin bulduğunu ekran gelecektir.
Bu bilgileri aldıktan sonra, lokalimizdeki konsoldan tekrar devam edebiliriz.
En son olarak da, Profile Name’e localimizde bu user’ın hangi isim ile kayıtlı olacağını yazıp işlemleri tamamlıyoruz.
Amplify ile Servis oluşturma
Burada örnek olarak next
ile oluşturulmuş bir projeye amplify ile servis ekleyelim. Ben lokalimde create-next-app
ile next-amplify
adında bir proje oluşturdum. Ek olarak src
adında bir klasör oluşturup, pages
ve styles
klasörlerini bu dizine aldım.
Sırada amplify init
ile projeye amplify
yı projeye eklemek var.
Proje’nin bulduğu dizine gidip amplify init
komutu çalıştırıyoruz. Yeni bir amplify uygulaması oluşturmamızı sağlayacak.
Aslında amplify bize bir back-end projesi oluşturur. Buradaki sorduğu ise, oluşturulacak back-end projesinin adıdır.
environment: farklı ortamlar için ( geliştirme ortamı, test, production vb.) farklı environment’lar eklenebilir. (Bunu bir sonra ki yazıda anlatacağım). Şimdilik tek ortam olsun ve adına dev
diyelim.
Kullanıdığımız editör seçiyoruz.
Burada ise, client uygulaması ne ile çalışacak bunu seçiyoruz. Ben Next kullandığım içi javascript
‘i seçtim.
Kullandığımız frameworkü seçiyoruz.( Eğer framework kullanmayacaksak none i seçeceğiz)
Kurulum tamamladıktan oluşacak API bağlantılarının hangi dizin içinde olacağını yazıyoruz.
Proje build alındıktan sonra hangi klasörden yayına gireceğini yazıyoruz. Bu Next projesi için out
klasörü.
Build ve start scriptlerini yazıyoruz.
Var olan bir AWS user’ı mı kullanılacak yoksa yeni bir user mı oluşturacak bunu seçiyoruz. Ben ilk aşamada oluşturduğumuz user’ı kullanacağım
Evet, Amplify Projesi oluşturduğumuza göre artık API oluşturabiliriz.
Bunun için amplify add api
komutunu çalıştırmamız gerekiyor.
İlk olarak API türünü seçiyoruz. GraphQL veya Rest olarak. Ben GraphQL’i seçtim.
Provide API name: API adı
Authentication türünü seçiyoruz.( Ben default oluşan API key’i seçtim şu anlık.)
Sonra ki aşamalar sırası ile:
- API key description: API Key için herhangi bir açıklama / zorunlu
- After how many days from now the API key should expire: API key’in kaç gün sonra süresinin dolacağını yazıyoruz. (1 ile 365 gün arasında)
- Do you want to configure advanced settings for the GraphQL API : GraphQL API için gelişmiş bir ayar yapmak isteyip istemediğimizi soruyoruz. Ben hayır dedim. (No, I am done seçeneğini seçip)
- Do you have an annotated GraphQL schema: Bir GraphQL şemamızın olup olmadığını soruyor. Benim olmadığı için Hayır’ı seçtim.
- Choose a schema template: Buradaki bahsettiği ise, oluşacak veri tabanı modelleri arasında bir bağlantı olup olmayacağı. Bunu sonradan ayarlayabiliriz diyerek ben basit olanı seçtim şuan.
Ve son olarak şemayı editleyeceğimizi söylüyoruz ve api oluşturma süreci tamamlanıyor.
projede /amplify/backend/schema.graphql dosyasını açarak modeli görebiliriz.
Mesela bize örnek olması için burada Todo bir model oluşturmuş. Bu modele done adında Boolean bir field ekleyebiliriz.
Bunu ekledikten sonra, API’yı lokalimizde
amplify mock
komutu ile çalışabiliriz.
benzer şekilde javascript’i seçmemiz ve otomatik oluşacak query ve mutationları onaylamamız gerekiyor. Ve sonunda src dizinine grapqhl
adında bir klasör oluşuyor. Burada otomatik oluşturulan query, mutation, subscription’ları görebiliriz.
Not: Bu dosyalar, schema.graphql
dosyasında var olan type’lara göre otomatik oluşur ve değiştirilmemesi gerekir. Zaten amplify bunun overwrite edildiğini söylüyor dosya başında.
Mock işlemi tamamladığında uygun olan ip adres ve portta API servisini ayağa kaldırıyor. API’ı buradan test edebiliriz.
API geliştirilmesi tamamladıktan sonra (veya bir değişiklik yaptıktan sonra),
amplify push
diyerek API’ı AWS ye gönderebiliriz. Vee projemiz oluştu :)
Evett şimdilik bu kadar, bir sonra ki yazıda Amplify’ı arayüzde nasıl kullanacağımızı ve bazı ek bilgiler daha vereceğim 🎉
Sürç-i klavye ettiysek affola 🙏