我想每五分钟运行一次AWS lambda函数 . 在AWS管理控制台中,这很容易设置,在lambda函数的"Event Sources"选项卡下,但如何使用Terraform进行设置?
我尝试使用an aws_lambda_event_source_mapping resource,但事实证明the API it uses仅支持来自Kinesis和DynamoDB的事件 . 当我尝试将它与预定的事件源一起使用时,创建超时 .
我想每五分钟运行一次AWS lambda函数 . 在AWS管理控制台中,这很容易设置,在lambda函数的"Event Sources"选项卡下,但如何使用Terraform进行设置?
我尝试使用an aws_lambda_event_source_mapping resource,但事实证明the API it uses仅支持来自Kinesis和DynamoDB的事件 . 当我尝试将它与预定的事件源一起使用时,创建超时 .
2 回答
您可以使用
aws_cloudwatch_event_target
资源将计划的事件源(事件规则)绑定到lambda函数 . 您需要授予它调用lambda函数的权限;你可以使用aws_lambda_permission
资源 .例:
Verbjorns Ljosa的回答仅包括cloudwatch调用lambda的权限 . 您是否指定了允许lambda执行其操作的正确策略和iam角色?
with assume_role_policy.json
以及引用上述资源的策略I.e.就像是
最后指定策略的json,check-foo-policy.json .
请注意,您无法为与日志相关的操作指定资源限制 . abc:SomeAction可能是ssm:GetParameter,附带的资源类似
"arn:aws:ssm:us-east-1:${your-aws-account-id}:parameter/some/parameter/path/*