Учебники

Создание и развертывание с помощью AWS CLI

AWS CLI — это инструмент командной строки, который помогает работать с сервисами AWS. Мы можем использовать его для создания, обновления, удаления, вызова лямбда-функции aws. В этой главе вы подробно обсудите установку и использование интерфейса командной строки AWS.

Установка AWS CLI

В этом разделе описана установка интерфейса командной строки AWS в различных операционных системах. Следуйте приведенным шагам и соблюдайте соответствующие скриншоты, где бы они ни были.

Для Windows

Проверьте конфигурацию Windows и выберите одну из следующих ссылок для установки AWS CLI MSI.

Для Windows 64 бит — AWS CLI MSI для Windows (64 бит)

Для Windows 32 бит — AWS CLI MSI установить для Windows (32)

Выбрав соответствующую ссылку и нажав на нее, вы можете найти окно, как показано здесь —

Установите AWS

Затем установите путь для среды в окнах, как показано на скриншотах ниже —

Путь к окружающей среде

После этого вы можете использовать следующую команду в командной строке, чтобы увидеть, установлена ​​ли aws cli :

aws --version

Он отображает детали версии aws-cli, как показано на следующем скриншоте —

Версия AWS Cli

Для Linux / Mac

Для установки на Linux и Mac вам потребуется версия Python 2.6.3 или выше. Затем используйте следующие команды для дальнейших процессов установки —

$ 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

Теперь нам нужно настроить параметры AWS. Вы можете использовать следующую команду для этой цели —

aws configure

Для этого требуются такие данные, как —

  • Идентификатор ключа доступа AWS
  • Секретный ключ доступа AWS
  • Название региона по умолчанию
  • Вывод по умолчанию из формата

Вы можете получить эти данные с вашей консоли AWS. Перейдите к имени вашей учетной записи в правом верхнем углу, как показано на рисунке —

Полезные советы

Теперь нажмите Мои учетные данные безопасности и выберите пользователей слева. Добавить пользователя с подробной информацией, как просили.

Учетные данные безопасности

Добавьте пользователя и получите ключ доступа и секретный ключ. Чтобы увидеть новый ключ доступа, выберите Показать . Ваши учетные данные будут выглядеть так, как показано ниже —

Идентификатор ключа доступа — AOSAIOSFOCDD7Example

Секретный ключ доступа — aJuirCVtnROUN / K7MDENG / bPxRfiCYExampleKEY

Ключ доступа

Справочные команды для AWS CLIS

В следующей таблице приведены ссылки на команды, доступные для работы с aws cli .

Название команды aws cli Справочник по командам
создание-функция create-function —function-name <value> —runtime <value> —role <value> —handler <value> [—code <value>] [—description <value>] [—timeout < значение>] [—memory-size <значение>] [—environment <значение>] [—kms-key-arn <значение>] [—tags <значение>] [—zip-файл <значение> ] [—cli-input-json <значение>]
Список-функция list-functions [—master-region <value>] [—function-version <value>] [—max-items <value>] [—cli-input-json <value>] [—starting- токен <value>] [—page-size <value>] [—generate-cli-skeleton <value>]
получить-функции get-function —function-name <value> [—qualifier <value>] [—cli-input-json <value>] [—generate-cli-skeleton <value>]
получить-функции-конфигурации get-function-configuration —function-name <значение> [—qualifier <значение>] [—cli-input-json <значение>] [—generate-cli-skeleton <value>]
получить по счету-настройки get-account-settings [—cli-input-json <значение>] [—generate-cli-skeleton <значение>]
обновление-функции-конфигурации update-function-configuration —function-name <значение> [—role <значение>] [—handler <значение>] [—description <значение>] [—timeout <значение>] [—memory- размер <значение>] [—vpc-config <значение>] [—environment <значение>] [—runtime <значение>] [—dead-letter-config <значение>] [—kms-key- arn <значение>] [—tracing-config <значение>] [—revision-id <значение>] [—cli-input-json <значение>] [—generate-cli-skeleton <значение>]
обновление-функции-код обновить код функции — имя-функции <значение> [—zip-файл <значение>] [—s3-bucket <значение>] [—s3-ключ <значение>] [—s3-объект- версия <значение>] [—publish | —no-publish] [—dry-run | —no-dry-run] [—revision-id <value>] [- cli-input-json <value>] [- generate-cli-skeleton <value>]
удалить функция delete-function —function-name <value> [—qualifier <value>] [—cli-input-json <value>] [—generate-cli-skeleton <value>]

Теперь давайте обсудим эти команды одну за другой подробно.

создание-функция

Этот API создаст новую лямбда-функцию. Код должен быть предоставлен в формате zip. Если функция, которая будет создана, уже существует, API потерпит неудачу. Обратите внимание, что имя функции чувствительно к регистру.

Команды включены

Список команд, которые вы можете использовать с функцией create, приведен здесь —

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

Опции включены

Различные варианты, которые вы можете использовать с функциями выше, следующие:

—function-name (string) — принимает имя функции. Имя может содержать 64-битные символы.

