AWS Cloudformation:授予Cloudwatch *调用Lambda的权限

时间:2018-11-27 18:13:33

标签: amazon-web-services aws-lambda amazon-cloudformation amazon-cloudwatch

这就是我想要做的:

LambdaInvokePermission: Type: AWS::Lambda::Permission Properties: --snip-- SourceArn: !Sub arn:aws:events:${AWS::Region}:${AWS::AccountId}:rule/*-${Environment}

但是似乎不喜欢*语法。

我只尝试了SourceArn: !Sub arn:aws:events:${AWS::Region}:${AWS::AccountId}:rule/*SourceArn: '*',但它们也给出了类似

的失败消息

The rule * could not be found.

有人知道正确的语法吗?

1 个答案:

答案 0 :(得分:0)

您需要指定将触发此lambda函数的cloudwatch规则的确切名称。 示例:arn:aws:events:us-east-1:123456789012:rule / 我的预定规则

AWS :: Lambda :: Permission的SourceArn属性需要一个字符串值:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html#cfn-lambda-permission-sourcearn。 在单个带有通配符'*'的 AWS :: Lambda :: Permission 块中,您不能具有多个Cloudwatch规则作为SourceArn(而不是列表)。要让多个cloudwatch规则触发相同的lambda函数,您将需要在cloudformation模板中添加另一个AWS :: Lambda :: Permission块。