AWS CLI kullanarak Oluşturma ve Dağıtma

AWS CLIAWS hizmetleriyle çalışmaya yardımcı olan bir komut satırı aracıdır. Bunu, aws lambda işlevini oluşturmak, güncellemek, silmek, çağırmak için kullanabiliriz. Bu bölümde, AWS CLI'nın kurulumu ve kullanımı hakkında ayrıntılı olarak tartışacaksınız.

AWS CLI kurulumu

Bu bölüm, AWS CLI'nin çeşitli işletim sistemlerine yüklenmesi sırasında size yol gösterecektir. Verilen adımları izleyin ve eklenen her yerde ilgili ekran görüntülerini izleyin.

Pencereler için

Windows yapılandırmanızı kontrol edin ve AWS CLI MSI'yı yüklemek için aşağıdaki bağlantılardan birini seçin -

  • Windows 64 bit için - Windows (64bit) için AWS CLI MSI yüklemesi

  • Windows 32 bit için - Windows için AWS CLI MSI kurulumu (32)

İlgili bağlantıyı seçip tıkladığınızda, burada gösterildiği gibi bir Pencere bulabilirsiniz -

Ardından, Environment path in windows aşağıdaki ekran görüntülerinde gösterildiği gibi -

Tamamlandıktan sonra, komut isteminde aşağıdaki komutu kullanarak aws cli yüklendi -

aws --version

Aşağıdaki ekran görüntüsünde gösterildiği gibi aws-cli sürümünün ayrıntılarını görüntüler -

Linux / Mac için

Linux ve Mac'e yüklemek için, Python 2.6.3 veya daha yüksek sürümüne ihtiyacınız var. Ardından, sonraki yükleme işlemleri için aşağıdaki komutları kullanın -

$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Şimdi, AWS ayarlarını yapılandırmamız gerekiyor. Bu amaçla aşağıdaki komutu kullanabilirsiniz -

aws configure

Bu amaçla, aşağıdaki gibi ayrıntılar gerektirir:

  • AWS Erişim Anahtarı Kimliği
  • AWS Gizli Erişim Anahtarı
  • Varsayılan bölge adı
  • Biçimden varsayılan çıktı

Bu ayrıntıları aws konsolunuzdan edinebilirsiniz. Gösterildiği gibi sağ üst köşedeki Hesap adınıza gidin -

Şimdi tıklayın My Security Credentialsve sol taraftan kullanıcıları seçin. İstendiği gibi ayrıntılarla kullanıcı ekleyin.

Kullanıcıyı ekleyin ve erişim anahtarını ve gizli anahtarı alın. Yeni erişim anahtarını görmek içinShow. Kimlik bilgileriniz aşağıda gösterildiği gibi görünecektir -

Access key ID − AOSAIOSFOCDD7Example

Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY

AWS CLIS için Referans Komutlar

Aşağıdaki tablo, çalışmak için mevcut komut referanslarını verecektir. aws cli.

Aws cli komutunun adı Komut referansı
create-function create-function --function-name <value> --runtime <value> --role <value> --handler <value> [--code <value>] [--description <value>] [--timeout < değer>] [--memory-size <value>] [--environment <value>] [--kms-key-arn <value>] [--tags <value>] [--zip-file <value> ] [--cli-input-json <değer>]
list-functions liste-işlevleri [--master-region <value>] [--function-version <value>] [--max-items <value>] [--cli-input-json <value>] [--starting- simge <value>] [--page-size <value>] [--generate-cli-skeleton <value>]
get-function get-function --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-function-configuration get-function-configuration --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
get-account-settings get-hesap-ayarları [--cli-input-json <value>] [--generate-cli-skeleton <value>]
update-function-configuration güncelleme-fonksiyon-yapılandırma --function-name <value> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory- size <value>] [--vpc-config <value>] [--environment <value>] [--runtime <value>] [--dead-letter-config <value>] [--kms-key- arn <value>] [--tracing-config <value>] [--revision-id <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
update-function-code güncelleme-işlevi-kodu --function-adı <değer> [--zip-dosyası <değer>] [--s3-kova <değer>] [--s3-anahtar <değer>] [--s3-nesne- version <value>] [--yayınla | --no-publish] [--dry-run | - no-dry-run] [--revision-id <value>] [- cli-input-json <value>] [- oluştur-cli-iskelet <değer>]
delete-function delete-function --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]

