Tworzenie i wdrażanie za pomocą AWS CLI

AWS CLIto narzędzie wiersza poleceń, które pomaga w pracy z usługami AWS. Możemy go użyć do tworzenia, aktualizacji, usuwania, wywoływania funkcji lambda aws. W tym rozdziale omówimy szczegółowo instalację i używanie interfejsu AWS CLI.

Instalacja AWS CLI

Ta sekcja przeprowadzi Cię przez proces instalacji interfejsu AWS CLI w różnych systemach operacyjnych. Postępuj zgodnie z podanymi instrukcjami i obserwuj odpowiednie zrzuty ekranu, jeśli są dołączone.

Dla Windowsa

Sprawdź konfigurację systemu Windows i wybierz jedno z poniższych łączy, aby zainstalować AWS CLI MSI -

  • Windows 64-bitowy - instalacja AWS CLI MSI dla systemu Windows (64-bitowy )

  • Dla Windows 32 bit - instalacja AWS CLI MSI dla Windows (32)

Po wybraniu odpowiedniego łącza i kliknięciu go, możesz znaleźć okno, jak pokazano tutaj -

Następnie ustaw Environment path in windows jak pokazano na zrzutach ekranu poniżej -

Po zakończeniu możesz użyć następującego polecenia w wierszu polecenia, aby sprawdzić, czy aws cli jest zainstalowany -

aws --version

Wyświetla szczegóły wersji aws-cli, jak pokazano na poniższym zrzucie ekranu -

Dla systemu Linux / Mac

Do instalacji w systemie Linux i Mac potrzebujesz Pythona 2.6.3 lub nowszej wersji. Następnie użyj następujących poleceń do dalszych procesów instalacji -

$ 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

Teraz musimy skonfigurować ustawienia AWS. W tym celu możesz użyć następującego polecenia -

aws configure

W tym celu wymaga takich szczegółów jak -

  • Identyfikator klucza dostępu AWS
  • Tajny klucz dostępu AWS
  • Domyślna nazwa regionu
  • Domyślne dane wyjściowe z formatu

Możesz uzyskać te szczegóły z konsoli aws. Przejdź do swojej nazwy konta w prawym górnym rogu, jak pokazano -

Teraz kliknij My Security Credentialsi wybierz użytkowników z lewej strony. Dodaj użytkownika ze szczegółami zgodnie z pytaniem.

Dodaj użytkownika i uzyskaj klucz dostępu i tajny klucz. Aby zobaczyć nowy klucz dostępu, wybierzShow. Twoje dane logowania będą wyglądać tak, jak pokazano poniżej -

Access key ID − AOSAIOSFOCDD7Example

Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY

Polecenia referencyjne dla AWS CLIS

Poniższa tabela zawiera odniesienia do poleceń, z którymi można pracować aws cli.

Nazwa polecenia aws cli Opis poleceń
create-function create-function --function-name <value> --runtime <value> --role <value> --handler <value> [--code <value>] [--description <value>] [--timeout < wartość>] [--memory-size <wartość>] [--environment <wartość>] [--kms-key-arn <wartość>] [--tags <wartość>] [--zip-file <wartość> ] [--cli-input-json <wartość>]
list-functions list-functions [--master-region <value>] [--function-version <value>] [--max-items <value>] [--cli-input-json <value>] [--starting- token <wartość>] [--page-size <wartość>] [--generate-cli-skeleton <wartość>]
get-function get-function - function-name <wartość> [--qualifier <wartość>] [--cli-input-json <wartość>] [--generate-cli-skeleton <wartość>]
get-function-configuration konfiguracja-funkcji-get - nazwa-funkcji <wartość> [--qualifier <wartość>] [--cli-input-json <wartość>] [--generate-cli-skeleton <wartość>]
get-account-settings get-account-settings [--cli-input-json <wartość>] [--generate-cli-skeleton <wartość>]
update-function-configuration update-function-configuration - function-name <value> [--role <value>] [--handler <value>] [--description <value>] [--timeout <value>] [--memory- size <wartość>] [--vpc-config <wartość>] [--environment <wartość>] [--runtime <wartość>] [--dead-letter-config <wartość>] [--kms-key- arn <wartość>] [--tracing-config <wartość>] [--revision-id <wartość>] [--cli-input-json <wartość>] [--generate-cli-skeleton <wartość>]
update-function-code update-function-code - function-name <value> [--zip-file <value>] [--s3-bucket <value>] [--s3-key <value>] [--s3-object- wersja <wartość>] [--publish | --no-opublikuj] [--dry-run | --no-dry-run] [--revision-id <wartość>] [- cli-input-json <wartość>] [- wygeneruj-cli-skeleton <wartość>]
delete-function delete-function - function-name <wartość> [--qualifier <wartość>] [--cli-input-json <wartość>] [--generate-cli-skeleton <wartość>]

