如何解决在 SAM 部署期间检测到 AWS SAM 模板验证错误不接受伪参数 ${AWS::AccountId}
在尝试 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。
我错过了什么?
谢谢!
解决方法
我们需要使用内部函数 !Sub ,Here 是几个例子
suppressMessages(
1:10 %>% map_dfc(fct) %>% setNames( str_c("C",1:10))
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。