Aws Amplify Kurulumu -1

Hatice Edis
6 min readJan 24, 2021

--

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.

AWS Amplify Açıkması

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 🙏

--

--