【发布时间】:2020-07-29 17:57:01
【问题描述】:
我正在编写一个 CF 模板来创建一个 Elasticache 复制组。其中,我有一个名为Snapshots 的CommaDelimitedList 类型的参数,用于将存储在s3 中的RDB 快照文件作为ARN 列表传递-
Snapshots:
Description: >-
List of ARNs of Redis RDB snapshot files to populate the Elasticache
cluster (optional)
Type: CommaDelimitedList
我试图有一个像下面这样的条件,它将检查 Snapshots 是否为空 -
Conditions:
HasSnapshots: !Not
- !Equals
- !Ref Snapshots
- ''
当我尝试在 CloudFormation Designer 中验证我的模板时,它会引发错误 -
29/07/2020, 22:50:33 - Template contains errors.: Template error: every Fn::Equals object requires a list of 2 string parameters.
这样做的正确方法是什么?我必须对Snapshots 使用字符串类型而不是 CommaDelimitedList 吗?还是有其他更好的方法?
我需要此参数用于 AWS::ElastiCache::ReplicationGroup 类型的 Resource,如下所示,以使用在 Snapshots 参数中作为 ARN 列表给出的快照文件填充 ElastiCache 集群(如果提供的话)-
RedisReplicationGroup:
Type: 'AWS::ElastiCache::ReplicationGroup'
Properties:
...
...
SnapshotArns: !If
- HasSnapshots
- !Ref Snapshots
- !Ref 'AWS::NoValue'
【问题讨论】:
-
进展如何?还不清楚你能做什么?如果没有,我们将不胜感激。
标签: amazon-web-services amazon-cloudformation amazon-elasticache