这就是我想要做的:
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.
有人知道正确的语法吗?
答案 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块。