在我使用 CloudFormation 语法的 serverless.yml 脚本中,我使用
appName
变量为我的应用程序定义了一个名称:
custom:
appName: my-app-name
在脚本的某处我使用这个
appName
变量来组装url路径字符串,例如:
myEndpoint:
events:
- http:
path: /${{self:custom.appName}}/index
这将导致
path
成为/my-app-name/index
但是我想用
-
破折号替换_
字符。
最干净的方法是什么?
你不能用普通的 CloudFormation 做到这一点。您必须使用 macros,尽管也可以使用自定义资源。具体来说,您可以使用
Replace
宏开发我的 AWS 并在 aws-cloudformation /
aws-cloudformation-macros。您还可以开发自己的宏,或修改 AWS 提供的开源宏。
您可以使用拆分和连接功能。首先, Fn::split 你的字符串使用原始字符,在你的例子中是“-”,然后 Fn::Join 返回列表中的所有值 Fn::Split 与所需的字符“_”。
{"Fn::Join": ["_", { "Fn::Split" : ["-", {"Ref": "myVar"}]}]}