我希望创建一个以lambda函数为目标的AWS事件桥规则。名为'StartInstance‘的lambda函数已经通过控制台创建。
我已经创建了一个python脚本,它使用boto3库来创建这个事件桥规则。我将向这个规则传递一个cron表达式,它将在特定的日期和时间调用lambda函数。
下面是成功运行的python脚本的代码:
import boto3
eventclient = boto3.client('events')
response = eventclient.put_rule(
Name='ec2scheduler',
ScheduleExpression='cron(40 16 21 4 ? 2021)',
State='ENABLED',
Description='schedule ec2 start/stop'
)
response = eventclient.put_targets(
Rule='ec2scheduler',
Targets=[
{
'Id': 'StartInstance',
'Arn': 'arn:aws:lambda:us-east-1:965477548122:function:StartInstance'
}
]
)正如您所看到的,传递给规则的cron表达式是:cron(40 16 21 4 ? 2021),它应该在格林尼治时间16:40的日期21-4月-2021年调用'StartInstance‘lambda函数。但是,在当时没有调用lambda函数。我也看到在cloudwatch日志中没有为lambda函数生成任何日志。当我通过控制台看到所需的目标和cron表达式时,上面创建的事件桥规则在我看来还不错。但是,当时间到来时,规则不会调用lambda函数。
为什么会发生这种情况?
发布于 2021-04-22 16:03:58
发布于 2021-07-27 14:01:39
将策略AmazonEventBridgeFullAccess附加到角色。
https://stackoverflow.com/questions/67200794
复制相似问题