【发布时间】:2017-09-07 23:08:03
【问题描述】:
我创建了一个 AWS lambda,当我测试它以及通过 cloudwatch 规则手动创建 cron 作业时,它运行良好。
它将指标报告为调用(未失败),并记录有关执行的详细信息。
然后我决定删除手动创建的 cloudwatch 规则,以便使用 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 }}"
这创建了几乎完全相同的 cloudwatch 规则。我可以看到手动创建的唯一区别是在目标中,lambda 版本/别名在手动创建时设置为默认,而它设置为版本,使用 ansible 创建时具有相应的版本号。
使用 ansible 创建的 cloudwatch 规则只有调用失败。
知道这是为什么吗?我看不到任何日志。有没有办法可以使用 ansible 中的 cloudwatchevent_rule 模块将版本设置为默认?
【问题讨论】:
-
你解决了吗?我遇到了类似的问题。 Ansible 创建成功但事件失败。如果我编辑并保存事件规则(没有更改)它开始工作......
-
不,我还没有找到解决方案。如果你找到了请告诉我。
标签: amazon-web-services ansible amazon-cloudwatch