YAML 中的 Cloudformation 函数

Cloudformation funtions in YAML

我犯了一个愚蠢的错误,有人能帮帮我吗

我希望我的 CF 模板中的服务角色为:

ServiceRole: arn:aws:iam::1234556:role/service-role/awsBatchServiceRole(parameter)

我正在使用下面的代码但出现错误

ServiceRole:!Join ["/", [!Sub arn:aws:iam::${AWS::AccountId}:role/service-role, !Ref BatchServiceRole]]

错误:

Template validation error: Template format error: YAML not well-formed.

尝试:

ServiceRole: !Sub 'arn:aws:iam::${AWS::AccountId}:role/service-role/${BatchServiceRole}'

如果这不起作用,请包括您遇到的实际错误。

我遇到过类似的问题。在左括号后和右括号前添加空格似乎可以解决这些问题。

A​​WS CloudFormation 用户指南中的所有示例在执行特殊函数时使用花括号或方括号前后均包含额外空格。

您的代码行将变为:

ServiceRole: !Join [ "/", [ !Sub 'arn:aws:iam::${AWS::AccountId}:role/service-role', !Ref BatchServiceRole ] ]

编辑:OP 添加了内联使用 !Sub 函数所必需的缺失引号