Tous les produits
Search
Centre de documentation

Resource Orchestration Service:Outputs

Dernière mise à jour :Aug 10, 2026

Dans la section Outputs, définissez les valeurs que Resource Orchestration Service (ROS) renvoie lors de l'appel à l'opération GetStack. Par exemple, si vous définissez un ID d'instance Elastic Compute Service (ECS) en tant que sortie, cet ID est renvoyé lorsque l'opération GetStack est appelée.

Syntaxe

La déclaration d'une sortie comprend un nom et une description. Chaque sortie peut comporter plusieurs valeurs renvoyées sous forme de tableau. L'exemple de code suivant illustre la syntaxe de la section Outputs :

Outputs:
  Name of Output 1:
    Description: the description of the output.
    Condition: the condition that determines whether to return a specific resource property.
    Value: the expression of the output value.
    Label: the alias of the output.
  Name of Output 2:
    Description: the description of the output.
    Condition: the condition that determines whether to return a specific resource property.
    Value:
      - Expression 1 of the output value.
      - Expression 2 of the output value.
      - ...
    Label: the alias of the output.
  • Name : nom de la sortie. Un nom de sortie identifie une sortie et doit être unique dans un modèle.

  • Description : description de la sortie. Ce champ est facultatif.

  • Value : valeur renvoyée pour une propriété de ressource lors de l'appel à l'opération GetStack. Ce champ est obligatoire.

  • Condition : condition spécifiant s'il faut créer une ressource et renvoyer ses informations. La ressource n'est créée et ses informations ne sont renvoyées que si la condition spécifiée est vraie. Ce champ est facultatif.

  • Label : alias de la sortie. Ce champ est facultatif.

  • NoEcho : indique s'il faut masquer la valeur du paramètre renvoyée. Si vous définissez NoEcho sur true, ROS renvoie la valeur du paramètre masquée par des astérisques (*). Ce champ est facultatif.

  • Console.Url : URL de la console affichée dans l'onglet Stack Information de la page des détails de la pile. Ce champ est facultatif.

Remarque

Dans la valeur d'une sortie, vous pouvez définir des fonctions et des littéraux tels que des nombres, des chaînes, des dictionnaires et des listes. Vous pouvez également utiliser Ref pour référencer des valeurs et Fn::GetAtt pour interroger les valeurs des propriétés de ressource.

Exemples

Dans l'exemple suivant, deux sorties sont utilisées. L'ID de la première sortie correspond à la propriété InstanceId de WebServer. L'ID de la seconde sortie correspond aux propriétés PublicIp et PrivateIp de WebServer.

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

Dans l'exemple ci-dessous, WebServer est créé uniquement lorsque la condition spécifiée par MaxAmount est vraie.

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

L'exemple suivant montre le renvoi de valeurs de sortie de plusieurs types, telles que les types liste, dictionnaire, fonction et constante. Console.Url, qui spécifie l'URL de la console du service, est utilisé comme sortie.

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.X.X
    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

Dans cet exemple, une valeur de sortie est définie pour renvoyer plusieurs URL de serveur web séparées par des virgules (,).

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  WebServerAddress:
    Type: String
    Default: 192.168.1.1
    Label:
       
      en: WebServerAddress
Outputs:
  WebServerAddress:
    Description:
       
      en: Web Server url.
    Value:
      Fn::Sub:
        - http://${WebServerAddress}:80,http://${WebServerAddress}:8080,http://${WebServerAddress}:8881
        - WebServerAddress:
            Ref: WebServerAddress