YAML中的Cloudformation功能

时间:2018-04-16 08:48:53

标签: amazon-web-services amazon-cloudformation

我犯了一个愚蠢的错误,有人可以帮帮我

我希望我的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.

2 个答案:

答案 0 :(得分:0)

尝试:

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

如果这不起作用,请提供您实际收到的错误。

答案 1 :(得分:0)

我遇到过类似的问题。在打开括号后和关闭括号之前添加空格似乎可以解决这些问题。

AWS CloudFormation用户指南中的所有示例都包含在执行特殊功能时使用花括号或方括号之前和之后的额外空格。

您的代码行将成为:

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

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