gpt4 book ai didi

amazon-web-services - 使用 CommaDelimitedList 参数时 Fn::Equals 抛出错误

转载 作者:行者123 更新时间:2023-12-05 01:35:15 24 4
gpt4 key购买 nike

我正在编写 CF 模板来创建 Elasticache 复制组。其中,我有一个名为 CommaDelimitedList 类型的 Snapshots 参数,用于将存储在 s3 中的 RDB 快照文件作为 ARN 列表传递 -

Snapshots:
Description: >-
List of ARNs of Redis RDB snapshot files to populate the Elasticache
cluster (optional)
Type: CommaDelimitedList

我正在尝试设置如下所示的条件,它将检查快照是否为空 -

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.

执行此操作的正确方法是什么?我是否必须对快照使用 String 类型而不是 CommaDelimitedList?或者还有其他更好的方法吗?

我需要为 AWS::ElastiCache::ReplicationGroup 类型的 Resource 提供此参数,如下所示,以便使用以列表形式给出的快照文件填充 ElastiCache 集群Snapshots 参数中的 ARN(如果提供)-

RedisReplicationGroup:
Type: 'AWS::ElastiCache::ReplicationGroup'
Properties:
...
...
SnapshotArns: !If
- HasSnapshots
- !Ref Snapshots
- !Ref 'AWS::NoValue'

最佳答案

您可以使用 Join 执行以下操作:

Conditions:

HasSnapshots: !Not
- !Equals
- !Join ["", !Ref Snapshots]
- ''

关于amazon-web-services - 使用 CommaDelimitedList 参数时 Fn::Equals 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63159719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com