更新时间:2024-04-17 GMT+08:00

get_input

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

语法

get_input: [paramName ]

参数说明

表1 参数说明

参数

是否必填

描述

paramName

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

返回值

对应参数的值。

示例

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

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

系统伪参数

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

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

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

mappings:
  regionMap:
    ae-ad-1:   
      flavor: c2.medium    
      image_id: f2003c7b-99c4-4616-be19-334beaca81b1   
node_templates:
  myecs:
    type: Cloud.ECS.CloudServer
    properties:
      availabilityZone: ae-ad-1a
      flavor:
        get_in_map:
          - regionMap
          - get_input: Cloud.Region
          - flavor
      imageId:
        get_in_map:
          - regionMap
          - get_input: Cloud.Region
          - image_id
      ...