文档

如何在创建资源栈组时根据不同的地域选择不同的参数?

更新时间:

本文为您介绍如何在同一模板中根据不同地域选择不同的参数。

当您在创建资源栈组时,使用同一模板但是需要对不同地域的参数进行调整,比如在不同的地域下需要安装不同的镜像 。您可以使用模板映射(Mappings),在模板的Resources和Output中使用Fn::FindInMap内部函数,通过指定Key获取映射表的Value。此时您可以把地域和镜像在Mappings中设置为Key-Value的映射表,然后在资源属性中使用Fn::FindInMap结合伪参数ALIYUN::Region获取当前地域在映射表中的值。

ROSTemplateFormatVersion: '2015-09-01'
Mappings:
  RegionMap:
    cn-shenzhen:
      ImageId: m-2vca5gczbrozn1vwp****
    cn-beijing:
      ImageId: m-hp38urk0l2aioidn****
    us-west-1:
      ImageId: m-rj9b5x7xtspmbage****
    cn-shanghai:
      ImageId: m-2ze1bpkyqvylc2ag****
    cn-hangzhou:
      ImageId: m-bp1h1cr4n27d3owq****
Outputs:
  ImageId:
    Value:
      Fn::FindInMap:
          - RegionMap
          - Ref: ALIYUN::Region
          - ImageId

控制台示例

当您创建资源栈组时,选择将资源栈部署在杭州,则会自动选择RegionMap映射表中cn-hangzhou的ImageId值。

image