【发布时间】:2020-04-09 00:22:59
【问题描述】:
我正在部署一个 lambda 函数,我想每天调用它。我意识到即使我没有收到任何错误,最终的部署步骤也会以某种方式失败
aws events put-rule --name "daily_lambda_rule" \
--schedule-expression 'rate(15 minutes)'
aws lambda add-permission --function-name daily_lambda_rule \
--statement-id daily_lambda_function_scheduler \
--action 'lambda:InvokeFunction' \
--principal events.amazonaws.com \
--source-arn arn:aws:events:us-east-1:your-account-id:rule/daily_lambda_rule
aws events put-targets --rule daily_lambda_rule \
--targets "Id": "1","Arn":"arn:aws:lambda:us-east-1:your-account-id:function:myfun"
最后的输出是:
{
"FailedEntryCount": 0,
"FailedEntries": []
}
这表明一切正常,但是当我单击 lambda 函数时,我没有看到 cloudwatch 添加了此触发器的迹象。此外,手动添加触发器也可以正常工作。
使用boto3 产生相同的结果:
import boto3
events_client = boto3.client('events')
lambda_arn = 'arn:aws:lambda:eu-west-2:my-account-id:function:myfunction'
event_rule_name ='daily_lambda_rule'
scheduled_lambda = [
{
'Id': "myfunction", # lambda name
'Arn': lambda_arn,
}
]
response = events_client.put_targets(Rule=event_rule_name,
Targets=scheduled_lambda)
阻止脚本从 adding the trigger 到 lambda 函数的错误可能是哪里/什么?
特此我未成功检查的一些链接: https://towardsdatascience.com/loading-reddit-posts-using-aws-lambda-and-cloudwatch-events-9edb03ba4c14
https://docs.aws.amazon.com/cli/latest/reference/events/put-targets.html
boto3 - put_target https://docs.aws.amazon.com/code-samples/latest/catalog/python-cloudwatch-put_targets.py.html
【问题讨论】:
标签: aws-lambda boto3 aws-cli amazon-cloudwatch