Omówmy teraz szczegółowo te polecenia jeden po drugim.

funkcja tworzenia

Ten interfejs API utworzy nową funkcję lambda. Kod należy podać w formacie ZIP. Jeśli funkcja, która ma zostać utworzona, już istnieje, interfejs API zakończy się niepowodzeniem. Zwróć uwagę, że w nazwie funkcji rozróżniana jest wielkość liter.

Polecenia zawarte

Lista poleceń, których możesz użyć z funkcją create jest podana tutaj -

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>]

Opcje w zestawie

Różne opcje, których można używać z powyższymi funkcjami, są następujące -

--function-name (string)- To ma nazwę funkcji. Nazwa może składać się ze znaków 64-bitowych.

--runtime(string)- Tutaj musisz określić środowisko wykonawcze, tj. Wybór języka. Szczegóły dotyczące środowiska uruchomieniowego podano poniżej -

Dostępne opcje runtime
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Jawa java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Iść go1.x

--role(string)- Będzie to nazwa polityki lambda, tj. Rola, jaką ma zostać nadana funkcji lambda w celu uzyskania dostępu do innych usług. Będzie miał uprawnienia zgodnie z określoną rolą.

--handler (string) - To jest nazwa procedury obsługi, od której rozpocznie się wykonywanie kodu lambda.

  • W przypadku nodejs nazwa handlera to nazwa modułu, który eksportujemy.
  • W przypadku języka Java jest to nazwa_klasy paczki :: handler lub nazwa_klasy pakietu
  • W przypadku języka Python funkcja obsługi to nazwa pliku.

--code (structure) −AWS Kod lambda

--description (string) - opis funkcji AWS Lambda

--timeout (integer)- timeout będzie określał czas, w którym funkcja lambda musi zakończyć wykonywanie. Wartość domyślna to 3 s.

--memory-size (integer)- To jest pamięć przekazana funkcji lambda aws. AWS przydzieli ilość procesora i alokacji pamięci na podstawie podanej pamięci.

--environment (structure) - jest to obiekt ze szczegółami środowiska wymaganymi w funkcji lambda aws.

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

--kms-key-arn (string)- to jest nazwa zasobu amazon (ARN) używana do szyfrowania zmiennych środowiskowych. Jeśli nie zostanie podany, szyfrowanie przyjmie ustawienia domyślne.

--zip-file (blob) - ścieżka do pliku zip, który zawiera szczegóły kodu.

--cli-input-json (string): Wykonuje operację usługi na podstawie podanego ciągu JSON. Ciąg JSON jest zgodny z formatem dostarczonym przez --generate-cli-skeleton. Jeśli w wierszu poleceń zostaną podane inne argumenty, wartości interfejsu wiersza polecenia zastąpią wartości podane w formacie JSON.

Teraz stwórzmy prostą funkcję AWS Lambda używając środowiska uruchomieniowego jako nodejs i dodajmy kilka console.logs do wydrukowania.

Rozważ przykładowy kod, aby zrozumieć to samo -

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

Teraz spakuj plik i zapisz go jako awscli.zip.

Zdobywanie ARN

Do roli użyjmy arnz istniejącej roli, którą stworzyliśmy. Aby uzyskać ARN, musisz wykonać kroki, jak pokazano tutaj. Obserwuj odpowiednie zrzuty ekranu, jeśli są dołączone -

Krok 1

Przejdź do uprawnień i wybierz żądaną rolę Roles. Szczegóły ARN dla roli są wyświetlane, jak pokazano poniżej. Posługiwać sięRole ARN z create-function w aws cli.

Zwróć uwagę, że rola arn to: arn: aws: iam :: 625297745038: role / lambdaapipolicy

Polecenie z wartościami dla create-function wygląda następująco -

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"

Teraz, jeśli uruchomisz polecenie w aws cli, możesz znaleźć dane wyjściowe, jak pokazano poniżej -

