community.aws.execute_lambda – Выполнение функции AWS Lambda
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Чтобы использовать его в книге задач, укажите: community.aws.execute_lambda.
Введено в версии 1.0.0: коллекции community.aws
Обзор
- Этот модуль выполняет функции AWS Lambda, позволяя синхронное и асинхронное вызов.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное передача параметров aws_access_key и profile устарело и эти параметры будут взаимно исключающими после 2022-06-01. алиасы: ec2_access_key, access_key | |
| aws_ca_bundle путь | Расположение файла с набором корневых сертификатов для проверки SSL-сертификатов. Используется только для модулей, основанных на boto3. Примечание: набор корневых сертификатов считывается со стороны модуля и, возможно, потребует явного копирования с контроллера, если он не выполняется локально. | |
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти на странице https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для дополнительной конфигурации boto. | |
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное передача параметров aws_secret_key и profile устарело и эти параметры будут взаимно исключающими после 2022-06-01. алиасы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs логический тип |
| Используйте логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводив набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, выполненный во время книги задач. Переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS также может быть использована. |
| dry_run логический тип |
| Не вызывать функцию *на самом деле*. Вызов DryRun проверит, имеет ли вызывающая сторона разрешения на вызов функции, особенно для проверки разрешений между аккаунтами. |
| ec2_url строка | URL для подключения к EC2 или вашей облачной платформе Eucalyptus (по умолчанию модуль использует адреса EC2). Игнорируется для модулей, где необходим регион. Должен быть указан для всех других модулей, если не используется регион. Если не задан, используется значение переменной среды EC2_URL, если она существует. алиасы: aws_endpoint_url, endpoint_url | |
| function_arn строка | Имя вызываемой функции. | |
| name строка | Имя вызываемой функции. Используется только для вызовов в вызывающем аккаунте. Для вызова функции в другом аккаунте используйте function_arn для указания полного ARN. | |
| payload словарь | По умолчанию: {} | Словарь в любом формате, который будет предоставлен в качестве входных данных функции Lambda. |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределяет aws_access_key, aws_secret_key и security_token, а поддержка одновременной передачи их вместе с profile устарела. aws_access_key, aws_secret_key и security_token будут взаимно исключающими с profile после 2022-06-01. алиасы: aws_profile | |
| region строка | Регион AWS для использования. Если не задан, используется значение переменной среды AWS_REGION или EC2_REGION, если она существует. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
алиасы: aws_region, ec2_region | |
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Одновременное передача параметров security_token и profile устарело и эти параметры будут взаимно исключающими после 2022-06-01. алиасы: aws_security_token, access_token | |
| tail_log логический тип |
| Если tail_log=да, результат задачи будет включать последние 4 КБ лога CloudWatch для выполнения функции. Отображение логов работает только при синхронном вызове wait=да. Обычно используется для разработки или тестирования Lambdas. |
| validate_certs логический тип |
| При значении "нет" SSL-сертификаты не будут проверяться для boto-версий >= 2.6.0. |
| version_qualifier строка | Какую версию/псевдоним функции запустить. По умолчанию используется LATEST ревизия, но может быть установлена на любую существующую версию или псевдоним. См. https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html для получения подробной информации. | |
| wait логический тип |
| Дожидаться результатов функции или нет. Если wait=нет, задача не вернёт никаких результатов. Чтобы дождаться завершения работы функции Lambda, установите wait=да и результат будет доступен в ключе output. |
Примечания
Примечание
- Асинхронный вызов всегда вернёт пустой
outputключ. - Синхронный вызов может привести к таймауту функции, в результате чего пустой
outputключ. - Если параметры не заданы в модуле, следующие переменные среды могут быть использованы в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION,AWS_CA_BUNDLE - Ansible использует конфигурационный файл boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONмогут использоваться для указания региона AWS, когда это необходимо, но это также можно настроить в конфигурационном файле boto.
Примеры
- community.aws.execute_lambda:
name: test-function
# the payload is automatically serialized and sent to the function
payload:
foo: bar
value: 8
register: response
# Test that you have sufficient permissions to execute a Lambda function in
# another account
- community.aws.execute_lambda:
function_arn: arn:aws:lambda:us-east-1:123456789012:function/some-function
dry_run: true
- community.aws.execute_lambda:
name: test-function
payload:
foo: bar
value: 8
wait: true
tail_log: true
register: response
# the response will have a `logs` key that will contain a log (up to 4KB) of the function execution in Lambda
# Pass the Lambda event payload as a json file.
- community.aws.execute_lambda:
name: test-function
payload: "{{ lookup('file','lambda_event.json') }}"
register: response
- community.aws.execute_lambda:
name: test-function
version_qualifier: PRODUCTION
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| logs строка | если tail_log == true | Последние 4 КБ логов функции. Предоставляется только если tail_log равно true |
| output словарь | успех | Выходные данные функции, если wait=true и функция возвращает значение Пример: { 'output': 'что-то' } |
| status целое число | всегда | StatusCode код вызова API (200 для синхронных вызовов, 202 для асинхронных)Пример: 200 |
Авторы
- Ryan Scott Brown (@ryansb) <ryansb@redhat.com>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/execute_lambda_module.html