Cloudformation从参数中删除破折号

时间:2019-06-19 14:50:04

标签: amazon-web-services amazon-s3 amazon-cloudformation amazon-cognito

我正在尝试使用具有创建多个资源(包括S3存储桶和Cognito用户池)的根堆栈的嵌套堆栈。问题是:

  • S3存储桶名称不允许使用大写字母。
  • Cognito身份池名称不允许使用破折号-

我想使用相同/相似的名称${AWS::StackName}-then-some-string来命名我的资源,以便将它们识别为一个应用程序的一部分。

是否有办法从cloudformation内部的参数中删除破折号?我知道我可以使用Fn::Split-分割字符串,然后使用Fn::Select选择特定元素,然后选择Fn::Join,但这仅适用于具有一定数量的堆栈名称破折号-

关于如何使用某种函数或正则表达式将-更改为空字符串或其他内容,我找不到任何资源。

1 个答案:

答案 0 :(得分:2)

您快到了-使用Class Tournament{ private int id; Date date; String name; String place Shoot shoot; } Class Shoot { private int id; @OneToMany List<Arrow> arrowList; } Class Arrow { private int id; @ManyToOne private Shoot shoot; private Integer orderNumber; (1-60) private Integer result (1-10) instead of Integer can be modified to ENUM ArrowResult from 1-10 } Fn::Split,无需选择。

Fn::Join

SomeKey: Fn::Join: - '' - Fn::Split: - '-' - !Ref YourParam 返回一个数组。 Split接受一个连接字符串和一组要连接的项目。因此,只需将连字符/破折号分开,然后用空字符串将各部分重新连接在一起,从而消除连字符。