更新时间:2023-12-13 GMT+08:00

get_input

get_input通常用于获取模板文件中inputs区域中定义的输入参数的值。除此之外还可以引用系统伪参数,详情请参见系统伪参数

语法

get_input: [paramName ]

参数说明

表1 参数说明

参数

是否必填

描述

paramName

在模板文件的inputs区域中定义的输入参数的名称。

返回值

对应参数的值。

示例

通过get_input获取inputs区域参数的值。

tosca_definitions_version: huaweicloud_tosca_version_1_0
inputs:
  name:
    default: test-vpc
  cidr:
    default: 10.0.0.0/8  
node_templates:
  my-first-vpc:
    type: HuaweiCloud.VPC.VPC
    properties:
      name: {get_input: name}
      cidr: {get_input: cidr}

系统伪参数

get_input除了可以引用模板中定义的参数外,还可以引用系统伪参数。目前支持的系统伪参数主要有如下几个:
  • HuaweiCloud.UserId: 获取当前堆栈创建者的用户ID。
  • HuaweiCloud.ProjectId: 获取当前堆栈所在的项目ID。
  • HuaweiCloud.DomainId:获取当前堆栈所在的租户ID。
  • HuaweiCloud.Region:获取当前堆栈所在的区域ID。
  • HuaweiCloud.StackName:获取当前堆栈的名称。

系统伪参数可以与mappings、get_in_map功能结合使用,用于获取预定义的配置信息。

例如,一个ecs虚拟机可以部署在华北区、华南区或华东区。通过在映射表中预先定义好不同region对应的镜像、虚拟机规格信息,在堆栈创建时可以通过{get_input: HuaweiCloud.Region}获取当前堆栈所在的区域,从映射表中得到所需的镜像、flavor等配置信息。

mappings:
  regionMap:
    cn-east-3:   #华东区定义
      flavor: c2.medium    #使用华东区虚拟机规格
      image_id: f2003c7b-99c4-4616-be19-334beaca81b1   #使用华东区镜像id
    cn-north-1:  #华北区定义
      flavor: c1.medium    #使用华北区虚拟机规格
      image_id: 42f34d95-a538-4d17-be48-e690b48c1643   #使用华北区镜像id
    cn-south-1:  #华南区定义
      flavor: c1.medium    #使用华南区虚拟机规格
      image_id: a3934478-bfeb-4a02-b257-9089779f0380   #使用华南区镜像id
node_templates:
  myecs:
    type: HuaweiCloud.ECS.CloudServer
    properties:
      availabilityZone: cn-south-1a
      flavor:
        get_in_map:
          - regionMap
          - get_input: HuaweiCloud.Region
          - flavor
      imageId:
        get_in_map:
          - regionMap
          - get_input: HuaweiCloud.Region
          - image_id
      ...