我有一个模板可以为多个区域创建一个包含DynamoDB和DAX的CloudFormation,例如us-east-1和ap-southeast-1。 在为east-east-1工作时,此模板不适用于ap-southeast-1,因为该区域尚未提供DAX。
我希望这可以使用Conditions
来完成,这样对于一个区域(us-east-1)我会同时拥有DynamoDB和DAX以及另一个(ap-southeast-1) - 只有DynamoDB :
Conditions:
isDAXAvailable: !Not [!Equals [ !Ref "AWS::Region", ap-southeast-1 ]]
Resources:
DynamoDBTable:
Type: AWS::DynamoDB::Table
Properties:
.....
DaxCluster:
Type: AWS::DAX::Cluster
Condition: isDAXAvailable
Properties:
.....
但不幸的是我收到错误:
调用ValidateTemplate时发生错误(ValidationError) 操作:模板格式错误:无法识别的资源类型: [AWS :: DAX ::集群]
是否有可能无论如何配置这样的模板或者应该创建一个单独的模板?
答案 0 :(得分:1)
模板验证是针对区域中可用的资源完成的。由于DAX目前在ap-southeast-1中不可用,因此 AWS :: DAX :: Cluster 资源将无法通过验证。关于如何完成这项工作,我有几点建议:
Fn:Equals: [“DaxClusterName”, “none”]
创建条件。然后使用条件来确定此模板中的资源是否可以依赖于集群。