为何AWS::EC2::SubnetRouteTableAssociation未出现在CloudFormation Designer资源类型面板?
问题:CloudFormation Designer资源面板找不到AWS::EC2::SubnetRouteTableAssociation
我可以通过CloudFormation创建AWS::EC2::SubnetRouteTableAssociation类型的资源,示例YAML代码如下:
Resources: mySubnetRouteTableAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref paramSubnetId RouteTableId: !Ref paramRouteTableId
但使用CloudFormation Designer的拖拽资源面板时,却找不到该资源。我排查了几种可能性但都没解决:
- 该资源在其他分类下(非EC2),但多次查找仍未发现;
- AWS遗漏添加该资源;
- 该资源使用了其他名称;
- 存在目前我无法理解的其他合理原因;
- 需要使用其他“重载”的资源类型来替代它。
请问为何该资源未出现在CloudFormation Designer的资源类型面板中?
解答
核心原因
CloudFormation Designer的可视化资源面板并未覆盖所有CloudFormation支持的资源类型,AWS::EC2::SubnetRouteTableAssociation就属于这类未被纳入面板的资源。这类资源本质是关联型资源,仅用于建立已有EC2资源(子网与路由表)之间的绑定关系,并非创建新的实体资源,因此AWS没有将其加入可视化拖拽面板。
可行解决方案
- 直接编写代码:无需依赖可视化面板,直接在模板的代码视图中添加该资源的YAML/JSON定义,就像你提供的示例代码那样,CloudFormation完全支持这种写法,不会影响资源部署。
- 通过资源关联操作自动生成:在Designer的画布中选中目标子网,右键点击并选择关联路由表的选项,Designer会自动在模板代码中生成
AWS::EC2::SubnetRouteTableAssociation的相关配置,无需手动查找该资源类型。
内容的提问来源于stack exchange,提问作者Peter Rhodes
相关产品推荐
相关产品推荐