Şimdi bu komutları tek tek ayrıntılı olarak tartışalım.

işlev oluşturma

Bu api, yeni bir lambda işlevi yaratacaktır. Kodun zip formatında verilmesi gerekir. Oluşturulacak işlev zaten mevcutsa, api başarısız olur. İşlev adının büyük / küçük harfe duyarlı olduğunu unutmayın.

Dahil Edilen Komutlar

Create-function ile kullanabileceğiniz komutların listesi burada verilmiştir -

create-function 
--function-name <value>
--runtime <value>
--role <value>
--handler <value>
[--code <value>] 
[--description <value>] 
[--timeout <value>] 
[--memory-size <value>] 
[--environment <value>] 
[--kms-key-arn <value>] 
[--tags <value>] 
[--zip-file <value>] 
[--cli-input-json <value>]

Dahil Olan Seçenekler

Yukarıdaki işlevlerle kullanabileceğiniz çeşitli seçenekler aşağıdaki gibidir -

--function-name (string)- Bu, işlevin adını alır. İsim 64 bitlik karakterler olabilir.

--runtime(string)- Burada çalışma zamanı ortamını, yani dil seçimini belirtmeniz gerekir. Çalışma zamanının ayrıntıları aşağıda verilmiştir -

Mevcut seçenekler Çalışma süresi
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Git go1.x

--role(string)- Bu, lambda politikasının adı, yani diğer servislere erişim için lambda fonksiyonuna verilecek rol olacaktır. Belirtilen role göre izne sahip olacaktır.

--handler (string) - Bu, lambda kod yürütmesinin başlayacağı işleyicinin adıdır.

  • Nodejs için işleyici adı, dışarı aktardığımız modül adıdır.
  • Java için bu, package.classname :: handler veya package.classname'dir.
  • Python için işleyici, dosyanın adıdır.

--code (structure) −AWS Lambda kodu

--description (string) - AWS Lambda işlevi açıklaması

--timeout (integer)- zaman aşımı, lambda işlevinin yürütmeyi sonlandırması gereken zamana sahip olacaktır. Varsayılan 3s'dir.

--memory-size (integer)- Bu, aws lambda fonksiyonuna verilen hafızadır. AWS, verilen belleğe göre CPU ve bellek ayırma miktarını tahsis eder.

--environment (structure) - aws lambda işlevinde gerekli olan ortam ayrıntılarına sahip bir nesnedir.

e.g : Variables = {Name1 = string, Name2 = string}

--kms-key-arn (string)- bu, ortam değişkenlerini şifrelemek için kullanılan amazon kaynak adıdır (ARN). Sağlanmazsa, şifreleme için varsayılan ayarları alacaktır.

--zip-file (blob) - kodun ayrıntılarını içeren zip dosyasının yolu.

--cli-input-json (string): Sağlanan JSON dizesine göre hizmet işlemini gerçekleştirir. JSON dizesi --generate-cli-skeleton tarafından sağlanan biçimi izler. Komut satırında başka bağımsız değişkenler sağlanmışsa, CLI değerleri JSON tarafından sağlanan değerleri geçersiz kılar.

Şimdi, çalışma zamanını nodejs olarak kullanarak basit bir AWS Lambda işlevi oluşturalım ve yazdırılacak bazı console.log'lar ekleyelim.

Aynısını anlamak için örnek bir kod düşünün -

exports.handler = async (event) => {
   console.log("Using aws cli");
   return 'Hello from Lambda from aws cli!'
};

Şimdi dosyayı sıkıştırın ve awscli.zip.

ARN alınıyor

Rol için şunu kullanalım: arnoluşturduğumuz mevcut rolden. ARN'yi almak için, burada gösterilen adımları izlemeniz gerekecektir. Ekli her yerde ilgili ekran görüntülerini izleyin -

Aşama 1

IAM'ye gidin ve istediğiniz rolü seçin Roles. Rol için ARN ayrıntıları aşağıda gösterildiği gibi görüntülenir. KullanımRole ARN ile create-function içinde aws cli.

Burada arn rolünün: arn: aws: iam :: 625297745038: role / lambdaapipolicy olduğunu gözlemleyin

Değerleri olan komut create-function aşağıdaki gibidir -

