[英]AWS::RDS::DBInstance is not being created from cloudformation
[英]How can I provide a variable for `AWS::RDS::DBInstance` in cloudformation?
我正在使用 cloudformation 将 RDS aurora 配置到 AWS,并在模板中使用AWS::RDS::DBCluster
和AWS::RDS::DBInstance
资源。 我有不同的环境,例如dev
、 uat
和prod
。 每个环境在集群下都有不同数量的数据库实例。 如何在 cloudformation 模板中将 db 实例的数量设置为变量?
下面是我的AWS::RDS::DBInstance
模板。 如您所见,模板中有三个实例。 它仅用于生产而非开发。 如何使用参数来指示实例数? 例如,在dev
部署 1 个实例,在prod
部署 3 个。
AuroraDBFirstInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: ${self:provider.postgresqlInstanceClass}
Engine: aurora-postgresql
EngineVersion: ${self:provider.postgresqlEngineVersion}
DBClusterIdentifier: !Ref AuroraDBCluster
PubliclyAccessible: ${self:provider.publiclyAccessible}
AuroraDBSecondInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: ${self:provider.postgresqlInstanceClass}
Engine: aurora-postgresql
EngineVersion: ${self:provider.postgresqlEngineVersion}
DBClusterIdentifier: !Ref AuroraDBCluster
PubliclyAccessible: ${self:provider.publiclyAccessible}
AuroraDBThirdInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceClass: ${self:provider.postgresqlInstanceClass}
Engine: aurora-postgresql
EngineVersion: ${self:provider.postgresqlEngineVersion}
DBClusterIdentifier: !Ref AuroraDBCluster
PubliclyAccessible: ${self:provider.publiclyAccessible}
您可以将其添加为参数并在运行堆栈时传递,您甚至可以进行这样的映射:
Environment:
Type: String
AllowedValues:
- dev
- uat
- prod
Mappings:
EnvironmentToDb
dev:
Cluster: 1
uat:
Cluster: 2
prod:
Cluster: 3
然后您可以使用以下方法引用它: DBClusterIdentifier: !FindInMap [EnvironmentToDb, !Ref 'Environment', Cluster]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.