Создание и развертывание с помощью AWS CLI
AWS CLIэто инструмент командной строки, который помогает работать с сервисами AWS. Мы можем использовать его для создания, обновления, удаления, вызова лямбда-функции aws. В этой главе вы подробно обсудите установку и использование AWS CLI.
Установка AWS CLI
В этом разделе представлены инструкции по установке AWS CLI в различных операционных системах. Следуйте приведенным инструкциям и просмотрите соответствующие скриншоты, где бы они ни были.
Для Windows
Проверьте конфигурацию Windows и выберите одну из следующих ссылок для установки AWS CLI MSI -
Для 64-разрядной версии Windows - установка AWS CLI MSI для Windows ( 64-разрядная версия )
Для 32-разрядной версии Windows - установка AWS CLI MSI для windows (32)
Выбрав соответствующую ссылку и щелкнув по ней, вы сможете найти окно, как показано здесь -
Затем установите Environment path in windows как показано на скриншотах ниже -
После этого вы можете использовать следующую команду в командной строке, чтобы узнать, aws cli установлен -
aws --version
Он отображает подробную информацию о версии 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 Secret
- Название региона по умолчанию
- Вывод по умолчанию из формата
Вы можете получить эти сведения на консоли aws. Перейдите к имени своей учетной записи в правом верхнем углу, как показано -
Теперь нажмите My Security Credentialsи выберите пользователей с левой стороны. Добавьте пользователя с подробной информацией по запросу.
Добавьте пользователя и, чтобы получить ключ доступа и секретный ключ. Чтобы увидеть новый ключ доступа, выберитеShow. Ваши учетные данные будут выглядеть, как показано ниже -
Access key ID − AOSAIOSFOCDD7Example
Secret access key − aJuirCVtnROUN/K7MDENG/bPxRfiCYExampleKEY
Справочные команды для AWS CLIS
В следующей таблице приведены ссылки на команды, с которыми можно работать. aws cli.
Имя команды aws cli | Справочник команд |
---|---|
create-function | create-function --function-name <value> --runtime <value> --role <value> --handler <value> [--code <value>] [--description <value>] [--timeout < значение>] [--memory-size <значение>] [--environment <значение>] [--kms-key-arn <значение>] [--tags <значение>] [--zip-file <значение> ] [--cli-input-json <значение>] |
list-functions | список-функций [--master-region <значение>] [--function-version <значение>] [--max-items <значение>] [--cli-input-json <значение>] [--starting- токен <значение>] [--page-size <значение>] [--generate-cli-skeleton <значение>] |
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-account-settings [--cli-input-json <значение>] [--generate-cli-skeleton <значение>] |
update-function-configuration | update-function-configuration --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 <значение>] [--tracing-config <значение>] [--revision-id <значение>] [--cli-input-json <значение>] [--generate-cli-skeleton <значение>] |
update-function-code | update-function-code --function-name <value> [--zip-file <value>] [--s3-bucket <value>] [--s3-key <value>] [--s3-object- версия <значение>] [- опубликовать | --no-publish] [--dry-run | --no-dry-run] [--revision-id <значение>] [- cli-input-json <значение>] [- generate-cli-skeleton <значение>] |
delete-function | delete-function --function-name <value> [--qualifier <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] |
Теперь давайте подробно обсудим эти команды одну за другой.
создать функцию
Этот api создаст новую лямбда-функцию. Код нужно указывать в формате zip. Если функция, которую нужно создать, уже существует, api завершится ошибкой. Обратите внимание, что имя функции чувствительно к регистру.
Команды включены
Список команд, которые вы можете использовать с функцией создания, приведен здесь -
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(string)- Здесь вам нужно указать среду выполнения, то есть выбор языка. Детали среды выполнения приведены ниже -
Доступные варианты | время выполнения |
---|---|
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 это package.classname :: handler или package.classname
- Для python обработчиком является nameofthefile.
--code (structure) −AWS Лямбда-код
--description (string) - описание функции AWS Lambda
--timeout (integer)- таймаут будет иметь время, когда лямбда-функция должна завершить выполнение. По умолчанию - 3 с.
--memory-size (integer)- Это память, выделенная лямбда-функции aws. AWS будет выделять объем ЦП и памяти на основе предоставленной памяти.
--environment (structure) - это объект с деталями среды, необходимыми в лямбда-функции 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 Lambda, используя среду выполнения как nodejs, и добавим несколько console.logs для печати.
Рассмотрим пример кода для понимания того же -
exports.handler = async (event) => {
console.log("Using aws cli");
return 'Hello from Lambda from aws cli!'
};
Теперь заархивируйте файл и сохраните его как awscli.zip.
Получение ARN
Для роли воспользуемся arnиз существующей роли, которую мы создали. Чтобы получить ARN, вам нужно будет выполнить шаги, показанные здесь. Обратите внимание на соответствующие скриншоты, где бы они ни были -
Шаг 1
Перейдите в IAM и выберите нужную роль Roles. Детали ARN для роли отображаются, как показано ниже. ИспользоватьRole ARN с участием create-function в aws 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, вы можете найти вывод, как показано ниже -
В консоли AWS функция Lambda отображается, как показано ниже -
Подробности функций показаны здесь -
Детали конфигурации приведены ниже -
Вы можете протестировать функцию и проверить вывод, как показано -
Соответствующий вывод журнала показан здесь -
список-функции
Этот 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(string)- необязательно. Выполняет операцию на основе предоставленного файла json.
Команда со значениями list-functions выглядит следующим образом -
aws lambda list-functions --max-items 3
Команда отображает подробности следующим образом -
get-функция
Этот api предоставит подробную информацию о функциях, а также URL-адрес, в который загружен zip-файл с помощью функции создания. URL с деталями zip будет действителен только в течение 10 минут.
Команды включены
Ниже приведены команды, связанные с этим api:
get-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Включенные опции
--function-name- Имя функции AWS Lambda. Вы также можете указать имя ресурса Amazon для функции.
--qualifier(string)- Необязательно. Версия функции может использоваться для получения подробных сведений о функции.
Команда со значениями для get-функции:
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>]
The following are the options used with
--function-name (string) −имя лямбда-функции aws. Вы также можете указать имя ресурса Amazon для функции.
--qualifier(string) − Необязательно. Версия функции может использоваться для получения сведений о функции.
Команда со значениями для get-функции:
aws lambda get-function-configuration --function-name awslambdausingcli
Команда отображает подробности следующим образом -
get-account-settings
Этот 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
--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 (string) −необязательный. Необходимо обновить ARN роли.
--handler (string) −необязательный. Детали обработчика лямбда-функции aws.
--description(string) −необязательный. Описание функции.
--timeout(integer) −необязательный. Время, необходимое для завершения лямбда-функции aws.
--memory-size(integer) −необязательный. Это память, предоставленная лямбда-функции aws. AWS будет выделять объем ЦП и памяти на основе предоставленной памяти.
--environment (structure) −необязательный. Это объект, детали окружения которого требуются в лямбда-функции aws.
e.g: Variables = {Name1 = string, Name2 = string}
--runtime(string) − Здесь вам нужно указать среду выполнения, то есть выбор языка.
Детали среды выполнения показаны в таблице, приведенной ниже -
Доступные варианты | время выполнения |
---|---|
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 (string) −необязательный. Это выполнит операцию с api, как указано в предоставленной строке json.
--generate-cli-skeleton (string) −необязательный. Это выведет скелет JSON со всеми деталями без выполнения api. Выход может использоваться как вход для--cli-input-json.
Теперь давайте изменим память и тайм-аут функции AWS Lambda, которые мы создали ранее. Следуйте инструкциям, приведенным ниже, и просмотрите соответствующие снимки экрана, прилагаемые для этой цели -
Шаг 1
Память и тайм-аут до того, как произошло изменение, следующие:
Шаг 2
Теперь с update-function-configuration, давайте изменим память и тайм-аут на 320 МБ и тайм-аут на 10 секунд. Для этого используйте следующую команду со значениями -
aws lambda update-function-configuration --function-name “awslambdusingcli”
--timeout 10 --memory-size 320
Шаг 3
Затем вы можете увидеть следующий вывод на дисплее -
Шаг 4
Отображение в консоли AWS после использования update-function-configuration выглядит следующим образом -
Код функции обновления
Этот API обновит код существующей функции AWS Lambda.
Участвующие команды
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 кода функции обновления:
--function-name(string) − имя лямбда-функции aws
--zip-file (blob) −необязательный. Путь к zip-файлу с обновляемым кодом.
--s3-bucket(string) −необязательный. Имя сегмента S3, в который загружен zip-файл с кодом.
--s3-key(string) −необязательный. Имя ключа объекта AWS s3, которое необходимо загрузить.
--s3-object-version (string) −необязательный. Версия объекта AWS s3.
--cli-input-json (string) −необязательный. Это выполнит операцию с 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!'
};
Вы можете использовать следующие command with values for this purpose -
aws lambda update-function-code --function-name "awslambdausingcli"
--zip-file "fileb://awscli.zip"
Соответствующий вывод показан здесь -
Дисплей консоли AWS выглядит следующим образом -
Соответствующий вывод журнала показан ниже -
функция удаления
В delete aws cli api удалит указанную функцию.
Команды включены
Детали команды для этого же приведены здесь -
delete-function
--function-name <value>
[--qualifier <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
Включенные опции
Параметры, включенные в этот API, приведены ниже -
--function-name(string) − это примет имя лямбда-функции или arn лямбда-функции aws.
--qualifier (string) −Это необязательно. Здесь вы можете указать версию лямбда-выражения aws, которую необходимо удалить.
-- 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 -