—runtime (строка) — здесь вам нужно указать среду выполнения, т.е. выбор языка. Детали времени выполнения приведены ниже:

Варианты доступны время выполнения
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Джава java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Идти go1.x

—role (string) — это будет имя лямбда-политики, т. е. роль, которую должна быть отдана лямбда-функции для доступа к другим сервисам. Это будет иметь разрешение в соответствии с указанной ролью.

—handler (string) — это имя обработчика, с которого начнется выполнение лямбда-кода.

  • Для nodejs имя обработчика — это имя модуля, которое мы экспортируем.
  • Для Java это имя пакета.classname :: handler или package.classname
  • Для python обработчик nameofthefile.

—code (структура) — AWS лямбда-код

—description (строка) — описание лямбда-функции AWS

—timeout (integer) — время ожидания будет иметь время, когда лямбда-функция должна прекратить выполнение. По умолчанию это 3 с.

—memory-size (integer) — это память, предоставляемая лямбда-функции aws. AWS будет распределять объем ресурсов процессора и памяти на основе предоставленной памяти.

—environment (структура) — это объект с деталями окружения, необходимыми в лямбда-функции aws.

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

—kms-key-arn (string) — это имя ресурса amazon (ARN), используемое для шифрования переменных среды. Если не указано иное, для шифрования будут использоваться настройки по умолчанию.

—zip-file (blob) — путь к zip-файлу, в котором есть детали кода.

—cli-input-json (string) : выполняет сервисную операцию на основе предоставленной строки JSON. Строка JSON соответствует формату, предоставленному —generate-cli-skeleton. Если в командной строке указаны другие аргументы, значения CLI будут переопределять значения, предоставленные JSON.

Теперь давайте создадим простую лямбда-функцию AWS, используя время выполнения в качестве nodejs, и добавим несколько console.logs для печати.

Рассмотрим пример кода для понимания того же самого —

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

Теперь заархивируйте файл и сохраните его как awscli.zip .

Получение АРН

Для роли давайте использовать арн из существующей роли, которую мы создали. Чтобы получить ARN, вы должны будете выполнить шаги, как показано здесь. Соблюдайте соответствующие скриншоты, где бы они ни находились.

Шаг 1

Перейдите в IAM и выберите нужную роль из ролей . Детали ARN для роли отображаются, как показано ниже. Используйте роль ARN с функцией create в aws cli .

Резюме Cli

Заметьте, что роль arn: arn: aws: iam :: 625297745038: role / lambdaapipolicy

Команда со значениями для create-function выглядит следующим образом:

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"

Теперь, если вы запустите команду в aws cli, вы можете найти вывод, как показано ниже —

Command Cli

В консоли AWS функция Lambda отображается, как показано ниже:

Функция Cli

Детали функций, как показано здесь —

Код Кли

Детали конфигурации приведены ниже:

Cli Role

Вы можете проверить функцию и проверить вывод, как показано на рисунке —

Cli Execution

Соответствующий вывод журнала показан здесь —

Cli Output

Список-функция

Этот API-интерфейс предоставляет список функций, созданных на данный момент в AWS Lambda.

Команды включены

Ниже приведены команды, связанные с этим API.

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

Опции в списке функций

Ниже приведены различные опции, которые вы можете использовать в этом списке функций api —

—master-region (string) — необязательно. Регион, из которого должны отображаться функции.

—function-version (string) — необязательно. Это даст версию функции.

—max-items (integer) — необязательно. Это даст элементы в соответствии с указанным значением.

—cli-input-json (строка) — необязательно. Будет выполнять операцию на основе предоставленного файла JSON.

Команда со значениями list-functions выглядит следующим образом:

aws lambda list-functions --max-items 3

Команда отображает детали следующим образом —

Cli Display

получить-функции

Этот API-интерфейс предоставит подробную информацию о функциях, а также URL-ссылку, на которую загружен zip-файл с использованием create-function. URL с деталями почтового индекса будет действителен только в течение 10 минут.

Команды включены

Ниже приведены команды, связанные с этим API —

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

Опции включены

—function-name — имя лямбда-функции AWS. Вы также можете указать имя ресурса Amazon для функции.

—qualifier (string) — Необязательно. Версия функции может быть использована для получения подробной информации о функции.

Команда со значениями для get-function:

aws lambda get-function --function-name awslambdausingcli

Детали отображения команды следующие:

Опция включена

Это дает URL-адрес, на который загружен почтовый индекс. В приведенном выше случае 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

получить-функции-конфигурации

Это даст подробную информацию о конфигурации функции AWS Lambda.

Ниже приведены команды, используемые вместе с этим API —

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

Ниже приведены параметры, используемые с

—function-name (string) — имя лямбда-функции aws. Вы также можете указать имя ресурса Amazon для функции.

—qualifier (string) — Optional.Function версия может быть использована для получения подробной информации о функции.

Команда со значениями для get-function:

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

Команда отображает детали следующим образом —

Получить функцию.

получить по счету-настройки

Этот API дает настройки учетных записей.

Включенные команды

Команда, которую вы можете использовать с этим API —

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

