微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在 Cloudformation 模板中拆分字符串并仅取出单个字符?

如何解决是否可以在 Cloudformation 模板中拆分字符串并仅取出单个字符?

在我的 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 对象都需要一个非空分隔符。

因此您需要编写自定义宏来执行此操作。

Fn::Split

custom macros published by awslambda

How and Why to Use CloudFormation Macros

How to install and use the Boto3 macro in your AWS account

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。