全部產品
Search
文件中心

Resource Orchestration Service:輸出(Outputs)

更新時間:Aug 20, 2024

在輸出(Outputs)中,定義在調用查詢資源棧介面時返回的值。例如,定義ECS執行個體ID的輸出,然後可在調用查詢資源棧的介面時,查看該執行個體ID。

文法

Outputs由輸出Name和輸出描述組成。每一個輸出項支援以數組形式輸出多個值。請參見以下Outputs的文法結構範例程式碼:

Outputs:
  輸出1 Name:
    Description: 輸出的描述
    Condition: 是否輸出此資源屬性的條件
    Value: 輸出值的運算式
    Label: 輸出的別名
  輸出2 Name:
    Description: 輸出的描述
    Condition: 是否輸出此資源屬性的條件
    Value:
      - 輸出值的運算式1
      - 輸出值的運算式2
      - ...
    Label: 輸出的別名
  • 輸出Name:輸出項的標識符,在模板中具有唯一性。

  • Description(可選):對輸出值的描述。

  • Value(必需):在調用查詢資源棧介面時,返回的屬性值。

  • Condition(可選):使用Condition屬性可以指定是否需要建立某個資源和輸出資源的資訊。當Condition所指定的條件值為true時,才建立此資源和輸出資源資訊。

  • Label(可選):輸出的別名。

  • NoEcho(可選):是否輸出參數值。如果將值設定為true,則只輸出星號(*)。

  • Console.Url(可選):在資源棧資訊頁面輸出使用資訊。

樣本

在以下樣本中,輸出部分有2個輸出項。第一個輸出資源ID為WebServer的InstanceId屬性,第二個輸出資源ID為WebServer的PublicIp和PrivateIp屬性。

Outputs:
  InstanceId:
    Value:
      Fn::GetAtt:
        - WebServer
        - InstanceId
  PublicIp & PrivateIp:
    Value:
      - Fn::GetAtt:
          - WebServer
          - PublicIp
      - Fn::GetAtt:
          - WebServer
          - PrivateIp

在以下樣本中,根據MaxAmount的值判斷是否建立WebServer。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  MaxAmount:
    Type: Number
    Default: 1
Conditions:
  CreateWebServer:
    Fn::Not:
      Fn::Equals:
        - 0
        - Ref: MaxAmount
Resources:
  WebServer:
    Type: ALIYUN::ECS::InstanceGroup
    Condition: CreateWebServer
    Properties:
      ImageId: m-25l0r****
      InstanceType: ecs.t1.small
      MaxAmount:
        Ref: MaxAmount
Outputs:
  WebServerIP:
    Condition: CreateWebServer
    Value:
      Fn::GetAtt:
        - WebServer
        - PublicIps

在以下樣本中,輸出了Output Value所支援的多種資料類型(如列表、字典、函數、常量等),並加入了服務網域名稱訪問地址的Output樣本。

ROSTemplateFormatVersion: '2015-09-01'
Metadata: {}
Parameters:
  DictObjectParameter:
    Default:
      k2: v2
      k1: v1
    Type: Json
  NumberParameter:
    Default: 3.14
    Type: Number
  StringParameter:
    Default: ecs.c1.large
    Type: String
  ArrayListParameter:
    Default:
      - xiaomi
      - xiaofeng
      - xiaoliang
    Type: Json
  EcsInstancePublicIp:
    Default: 1.1.1.1
    Type: String
Resources: {}
Outputs:
  Console.Url:
    Description: Console Url Demo Value
    Value:
      Fn::Sub:
        - http://${EcsPublicIp}/elasticsearch-demo
        - EcsPublicIp:
            Ref: EcsInstancePublicIp
  ArrayList:
    Description: ArrayList Output Value
    Value:
      Ref: ArrayListParameter
  DictObject:
    Description: DictObject Output Value
    Value:
      Ref: DictObjectParameter
  Number:
    Description: Number Output Value
    Value:
      Ref: NumberParameter
  String:
    Description: String Output Value
    Value:
      Ref: StringParameter