W konsoli AWS funkcja Lambda jest wyświetlana, jak pokazano poniżej -

Szczegóły funkcji są pokazane tutaj -

Szczegóły konfiguracji podano poniżej -

Możesz przetestować funkcję i sprawdzić wyjście, jak pokazano -

Odpowiednie wyjście dziennika jest pokazane tutaj -

funkcje-listowe

Ten interfejs API zawiera listę funkcji utworzonych do tej pory w AWS Lambda.

Polecenia zawarte

Poniżej przedstawiono polecenia skojarzone z tym interfejsem API -

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

Opcje w funkcjach list

Poniżej przedstawiono różne opcje, których możesz użyć w ramach tego interfejsu API funkcji listy -

--master-region(string)- opcjonalnie. Region, z którego funkcje mają być wyświetlane.

--function-version(string)- opcjonalnie. To da wersję funkcji.

--max-items(integer)- opcjonalnie. To da pozycje zgodnie z określoną wartością.

--cli-input-json(string)- opcjonalnie. Wykona operację na podstawie dostarczonego pliku json.

Polecenie z wartościami list-functions wygląda następująco -

aws lambda list-functions --max-items 3

Polecenie wyświetla szczegóły w następujący sposób -

funkcja get

Ten interfejs API zawiera szczegółowe informacje o funkcjach, a także link do adresu URL, który zawiera plik zip przesłany za pomocą funkcji tworzenia. Adres URL ze szczegółami kodu pocztowego będzie ważny tylko przez 10 minut.

Polecenia zawarte

Poniżej znajdują się polecenia powiązane z tym interfejsem API -

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

Opcje w zestawie

--function-name- Nazwa funkcji AWS Lambda. Możesz także określić nazwę zasobu Amazon funkcji.

--qualifier(string)- Opcjonalnie. Wersja funkcji może być wykorzystana do uzyskania szczegółów funkcji.

Polecenie z wartościami funkcji get to -

aws lambda get-function --function-name awslambdausingcli

Szczegóły wyświetlania poleceń są następujące -

Podaje adres URL, który ma załadowany kod pocztowy. W powyższym przypadku adres URL to -

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

konfiguracja funkcji pobierania

To da szczegóły konfiguracji funkcji AWS Lambda.

Poniżej przedstawiono polecenia używane wraz z tym interfejsem API -

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

The following are the options used with

--function-name (string) −nazwa funkcji lambda aws. Możesz także określić nazwę zasobu Amazon funkcji.

--qualifier(string) − Opcjonalnie.Wersja funkcji może służyć do uzyskania szczegółów funkcji.

Polecenie z wartościami funkcji get to -

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

Polecenie wyświetla szczegóły w następujący sposób -

pobierz ustawienia konta

Ten interfejs API zawiera ustawienia kont.

Zaangażowane polecenia

Polecenie, którego możesz użyć z tym interfejsem API, to -

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

Zaangażowane opcje

W tym interfejsie API możesz użyć następujących opcji -

--cli-input-json(string) − Wykonuje usługę na podstawie podanego ciągu JSON.

--generate-cli-skeleton(string) − Drukuje dane wyjściowe json bez wysyłania żądania API.

Możesz użyć następującego polecenia, aby uzyskać ustawienia konta -

aws lambda get-account-settings

Po wykonaniu polecenia podanego powyżej możesz zobaczyć następujące dane wyjściowe -

konfiguracja-funkcji-aktualizacji

Ten interfejs API pomaga zaktualizować szczegóły konfiguracji dla utworzonej funkcji AWS Lambda. Możesz zmienić pamięć, limit czasu, program obsługi, rolę, środowisko wykonawcze, opis itp.

Zaangażowane polecenia

Poniżej przedstawiono polecenia związane z interfejsem API aktualizacji-funkcji-konfiguracji -

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>]

Zaangażowane opcje

Poniżej przedstawiono opcje związane z interfejsem API aktualizacji-funkcji-konfiguracji -

--function-name − nazwa funkcji lambda aws

--role (string) −opcjonalny. Należy zaktualizować ARN roli.

--handler (string) −opcjonalny. Szczegóły obsługi funkcji lambda aws.

--description(string) −opcjonalny. Opis funkcji.

--timeout(integer) −opcjonalny. Czas potrzebny do zakończenia działania funkcji aws lambda.

