A regra Ansible do Cloudwatch relata invocações com falha
Criei um AWS lambda que funciona bem quando testo e quando crio um trabalho cron manualmente através de uma regra do cloudwatch.
Ele relata as métricas como invocações (sem falhas) e também registra detalhes da execução.
Decidi remover a regra do cloudwatch criada manualmente para criar uma com o ansible.
- name: Create lambda service.
lambda:
name: "{{ item.name }}"
state: present
zip_file: "{{ item.zip_file }}"
runtime: 'python2.7'
role: 'arn:aws:iam::12345678901:role/lambda_ecr_delete'
handler: 'main.handler'
region: 'eu-west-2'
environment_variables: "{{ item.env_vars }}"
with_items:
- name: lamda_ecr_cleaner
zip_file: assets/scripts/ecr-cleaner.zip
env_vars:
'DRYRUN': '0'
'IMAGES_TO_KEEP': '20'
'REGION': 'eu-west-2'
register: new_lambda
- name: Schedule a cloudwatch event.
cloudwatchevent_rule:
name: ecr_delete
schedule_expression: "rate(1 day)"
description: Delete old images in ecr repo.
targets:
- id: ecr_delete
arn: "{{ item.configuration.function_arn }}"
with_items: "{{ new_lambda.results }}"
Isso cria quase exatamente a mesma regra de observação na nuvem. A única diferença que vejo com a criada manualmente está nos destinos, a versão / alias lambda é definida como Padrão quando criada manualmente enquanto é definida como versão, com um número de versão correspondente quando criada com ansible.
A regra do cloudwatch criada com ansible apenas falhou nas invocações.
Alguma ideia de por que é assim? Não consigo ver nenhum registro. Existe uma maneira de definir a versão como padrão também com o módulo cloudwatchevent_rule no ansible?