execute_lambda – Выполнение функции AWS Lambda
Описание
- Этот модуль выполняет функции AWS Lambda, позволяя синхронное и асинхронное вызов.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs логическое добавлено в 2.8 |
| Используйте логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода общего списка, выполненного во время исполнения плейбука. Также можно использовать переменную окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| dry_run логическое |
| Не вызывать функцию *на самом деле*. Вызов DryRun проверит, имеет ли вызывающий права на вызов функции, особенно для проверки прав доступа между учетными записями. |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть. | |
| function_arn - | Имя вызываемой функции | |
| name - | Имя вызываемой функции. Это может быть использовано только для вызовов внутри учетной записи вызывающего. Для вызова функции в другой учетной записи используйте function_arn для указания полного ARN. | |
| payload - | По умолчанию: {} | Словарь любого формата, который нужно предоставить в качестве входных данных функции Lambda. |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| 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. Псевдонимы: access_token | |
| tail_log логическое |
| Если tail_log=yes, результат задачи будет включать последние 4 КБ журнала CloudWatch для выполнения функции. Отслеживание журнала работает только при использовании синхронного вызова wait=yes. Это обычно используется для разработки или тестирования функций Lambda. |
| validate_certs логическое |
| При установке «нет», сертификаты SSL не будут проверяться для версий boto >= 2.6.0. |
| version_qualifier - | По умолчанию: "LATEST" | Какую версию/псевдоним функции запустить. По умолчанию используется последняя LATEST редакция, но можно установить любую существующую версию или псевдоним. Подробности см. в https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html. |
| wait логическое |
| Дожидаться результатов функции или нет. Если wait no, задача не вернет никаких результатов. Для ожидания завершения функции Lambda, установите wait=yes и результат будет доступен в ключе output. |
Примечания
Примечание
- Асинхронный вызов всегда возвращает пустой ключ
output. - Синхронный вызов может привести к таймауту функции, что приведет к пустому ключу
output. - Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
AWS_URLилиEC2_URL,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 - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONможно использовать для указания региона AWS при необходимости, но это также можно настроить в файле конфигурации boto
Примеры
- 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
- execute_lambda:
function_arn: arn:aws:lambda:us-east-1:123456789012:function/some-function
dry_run: true
- 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.
- execute_lambda:
name: test-function
payload: "{{ lookup('file','lambda_event.json') }}"
register: response
- 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 |
Статус
- Данный модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Ryan Scott Brown (@ryansb) <ryansb@redhat.com>
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете редактировать этот документ для его улучшения.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/execute_lambda_module.html