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)
Для Windows 64 бит — AWS CLI MSI для Windows (64 бит)
Для Windows 32 бит — AWS CLI MSI установить для Windows (32)
Выбрав соответствующую ссылку и нажав на нее, вы можете найти окно, как показано здесь —
Затем установите путь для среды в окнах, как показано на скриншотах ниже —
После этого вы можете использовать следующую команду в командной строке, чтобы увидеть, установлена ли 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
- Название региона по умолчанию
- Вывод по умолчанию из формата
Вы можете получить эти данные с вашей консоли 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 .
Заметьте, что роль 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 (строка) — необязательно. Будет выполнять операцию на основе предоставленного файла JSON.
Команда со значениями list-functions выглядит следующим образом:
aws lambda list-functions --max-items 3
Команда отображает детали следующим образом —
получить-функции
Этот 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
Затем вы можете увидеть следующий вывод в виде дисплея —
Шаг 4
Отображение в консоли AWS после использования update-function-configuration выглядит следующим образом:
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"
Соответствующий вывод, как показано здесь —
Дисплей с консоли AWS, как показано здесь —
Соответствующий вывод журнала, как показано ниже —
удалить функция
Удалить 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.