--memory-size(integer) −opcjonalny. To jest pamięć przekazana funkcji lambda aws. AWS przydzieli ilość procesora i alokacji pamięci na podstawie podanej pamięci.

--environment (structure) −opcjonalny. Jest to obiekt ze szczegółami środowiska wymaganymi w funkcji lambda aws.

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

--runtime(string) − Tutaj musisz określić środowisko wykonawcze, tj. Wybór języka.

Szczegóły dotyczące czasu działania przedstawiono w poniższej tabeli -

Dostępne opcje runtime
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Jawa java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Iść go1.x

--cli-input-json (string) −opcjonalny. Spowoduje to wykonanie operacji na interfejsie API zgodnie z podanym ciągiem json.

--generate-cli-skeleton (string) −opcjonalny. Spowoduje to wyświetlenie szkieletu JSON wszystkich szczegółów bez wykonywania interfejsu API. Wyjście może służyć jako wejście do--cli-input-json.

Teraz zmieńmy pamięć i limit czasu funkcji AWS Lambda, którą utworzyliśmy wcześniej. Postępuj zgodnie z instrukcjami podanymi poniżej i obserwuj odpowiednie zrzuty ekranu dołączone w tym celu -

Krok 1

Pamięć i limit czasu przed wprowadzeniem zmiany są następujące -

Krok 2

Teraz z update-function-configuration, zmieńmy pamięć i limit czasu na 320MB i limit czasu na 10s. W tym celu użyj następującego polecenia z wartościami -

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

Krok 3

Następnie możesz zobaczyć następujące dane wyjściowe jako wyświetlacz -

Krok 4

Wyświetlacz w konsoli AWS po użyciu update-function-configuration wygląda następująco -

Kod funkcji aktualizacji

Ten interfejs API zaktualizuje kod dla istniejącej funkcji AWS Lambda.

Zaangażowane polecenia

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>]

Zaangażowane opcje

Poniżej przedstawiono opcje związane z interfejsem API kodu funkcji aktualizacji -

--function-name(string) − nazwa funkcji lambda aws

--zip-file (blob) −opcjonalny. Ścieżka do pliku ZIP zawierającego kod do zaktualizowania.

--s3-bucket(string) −opcjonalny. Nazwa zasobnika S3 z przesłanym plikiem ZIP z kodem.

--s3-key(string) −opcjonalny. Nazwa klucza obiektu AWS s3, który ma zostać przesłany.

--s3-object-version (string) −opcjonalny. Wersja obiektu AWS s3.

--cli-input-json (string) −opcjonalny. Spowoduje to wykonanie operacji na interfejsie API zgodnie z podanym ciągiem json.

--generate-cli-skeleton (string) −opcjonalny. Spowoduje to wyświetlenie szkieletu JSON wszystkich szczegółów bez wykonywania interfejsu API. Dane wyjściowe mogą służyć jako dane wejściowe do --cli-input-json.

Zaktualizowany kod jest taki, jak pokazano poniżej -

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

Możesz użyć następujących command with values for this purpose -

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

Odpowiednie wyjście jest pokazane tutaj -

Ekran z konsoli AWS jest taki, jak pokazano tutaj -

Odpowiednie dane wyjściowe dziennika są pokazane poniżej -

funkcja usuwania

Plik delete aws cli api usunie podaną funkcję.

Polecenia zawarte

Szczegóły polecenia dla tego samego podano tutaj -

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

Opcje w zestawie

Opcje zawarte w tym interfejsie API są podane poniżej -

--function-name(string) − przyjmie to nazwę funkcji lambda lub arn funkcji lambda aws.

--qualifier (string) −To jest opcjonalne. Tutaj możesz określić wersję aws lambda, która ma zostać usunięta.

-- cli-input-json(string) −Wykonuje operację usługi na podstawie podanego ciągu JSON. Ciąg JSON jest zgodny z formatem dostarczonym przez --generate-cli-skeleton. Jeśli w wierszu poleceń zostaną podane inne argumenty, wartości interfejsu wiersza polecenia zastąpią wartości podane w formacie JSON.

--generate-cli-skeleton(string) − wypisuje szkielet json na standardowe wyjście bez wysyłania żądania API.

Możesz użyć następującego polecenia z wartościami do tego celu -

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

Teraz zwróć uwagę, że funkcja nie będzie widoczna na liście funkcji AWS Lambda -