aws lambda create-function 
--function-name "awslambdausingcli" 
--runtime "nodejs8.10" 
--role "arn:aws:iam::625297745038:role/lambdaapipolicy" 
--handler "awscli.handler" 
--timeout 5 
--memory-size 256 
--zip-file "fileb://awscli.zip"

Şimdi, komutu aws cli'da çalıştırırsanız, aşağıda gösterildiği gibi bir çıktı bulabilirsiniz -

AWS konsolunda, Lambda işlevi aşağıda gösterildiği gibi görüntülenir -

Fonksiyonların ayrıntıları burada gösterildiği gibidir -

Yapılandırmanın ayrıntıları aşağıda verilmiştir -

İşlevi test edebilir ve çıkışı gösterildiği gibi kontrol edebilirsiniz -

Karşılık gelen Günlük çıkışı burada gösterilir -

liste işlevleri

Bu api, AWS Lambda'da şimdiye kadar oluşturulmuş işlevlerin listesini verir.

Dahil Edilen Komutlar

Aşağıdakiler bu API ile ilişkilendirilen komutlardır -

list-functions
[--master-region <value>]
[--function-version <value>]
[--max-items <value>]
[--cli-input-json <value>]

Liste fonksiyonları altındaki seçenekler

Aşağıdakiler, bu liste işlevleri api altında kullanabileceğiniz çeşitli seçeneklerdir -

--master-region(string)- isteğe bağlı. İşlevlerin görüntülenmesi gereken bölge.

--function-version(string)- isteğe bağlı. Bu, fonksiyon versiyonunu verecektir.

--max-items(integer)- isteğe bağlı. Bu, öğeleri belirtilen değere göre verecektir.

--cli-input-json(string)- isteğe bağlı. Sağlanan json dosyasına göre işlem gerçekleştirecek.

Değerleri olan komut list-functions aşağıdaki gibidir -

aws lambda list-functions --max-items 3

Komut ayrıntıları aşağıdaki gibi görüntüler -

get-işlevi

Bu api, işlevlerin ayrıntılarını ve ayrıca create-function kullanılarak yüklenmiş zip dosyası içeren bir url bağlantısını verecektir. Zip ayrıntıları içeren url yalnızca 10 dakika geçerli olacaktır.

Dahil Edilen Komutlar

Aşağıdakiler bu api ile ilişkili komutlardır -

get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Dahil Olan Seçenekler

--function-name- AWS Lambda işlevinin adı. İşlevin Amazon Kaynak Adını da belirtebilirsiniz.

--qualifier(string)- İsteğe bağlı. İşlevin ayrıntılarını almak için işlev sürümü kullanılabilir.

Get-function değerlerine sahip komutlar -

aws lambda get-function --function-name awslambdausingcli

Komut ekranı ayrıntıları aşağıdaki gibidir -

Posta kodunun yüklendiği url'yi verir. Yukarıdaki durumda url -

https://prod-04-2014-
tasks.s3.amazonaws.com/snapshots/625297745038/awslambdausingcli-97048f8d-4a08
-4ed9-99d9-acb00d2063d2?versionId=d04HKvPu9S2zz8pzjbW6Rmf5o5fxnc_r&X-Amz-Security
-Token=FQoDYXdzEKT%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDCpTmGvtwKToPBiWcyK3A96UcJEnwvYDhMbbxu
%2Bg2gffK2ocfnlEeiCHak8QqqE1RFpbKrdks9NzxP9gNbagL4M9RValxJ1a9PUY%2FOdAekscRHOiX00MVAxUlI8
2pKryhdOwLJWSj0uRzqvOxCcBwJenHrSNPeG6lMa2ZDo0qZFEUDONSaTg4nuSnJK1f6t3pMAKu4vF9wPvf92G%2BU
60rUxwleggigISmD9l1IlZse3%2BVF1JlNuN%2F5d85v0y2Q%2F%2BO515CybcZpn91sHPYG8JMJ00LsrkQ2Ww4VU
9Zz5c5QYH4JYPj0CyEgSz9b%2FMceMPpOoPUAMjctb%2FEwQqcShZeqAr9%2Fcd2ZI%2BXl2%2Bs4ri0ucgPvQQvs
eGIIiZbX3GqdwR2jb1nylrAEIfiuFMoSWfcFYoYtuL0MZnjGR9jy2GNkp6MB%2BlHHr7%2BnuFRUzU26rgDYmdE1w
Rb3%2B21Jm49WGDa9opRLvUxFaux57Or70haib2FuKzN6Gf3Vzzk5KPdWsYUpaLyf%2B1ovEytOZhB1JEXuCs%2FG
IlOXS88yxT%2BpOKmyxweiezpGgI%2FAkSAQTbSRsYQKIOFyIJNHzplwrJKhy28vy60numIBIo9Zqq2AU%3D
&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20180527T112426Z&X-Amz-
SignedHeaders=host&X-Amz-Expires=600&X-Amz-
Credential=ASIAICSQHLSBWFP37U4Q%2F20180527%2Fus-
east-1%2Fs3%2Faws4_request&X-Amz-Signature=
8b97e7d6d7da13313068e027894d2c875be5e50a0c5a62550f55307985bdc1aa

