【发布时间】:2020-11-03 11:25:54
【问题描述】:
在我的 cloudformation 代码(yaml 文件)中,我想编写条件来检查字符串参数是否长于某个值(比如说 15),但我没有找到任何方法。 两个主要问题是,
- 如何获取字符串参数长度?
- 获得长度后,如何编写条件来检查该长度是否大于/小于特定值?
我希望 cloudformation 有一个像 LongerThan 这样的 Fn 或类似的东西
Conditions:
isLongerThanParam:
'Fn::LongerThan':
- {Ref: Param}
- '15'
【问题讨论】:
-
我认为没有办法做到这一点;正如您所发现的,内在功能非常有限。你想做什么?可能还有另一种方法可以实现您想要的。
-
存储桶名称有 cloudformation 限制“存储桶名称应在 3 到 63 个字符之间”,并且我的存储桶名称包含一些常量前缀(48 个字符)和参数
"Fn::Sub": "<prefix>-${Param}",所以我m 尝试检查参数是否超过 15,然后使用不同的前缀。 -
对参数设置 MaxLength 约束就足够了吗?但是,这不允许您使用后备;它只会阻止存储桶名称超过最大长度并导致错误。
-
是的,我想过但是我不想改参数名(其他地方用的)我想改前缀。
-
您可以按照@PMah 的建议使用 MaxLength,但保留原始参数和第二个
LongerThanFifteenBucketName。添加条件LongerThanFifteen和ShorterThanFifteen并使用!If引用正确的参数?
标签: conditional-statements amazon-cloudformation