在 SAM 部署期间检测到 AWS SAM 模板验证错误。不接受伪参数 ${AWS::AccountId}

时间:2021-02-06 16:24:21

标签: amazon-web-services amazon-cloudformation aws-sam

在尝试 SAM Deploy 时,我收到以下拒绝:

1 validation error detected: Value 'arn:aws:iam::${AWS::AccountId}:role/Lambda-Exec-And-CloudWatch' at 'role' failed to satisfy constraint: Member must satisfy regular expression pattern: arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+ (Service:AWSLambdaInternal; Status Code: 400; Error Code: ValidationException;

当我使用伪参数替换 Lambda 函数的 arn 角色构造中的账户 ID 时会发生这种情况:${AWS::AccountId}

这是发生这种情况的 YAML 模板中函数的 Role 属性:

Role:
        arn:aws:iam::${AWS::AccountId}:role/Lambda-Exec-And-CloudWatch

预期的正则表达式似乎只接受硬编码的帐户 ID。

如果有帮助,我将使用 Cloud9 作为我的 IDE。

我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我们需要使用内部函数 !Sub ,Here 是几个例子

suppressMessages(
1:10 %>% map_dfc(fct) %>% setNames( str_c("C",1:10))
)
相关问题