如何在CloudFormation中获取已有VPC子网ID创建Redshift子网组
Redshift集群子网组引用已有子网的配置方法
原模板中!Ref SubnetA的作用是引用当前CloudFormation模板内定义的名为SubnetA的子网资源,如果你不在当前模板内新建这两个子网,直接用原写法会部署失败,可按以下两种方式修改:
- 方式一:直接硬编码已有子网ID
直接把SubnetIds下的引用替换为你预先创建的subnetA、subnetB的实际ID(格式通常为subnet-xxxxxxxx,可在AWS VPC控制台的子网详情页查看),示例配置如下:
RedshiftClusterSubnetGroup: Type: AWS::Redshift::ClusterSubnetGroup Properties: Description: 集群子网组 SubnetIds: - subnet-abc123456789 # 替换为subnetA的实际ID - subnet-def987654321 # 替换为subnetB的实际ID
- 方式二:通过参数动态传入(推荐,避免硬编码)
先在CloudFormation模板的Parameters段定义两个子网参数,再在子网组配置中引用参数,部署时可直接在AWS控制台选择已有子网,无需手动填写ID,配置示例如下:
- 添加参数定义:
Parameters: SubnetAId: Type: AWS::EC2::Subnet::Id Description: 已预先创建的subnetA的ID SubnetBId: Type: AWS::EC2::Subnet::Id Description: 已预先创建的subnetB的ID
- 修改子网组配置:
RedshiftClusterSubnetGroup: Type: AWS::Redshift::ClusterSubnetGroup Properties: Description: 集群子网组 SubnetIds: - !Ref SubnetAId - !Ref SubnetBId
内容的提问来源于stack exchange,提问作者Dcook
相关产品推荐
相关产品推荐

