如何使用 CloudFormation 替换字符串变量中的字符

问题描述 投票:0回答:2

在我使用 CloudFormation 语法的 serverless.yml 脚本中,我使用

appName
变量为我的应用程序定义了一个名称:

custom:
  appName: my-app-name

在脚本的某处我使用这个

appName
变量来组装url路径字符串,例如:

  myEndpoint:
    events:
      - http:
          path: /${{self:custom.appName}}/index

这将导致

path
成为
/my-app-name/index

但是我想用

-
破折号替换
_
字符。

最干净的方法是什么?

amazon-web-services aws-cloudformation serverless
2个回答
1
投票

你不能用普通的 CloudFormation 做到这一点。您必须使用 macros,尽管也可以使用自定义资源。具体来说,您可以使用

Replace
宏开发我的 AWS 并在 aws-cloudformation / aws-cloudformation-macros。您还可以开发自己的宏,或修改 AWS 提供的开源宏。


0
投票

您可以使用拆分和连接功能。首先, Fn::split 你的字符串使用原始字符,在你的例子中是“-”,然后 Fn::Join 返回列表中的所有值 Fn::Split 与所需的字符“_”。

{"Fn::Join": ["_", { "Fn::Split" : ["-", {"Ref": "myVar"}]}]}
© www.soinside.com 2019 - 2024. All rights reserved.