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