Execute Lambda
Resumo
Esse módulo executa funções Lambda da AWS, permitindo invocaão síncrona ou assíncrona.
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
aws_access_key aliases: ec2_access_key, access_key | string | | Chave de acesso da AWS. Se não for definido, o valor da variável de ambiente AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY ou EC2_ACCESS_KEY é usado.Se o perfil for definido, este parâmetro será ignorado.Passar as opções aws_access_key e de perfil ao mesmo tempo se tornou obsoleto e as opções se tornarão mutuamente exclusivas após 01/06/2022. |
aws_ca_bundle | path | | A localização de um pacote CA para usar ao validar certificados SSL.Usado apenas para módulos baseados em boto3.Observação: o pacote CA é lido no lado do 'módulo' e pode precisar ser copiado explicitamente do controlador se não for executado localmente. |
aws_config | dictionary | | Um dicionário para modificar a configuração do botocore.Os parâmetros podem ser encontrados em https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config .Apenas a chave 'user_agent' é usada para módulos boto. Consulte http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto para obter mais configurações de boto. |
aws_secret_key aliases: ec2_secret_key, secret_key | string | | Chave secreta da AWS. Se não for definido, o valor da variável de ambiente AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY ou EC2_SECRET_KEY é usado.Se o perfil for definido, este parâmetro será ignorado.Passar as opções aws_secret_key e de perfil ao mesmo tempo se tornou obsoleto e as opções se tornarão mutuamente exclusivas após 01/06/2022. |
debug_botocore_endpoint_logs | boolean | Escolhas:
| Use um registrador botocore.endpoint para analisar as chamadas de API "resource:action" exclusivas (em vez do total): feitas durante uma tarefa, enviando o conjunto para a chave resource_actions nos resultados da tarefa. |
dry_run | boolean | Escolhas:
| Na verdade, esse parametro não chama a função. A chamada DryRun irá checar se o que faz o chamado tem permissões para chamar a função, especialemente para checar permissões que são cross-account. |
ec2_url aliases: aws_endpoint_url, endpoint_url | string | | Url a ser usado para se conectar ao EC2 ou à nuvem Eucalyptus (por padrão, o módulo usará endpoints EC2). Ignorado para módulos onde a região é necessária. Deve ser especificado para todos os outros módulos se a região não for usada. Se não for definido, o valor da variável de ambiente EC2_URL, se houver, será usado. |
function_arn | string | | O nome da função a ser chamada. |
name | string | | O nome da função a ser chamada. Esse parametro pode somente ser usado em chamadas dentro da conta de chamado. Para chamar a função em outra conta, use function_arn para especificar o ARN completo. |
payload | dictionary | Default: {} | Um dicionário de qualquer forma a ser provido como input para a função Lambda |
profile aliases: aws_profile | string | | Usa um perfil de boto. Funciona apenas com boto> = 2.24.0.O uso de profile sobrescreverá aws_access_key , aws_secret_key e security_token e o suporte para passá-los ao mesmo tempo que o profile foi descontinuado.aws_access_key , aws_secret_key e security_token serão mutuamente exclusivos com o perfil após 2022-06-01. |
region aliases: aws_region, ec2_region | string | | A região da AWS a ser usada. Se não for especificado, o valor da variável de ambiente AWS_REGION ou EC2_REGION, se houver, será usado. Consulte http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region |
security_token aliases: aws_security_token, access_token | string | | Token de segurança AWS STS. Se não for definido, o valor da variável de ambiente AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN será usado.Se o perfil for definido, este parâmetro será ignorado.Passar as opções security_token e profile ao mesmo tempo se tornou obsoleto e as opções serão mutuamente exclusivas após 2022-06-01. |
tail_log | boolean | Escolhas:
| Se tail_log=yes, o resultado da task irá incluir os ultimos 4KB do log do CloudWatch para a execuão da função. Tailing do log funciona somente se você usar invocação síncrona wait=yes. Isso é usualmente usado para desenvolver Lambdas para testes. |
validate_certs | boolean | Escolhas:
| Quando definido como "não", os certificados SSL não serão validados para versões boto> = 2.6.0. |
version_qualifier | string | | Qual versão/alias da função para executar. O padrão é a ultima versão (LATEST), pode ser setado somente à uma versão ou alias existente. Veja https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html para detalhes. |
wait | boolean | Escolhas:
| Esperar ou não pelos resultados da função ou não. Se wait=go a task não irá retornar nenhum resultado. Esperar a função Lambda para completar, seta wait=yes e o resultado estará disponível na output key. |
Notas
Observação
- Se os seguintes parâmetros não forem definidos no módulo, as seguintes variáveis de ambiente podem ser usadas:
- AWS_URL ou EC2_URL,
- AWS_PROFILE ou AWS_DEFAULT_PROFILE,
- AWS_ACCESS_KEY_ID ou AWS_ACCESS_KEY ou EC2_ACCESS_KEY
- AWS_SECRET_ACCESS_KEY ou AWS_SECRET_KEY ou EC2_SECRET_KEY
- AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN
- AWS_REGION ou EC2_REGION,AWS_CA_BUNDLE
- O Atmosphere usa o arquivo de configuração boto (normalmente ~/.boto) se nenhuma credencial for fornecida.
- Veja https://boto.readthedocs.io/en/latest/boto_config_tut.html
- AWS_REGION ou EC2_REGION pode ser normalmente usado para especificar a região AWS, quando necessário, mas isso também pode ser configurado no arquivo de configuração do boto
Exemplos
tasks:
- execute_lambda:
name: test
# the payload is automatically serialized and sent to the function
aws_access_key: NAWKJDLNLAKJWNDOAWDO
aws_secret_key: LAwidj09AWJoidajmnwf0AWDJWAPfo
region: "us-east-1"
dry_run: yes
payload:
foo: bar
value: 8
Test that you have sufficient permissions to execute a Lambda function in
another account
- execute_lambda:
name: test
aws_access_key: NAWKJDLNLAKJWNDOAWDO
aws_secret_key: LAwidj09AWJoidajmnwf0AWDJWAPfo
region: "us-east-1"
dry_run: true
- execute_lambda:
name: test
aws_access_key: NAWKJDLNLAKJWNDOAWDO
aws_secret_key: LAwidj09AWJoidajmnwf0AWDJWAPfo
region: "us-east-1"
payload:
foo: bar
value: 8
wait: true
tail_log: true
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
aws_access_key: NAWKJDLNLAKJWNDOAWDO
aws_secret_key: LAwidj09AWJoidajmnwf0AWDJWAPfo
region: "us-east-1"
payload:
foo: bar
value: 8
- execute_lambda:
name: test
aws_access_key: NAWKJDLNLAKJWNDOAWDO
aws_secret_key: LAwidj09AWJoidajmnwf0AWDJWAPfo
function: arn:aws:lambda:us-east-1:653844878133:function:test
region: "us-east-1"
version_qualifier: PRODUCTION
register: result
- debug:
msg: "{{ result }}"Valores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
logs | string | se tail_log == true | Os últimos 4KB de logs de função. Somente provido se tail_log=true |
output | dictionary | sucesso | Output da função se wait=true e a função retorna um valor. |
status | integer | sempre | StatusCode da saída da chamada API (200 ou chamas síncrones. 202 para assíncronas). |