Варианты вовлечены

Вы можете использовать следующие параметры с этим API —

—cli-input-json (string) — выполняет службу на основе предоставленной строки json.

—generate-cli-skeleton (string) — печатает вывод json без отправки запроса API.

Вы можете использовать следующую команду для get-account-settings —

aws lambda get-account-settings

Вы можете увидеть следующий вывод при выполнении команды, приведенной выше —

Вариант Включен

обновление-функции-конфигурации

Этот API-интерфейс помогает обновить детали конфигурации для созданной функции AWS Lambda. Вы можете изменить память, время ожидания, обработчик, роль, время выполнения, описание и т. Д.

Включенные команды

Ниже приведены команды, используемые в api update-function-configuration —

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

Варианты вовлечены

Ниже перечислены параметры, используемые в api update-function-configuration —

—function-name — имя лямбда-функции aws

—role (строка) — необязательно. АРН роли необходимо обновить.

—handler (строка) — необязательно. Детали обработчика лямбда-функции aws.

—description (строка) — необязательно. Описание для функции.

— timeout (целое число) — необязательно. Время, необходимое для прекращения работы лямбда-функции aws.

— размер-памяти (целое число) — необязательно. Это память, предоставляемая лямбда-функции aws. AWS будет распределять объем ресурсов процессора и памяти на основе предоставленной памяти.

— среда (структура) — необязательно. Это объект с деталями окружения, необходимыми в лямбда-функции aws.

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

—runtime (строка) — здесь вам нужно указать среду выполнения, т.е. выбор языка.

Детали времени выполнения приведены в таблице, приведенной ниже —

Варианты доступны время выполнения
Python v3.6 python3.6
Python v2.7 python2.7
NodeJS v6.10 nodejs6.10
NodeJS v8.10 nodejs8.10
Джава java8
C # 1 dotnetcore1.0
C # 2 dotnetcore2.0
Идти go1.x

—cli-input-json (строка) — необязательно. Это выполнит операцию над API, как указано в предоставленной строке json.

—generate-cli-skeleton (string) — необязательно. Это выведет скелет JSON со всеми деталями без выполнения API. Вывод может быть использован как вход для —cli-input-json.

Теперь давайте изменим память и время ожидания лямбда-функции AWS, которую мы создали ранее. Следуйте инструкциям, приведенным ниже, и обратите внимание на соответствующие скриншоты, прилагаемые для этой цели:

Шаг 1

Память и время ожидания до изменения следующие:

Тайм-аут

Шаг 2

Теперь, с помощью update-function-configuration , давайте изменим память и время ожидания до 320 МБ, а время ожидания — до 10 с. Для этого используйте следующую команду со значениями —

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

Шаг 3

Затем вы можете увидеть следующий вывод в виде дисплея —

Cli обновлен

Шаг 4

Отображение в консоли AWS после использования update-function-configuration выглядит следующим образом:

Конфигурация Cli

Update-функция-код

Этот API обновит код для существующей лямбда-функции AWS.

Включенные команды

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

Варианты вовлечены

Ниже приведены параметры, связанные с API-кодом update-function-code.

—function-name (строка) — имя лямбда-функции aws

—zip-файл (blob) — необязательно. Путь к zip-файлу с кодом для обновления.

—s3-ведро (строка) — необязательно. S3 имя контейнера, в который загружен zip-файл с кодом.

—s3-ключ (строка) — необязательно. Имя ключа объекта AWS s3, которое необходимо загрузить.

—s3-object-version (string) — необязательно. Версия объекта AWS s3.

—cli-input-json (строка) — необязательно. Это выполнит операцию над API, как указано в предоставленной строке json.

—generate-cli-skeleton (string) — необязательно. Это выведет скелет JSON со всеми деталями без выполнения API. Вывод может быть использован как вход для —cli-input-json.

Обновленный код как показано ниже —

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

Вы можете использовать следующую команду со значениями для этой цели

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

Соответствующий вывод, как показано здесь —

Cli Purpose

Дисплей с консоли AWS, как показано здесь —

Консоль AWS Cli

Соответствующий вывод журнала, как показано ниже —

Cli Log

удалить функция

Удалить aws cli api удалит данную функцию.

Команды включены

Подробности команды для того же даны здесь —

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

Опции включены

Опции, включенные в этот API, приведены ниже.

—function-name (string) — это будет принимать имя лямбда-функции или арн ля лямбда-функции aws.

—qualifier (string) — это необязательно. Здесь вы можете указать версию aws lambda, которую нужно удалить.

— cli-input-json (string) — выполняет сервисную операцию на основе предоставленной строки JSON. Строка JSON соответствует формату, предоставленному —generate-cli-skeleton. Если в командной строке указаны другие аргументы, значения CLI будут переопределять значения, предоставленные JSON.

—generate-cli-skeleton (string) — выводит скелет json на стандартный вывод без отправки запроса API.

Вы можете использовать следующую команду со значениями для этой цели —

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

Удалить функцию

Теперь обратите внимание, что функция не будет отображаться в списке функций AWS Lambda.