get-function-configuration

Bu, AWS Lambda işlevinin yapılandırma ayrıntılarını verecektir.

Aşağıdakiler, bu API ile birlikte kullanılan komutlardır -

get-function-configuration
--function-name <value>
[--qualifier <value>]

The following are the options used with

--function-name (string) −aws lambda işlevinin adı. İşlevin Amazon Kaynak Adını da belirtebilirsiniz.

--qualifier(string) − Opsiyonel.Fonksiyon versiyonu, fonksiyonun detaylarını almak için kullanılabilir.

Get-function değerlerine sahip komutlar -

aws lambda get-function-configuration --function-name awslambdausingcli

Komut ayrıntıları aşağıdaki gibi görüntüler -

get-account-settings

Bu api, hesap ayarlarını verir.

İlgili Komutlar

Bu api ile kullanabileceğiniz komut:

get-account-settings
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

İlgili Seçenekler

Bu API ile aşağıdaki seçenekleri kullanabilirsiniz -

--cli-input-json(string) − Sağlanan json dizesine göre hizmeti gerçekleştirir.

--generate-cli-skeleton(string) − API isteği göndermeden json çıktısını yazdırır.

Get-account-settings için aşağıdaki komutu kullanabilirsiniz -

aws lambda get-account-settings

Yukarıda verilen komutu çalıştırdığınızda aşağıdaki çıktıyı görebilirsiniz -

güncelleme-fonksiyon-konfigürasyonu

Bu api, oluşturulan AWS Lambda işlevi için yapılandırma ayrıntılarının güncellenmesine yardımcı olur. Belleği, zaman aşımını, işleyiciyi, rolü, çalışma zamanını, açıklamayı vb. Değiştirebilirsiniz.

İlgili Komutlar

Aşağıdakiler, güncelleme-işlevi-yapılandırma api ile ilgili komutlardır -

