我有一个cloudformation模板,它使用了一些ssm参数。这些参数仅在给定帐户的给定区域中定义。如果定义了ssm参数,则使用ssm参数;如果在给定区域中没有定义ssm参数,则不使用ssm参数(可能默认为某个字符串值,如“未定义”)。
就像这样
Parameters:
anssmparameter:
Type: AWS::SSM::Parameter::Value<String>
# if ssmparam is defined
Default: ssmparam
# else ssmparam is not defined use a different default
Default: "a placeholder value"
Description: some description这在云格式中有可能吗?我研究过一点,看来这是不可能的?
我所看到的最接近的是,它本质上说是不可能的。
发布于 2021-08-14 00:11:52
遗憾的是,不能在Parameters中使用条件,除非您在部署过程中编写一个tin包装器,以便在模板进入CloudFormation之前对其进行修改。
除此之外,您还必须在Resources中使用Resources条件来在不同的可能性之间进行实际的交替。
发布于 2022-10-20 06:01:43
如果给定参数值,则可以在运行时使用动态引用进行解析。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html
Parameters:
anssmparameter:
Type: String
placeholdervalue:
Type: String
Default: 'a placeholder value'
Conditions:
toResolveSSMParam: !Not [!Equals [!Sub '${anssmparameter}', '']]
Resources:
ResourceA:
Properties:
PropertyA: !If [toResolveSSMParam, !Sub '{{resolve:ssm:${anssmparameter}}}', !Ref placeholdervalue]https://stackoverflow.com/questions/68774554
复制相似问题