adi*_*k96 5 amazon-web-services amazon-elasticache aws-cloudformation
我正在编写一个 CF 模板来创建 Elasticache 复制组。其中,我有一个名为SnapshotsofCommaDelimitedList类型的参数,用于将存储在 s3 中的 RDB 快照文件作为 ARN 列表传递 -
Snapshots:
Description: >-
List of ARNs of Redis RDB snapshot files to populate the Elasticache
cluster (optional)
Type: CommaDelimitedList
Run Code Online (Sandbox Code Playgroud)
我正在尝试有一个如下所示的条件,它将检查是否Snapshots为空 -
Conditions:
HasSnapshots: !Not
- !Equals
- !Ref Snapshots
- ''
Run Code Online (Sandbox Code Playgroud)
当我尝试在 CloudFormation Designer 中验证我的模板时,它会抛出错误 -
29/07/2020, 22:50:33 - Template contains errors.: Template error: every Fn::Equals object requires a list of 2 string parameters.
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?我必须使用 String 类型而Snapshots 不是 CommaDelimitedList 吗?或者还有其他更好的方法吗?
我需要如下所示的Resource类型参数,以便使用参数中以 ARN 列表形式给出的快照文件填充 ElastiCache 集群(如果提供的话) -AWS::ElastiCache::ReplicationGroupSnapshots
RedisReplicationGroup:
Type: 'AWS::ElastiCache::ReplicationGroup'
Properties:
...
...
SnapshotArns: !If
- HasSnapshots
- !Ref Snapshots
- !Ref 'AWS::NoValue'
Run Code Online (Sandbox Code Playgroud)
您可以使用Join执行以下操作:
Conditions:
HasSnapshots: !Not
- !Equals
- !Join ["", !Ref Snapshots]
- ''
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3861 次 |
| 最近记录: |