全部产品
云市场

模板输出(Output)

更新时间:2019-09-19 12:06:06

除了模版中的每个任务可以有输出,模板也是可以有输出的,其可用来呈现模版执行成功后得到的重要数据。另外若该模版作为子模版被嵌套时,父模版中嵌套该子模版的任务可以通过定义其任务输出参数来对子模版的输出进行引用,具体是通过ValueSelector筛选子模版的输出参数名,以此获得子模版的输出值,而此值则会作为任务输出参数的值,这样父模版的其他任务就可以通过引用嵌套任务的输出参数来达到对子模版输出的引用。
例如,A模版的任务有创建ECS实例的运维操作,且A模版的输出是被成功创建的ECS实例ID,那么查看A模版执行结果时则很方便就能看到模版输出的ECS实例ID,假设A模版被B模版作为子模版嵌套使用了,且B模版任务一是对A模版的嵌套任务,B模版任务二是对被嵌套A模版输出的所有ECS实例ID进行重启,那么此时A模版的输出首先会被B模版的任务一的输出参数筛选得到,然后任务二再引用任务一的输出的参数从而获得ECS实例ID。

语法

模版输出的值可以是模版内所有可被引用的参数的值。任务的输出参数、伪参数以及模版Parameters部分定义的参数,它们的值均可被模版输出参数引用并作为模版的输出值。

  • YAML语法
  1. Outputs:
  2. OutputParameterName1: # 必填,参数名,有效字符为[a-zA-Z0-9_-],即英文半角字母数字下划线中划线,长度限制200个字符。
  3. Type: String # 可选,YAML, JSON格式支持的基本类型String, Number, Boolean, List(Array),Object,默认String。
  4. Value: "{{ taskName.OutputParameter1 }}" # 必填,参数值,通常为某个任务的输出。
  • JSON格式(请参考YAML注释说明)
  1. {
  2. "Outputs": {
  3. "OutputParameterName1": {
  4. "Type": "String",
  5. "Value": "{{ taskName.OutputParameter1 }}"
  6. }
  7. }
  8. }