update-function-configuration
--function-name <value>
[--role <value>]
[--handler <value>]
[--description <value>]
[--timeout <value>]
[--memory-size <value>]
[--environment <value>]
[--runtime <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

İlgili Seçenekler

Aşağıdakiler update-function-configuration api ile ilgili seçeneklerdir -

--function-name − aws lambda işlevinin adı

--role (string) −isteğe bağlı. Rolün ARN'sinin güncellenmesi gerekiyor.

--handler (string) −isteğe bağlı. Aws lambda işlevinin işleyici ayrıntıları.

--description(string) −isteğe bağlı. İşlevin açıklaması.

--timeout(integer) −isteğe bağlı. Aws lambda işlevinin sona erdirilebilmesi için gereken süre.

--memory-size(integer) −isteğe bağlı. Bu, aws lambda fonksiyonuna verilen hafızadır. AWS, verilen belleğe göre CPU ve bellek ayırma miktarını tahsis eder.

--environment (structure) −isteğe bağlı. Aws lambda fonksiyonunda gerekli olan ortam detaylarına sahip bir nesnedir.

e.g: Variables = {Name1 = string, Name2 = string}

--runtime(string) − Burada çalışma zamanı ortamını, yani dil seçimini belirtmeniz gerekir.

Çalışma süresinin ayrıntıları aşağıdaki tabloda gösterilmektedir -

Mevcut seçenekler Çalışma süresi
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Java java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Git go1.x

--cli-input-json (string) −isteğe bağlı. Bu, sağlanan json dizesinde belirtildiği gibi api üzerinde işlemi gerçekleştirecektir.

--generate-cli-skeleton (string) −isteğe bağlı. Bu, api'yi çalıştırmadan tüm ayrıntıların JSON iskeletini çıkaracaktır. Çıktı, giriş olarak kullanılabilir.--cli-input-json.

Şimdi, daha önce oluşturduğumuz AWS Lambda işlevinin belleğini ve zaman aşımını değerlendirelim. Aşağıda verilen Adımları izleyin ve bu amaç için ekli ilgili ekran görüntülerini izleyin -

Aşama 1

Değişiklik gerçekleşmeden önceki bellek ve zaman aşımı aşağıdaki gibidir -

Adım 2

Şimdi birlikte update-function-configuration, bellek ve zaman aşımını 320MB ve zaman aşımını 10s olarak değiştirelim. Bu amaçla, aşağıdaki komutu değerlerle kullanın -

aws lambda update-function-configuration --function-name “awslambdusingcli” 
--timeout 10 --memory-size 320

Aşama 3

Ardından aşağıdaki çıktıyı ekran olarak görebilirsiniz -

4. adım

Kullandıktan sonra AWS konsolundaki ekran update-function-configuration aşağıdaki gibidir -

Güncelleme-fonksiyon-kodu

Bu API, mevcut bir AWS Lambda işlevinin kodunu güncelleyecektir.

İlgili Komutlar

update-function-code
--function-name <value>
[--zip-file <value>]
[--s3-bucket <value>]
[--s3-key <value>]
[--s3-object-version <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

İlgili Seçenekler

Aşağıdakiler, güncelleme işlevi kodu api ile ilgili seçeneklerdir -

--function-name(string) − aws lambda işlevinin adı

--zip-file (blob) −isteğe bağlı. Güncellenecek kodun bulunduğu zip dosyasının yolu.

--s3-bucket(string) −isteğe bağlı. Kodun yüklenmiş olduğu zip dosyasının bulunduğu S3 paket adı.

--s3-key(string) −isteğe bağlı. Yüklenmesi gereken AWS s3 nesne anahtarı adı.

--s3-object-version (string) −isteğe bağlı. AWS s3 nesne sürümü.

--cli-input-json (string) −isteğe bağlı. Bu, sağlanan json dizesinde belirtildiği gibi api üzerinde işlemi gerçekleştirecektir.

--generate-cli-skeleton (string) −isteğe bağlı. Bu, api'yi çalıştırmadan tüm ayrıntıların JSON iskeletini çıkaracaktır. Çıktı, --cli-input-json için bir girdi olarak kullanılabilir.

Güncellenen kod aşağıda gösterildiği gibidir -

exports.handler = async (event, context) => {
   console.log("Using aws cli");
   console.log()
   return 'Hello from Lambda from aws cli!'
};

Aşağıdakileri kullanabilirsiniz command with values for this purpose -

aws lambda update-function-code --function-name "awslambdausingcli" 
--zip-file "fileb://awscli.zip"

Karşılık gelen çıktı burada gösterildiği gibidir -

AWS konsolundan gelen ekran burada gösterildiği gibidir -

İlgili günlük çıkışı aşağıda gösterildiği gibidir -

silme işlevi

delete aws cli api verilen işlevi silecektir.

Dahil Edilen Komutlar

Aynısı için komut ayrıntıları burada verilmiştir -

delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Dahil Olan Seçenekler

Bu api'de yer alan seçenekler aşağıda verilmiştir -

--function-name(string) − bu lambda işlev adını veya aws lambda işlevinin arnını alacaktır.

--qualifier (string) −Bu isteğe bağlıdır. Burada, silinmesi gereken aws lambda sürümünü belirtebilirsiniz.

-- cli-input-json(string) −Sağlanan JSON dizesine göre hizmet işlemini gerçekleştirir. JSON dizesi --generate-cli-skeleton tarafından sağlanan biçimi izler. Komut satırında başka bağımsız değişkenler sağlanmışsa, CLI değerleri JSON tarafından sağlanan değerleri geçersiz kılar.

--generate-cli-skeleton(string) − API isteğini göndermeden json iskeletini standart çıktıya yazdırır.

Bu amaç için aşağıdaki komutu değerlerle kullanabilirsiniz -

aws lambda delete-function --function-name "lambdatestcli"

Şimdi, işlevin AWS Lambda işlev listesinde görünmeyeceğini gözlemleyin -