问题描述
在我的 Cloudformation 模板中,我只想获取字符串的第一个字符! 例如
我有以下参数
EnvType:
Default: Dev
我想做的是在我的标签中,
Name: !Sub '${AWS::Region}${AWS::AccountID}${EnvType}'
这里我不想Dev出现在名字里,我只想要Dev的第一个字符。哪个是D! 是否可以使用 split 或任何其他功能?
解决方法
您可以使用 Cloudformation 中的内在函数对字符串执行转换/连接/拆分。
在这种情况下,您可以尝试使用 split
,如下所示:
!Select [0,!Split ["",!Sub ${EnvType}]]
如果您想将它与“名称”中的其他值连接起来,则可以使用以下方法:
Name: !Join
- ''
- - !Sub '${AWS::Region}${AWS::AccountID}
- !Select [0,!Sub ${EnvType}]]
您可以参考 Fn::Split 文档了解更多详情
,似乎您不能将 documentation 用作空分隔符。
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
EnvType:
Type: String
Default: "Dev"
Resources:
MySNSTopic:
Type: AWS::SNS::Topic
Properties:
DisplayName: !Join
- ''
- - !Sub 'myrepcious'
- !Select [0,!Ref EnvType]]
调用 CreateStack 操作时发生错误 (ValidationError):模板错误:每个 Fn::Split 对象都需要一个非空分隔符。
因此您需要编写自定义宏来执行此操作。
custom macros published by awslambda