Prévisualise les informations relatives à une pile que vous souhaitez créer à partir d'un modèle spécifié. Utilisez cette opération pour vérifier les ressources définies dans le modèle.
Cette rubrique présente un exemple de création d'une pile nommée MyStack dans la région Chine (Hangzhou), ainsi que la prévisualisation des informations associées. Dans cet exemple, le corps du modèle de la pile est {"ROSTemplateFormatVersion":"2015-09-01"}.
Débogage
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
| Action | String | Oui | PreviewStack | L'opération à effectuer. Définissez la valeur sur PreviewStack. |
| DisableRollback | Boolean | Non | false | Indique si le rollback des ressources doit être désactivé en cas d'échec de la création de la pile. Valeur par défaut : false. Valeurs possibles :
|
| TimeoutInMinutes | Long | Non | 60 | Délai imparti pour la création de la pile. Unité : minutes. Valeur par défaut : 60. |
| TemplateBody | String | Non | {"ROSTemplateFormatVersion":"2015-09-01"} | Structure du corps du modèle. La taille du corps du modèle doit être comprise entre 1 et 524 288 octets. Si cette limite est dépassée, nous vous recommandons d'ajouter les paramètres au corps de la requête HTTP POST afin d'éviter les échecs dus à des URL trop longues. Remarque Vous devez spécifier un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| StackPolicyURL | String | Non | oss://ros-stack-policy/demo | URL du fichier contenant la politique de pile. L'URL doit pointer vers une politique hébergée sur un serveur web HTTP ou HTTPS, ou dans un compartiment Object Storage Service (OSS), par exemple oss://ros/stack-policy/demo ou oss://ros/stack-policy/demo?RegionId=cn-hangzhou. Le fichier de politique ne doit pas dépasser 16 384 octets. Si l'ID de région du compartiment OSS n'est pas spécifié, la valeur du paramètre RegionId est utilisée. Remarque Vous ne pouvez spécifier qu'un seul des paramètres StackPolicyBody et StackPolicyURL. La longueur maximale de l'URL est de 1 350 octets. |
| RegionId | String | Oui | cn-hangzhou | ID de région de la pile. Appelez l'opération DescribeRegions pour obtenir la liste des régions les plus récentes. |
| StackPolicyBody | String | Non | {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} | Structure contenant le corps de la politique de pile. La taille du corps de la politique doit être comprise entre 1 et 16 384 octets. Remarque Vous ne pouvez spécifier qu'un seul des paramètres StackPolicyBody et StackPolicyURL. |
| StackName | String | Non | MyStack | Nom de la pile. Utilisez ce paramètre pour prévisualiser la pile que vous souhaitez créer. Le nom peut contenir jusqu'à 255 caractères, y compris des chiffres, des lettres, des traits d'union (-) et des underscores (_). Il doit commencer par un chiffre ou une lettre. Remarque Vous devez spécifier un seul des paramètres StackName et StackId. |
| ClientToken | String | Non | 123e4567-e89b-12d3-a456-42665544**** | Jeton client utilisé pour garantir l'idempotence de la requête. Vous pouvez générer ce jeton côté client, mais assurez-vous qu'il reste unique pour chaque requête. Le jeton peut contenir jusqu'à 64 caractères, y compris des lettres, des chiffres, des traits d'union (-) et des underscores (_). Pour plus d'informations, consultez la section Garantir l'idempotence. |
| TemplateURL | String | Non | oss://ros-template/demo | URL du fichier contenant le corps du modèle. L'URL doit pointer vers un modèle hébergé sur un serveur web HTTP ou HTTPS, ou dans un compartiment OSS, par exemple oss://ros/stack-policy/demo ou oss://ros/stack-policy/demo?RegionId=cn-hangzhou. La taille du corps du modèle ne doit pas dépasser 524 288 octets. Si l'ID de région du compartiment OSS n'est pas spécifié, la valeur du paramètre RegionId est utilisée. Remarque Vous devez spécifier un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| TemplateId | String | Non | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | ID du modèle. Ce paramètre s'applique aux modèles partagés et privés. Remarque Vous devez spécifier un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| TemplateVersion | String | Non | v1 | Version du modèle. Ce paramètre n'est pris en compte que si le paramètre TemplateId est spécifié. |
| Parameters.N.ParameterKey | String | Oui | ALIYUN::AccountId | Nom du paramètre N. Si vous ne spécifiez ni le nom ni la valeur d'un paramètre, Resource Orchestration Service (ROS) utilise les valeurs par défaut définies dans le modèle. Valeur maximale de N : 200. Remarque Si vous spécifiez Parameters, vous devez également spécifier Parameters.N.ParameterKey. |
| Parameters.N.ParameterValue | String | Oui | 151266687691**** | Valeur du paramètre N. Valeur maximale de N : 200. Remarque Si vous spécifiez Parameters, vous devez également spécifier Parameters.N.ParameterValue. |
| Parallelism | Long | Non | 1 | Nombre maximal d'opérations simultanées pouvant être effectuées sur les ressources. Ce paramètre ne s'applique qu'aux piles Terraform. Par défaut, ce paramètre est vide. Vous pouvez le définir sur un entier supérieur ou égal à 0. Remarque Si vous définissez ce paramètre sur un entier supérieur à 0, cette valeur est utilisée. Si vous le définissez sur 0 ou le laissez vide, la valeur par défaut de Terraform est appliquée. Dans la plupart des cas, la valeur par défaut de Terraform est 10. |
| TemplateScratchId | String | Non | ts-aa9c62feab844a6b**** | ID du scénario. Pour savoir comment récupérer les ID des scénarios, consultez l'opération ListTemplateScratches. Remarque Vous devez spécifier un seul des paramètres suivants : TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| TemplateScratchRegionId | String | Non | cn-hangzhou | ID de région du scénario. La valeur par défaut correspond à celle du paramètre RegionId. Appelez l'opération DescribeRegions pour obtenir la liste des régions les plus récentes. |
| StackId | String | Non | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID de la pile. Utilisez ce paramètre pour prévisualiser une pile que vous souhaitez mettre à jour. Remarque
|
| EnablePreConfig | Boolean | Non | false | Indique si les paramètres à utiliser lors de la vérification préalable de conformité doivent être interrogés. Valeur par défaut : false. Valeurs possibles :
|
Pour plus d'informations sur les paramètres de requête communs, consultez la section Paramètres communs.
Paramètres de réponse
| Paramètre | Type | Exemple | Description |
| RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F | ID de la requête. |
| Stack | Object | Informations relatives à la pile prévisualisée. | |
| TemplateDescription | String | One ECS instance. | Description du modèle. |
| Parameters | Array of Parameter | Paramètres de la pile. | |
| ParameterKey | String | ALIYUN::AccountId | Nom du paramètre. |
| ParameterValue | String | 151266687691**** | Valeur du paramètre. |
| Description | String | One ECS instance. | Description de la pile. |
| DisableRollback | Boolean | false | Indique si le rollback des ressources est désactivé en cas d'échec de la création de la pile. |
| StackName | String | MyStack | Nom de la pile. |
| TimeoutInMinutes | Integer | 60 | Délai imparti pour la création de la pile. Unité : minutes. |
| StackPolicyBody | Map | Structure contenant le corps de la politique de pile. | |
| Resources | Array of Resource | Ressources présentes dans la pile. | |
| LogicalResourceId | String | WebServer | ID logique de la ressource. |
| AcsResourceType | String | ACS::ECS::Instance | Type de ressource associé à un service Alibaba Cloud. |
| ResourceType | String | ALIYUN::ECS::Instance | Type de la ressource. |
| Description | String | ECS instance. | Description de la ressource. |
| Stack | Map | Informations relatives à la pile imbriquée. La structure des données de la valeur est identique à celle de l'ensemble de la réponse. | |
| RequiredBy | Array of String | ["Resource1", "Resource2"] | Ressources dont dépend la pile. |
| Properties | Map | Propriétés de la ressource. | |
| Action | String | Add | Action effectuée sur les ressources. Valeurs possibles :
|
| Replacement | String | False | Indique si une mise à jour par remplacement est effectuée sur le modèle. Valeurs possibles :
Remarque Ce paramètre n'est renvoyé que si le paramètre Action est défini sur Modify. |
| PhysicalResourceId | String | i-a1b2c3*** | ID physique de la ressource. Ce paramètre n'est renvoyé que si le paramètre Action est défini sur Modify ou Remove. |
| RegionId | String | cn-hangzhou | ID de région de la pile. |
| Log | Object | Journal généré lors de l'exécution de la pile. | |
| TerraformLogs | Array of TerraformLog | Journal généré lors de l'exécution d'une pile Terraform. Ce paramètre n'est renvoyé que pour les piles Terraform. Remarque Utilisez ce paramètre pour prévisualiser les journaux d'une pile Terraform. | |
| Command | String | apply | Nom de la commande Terraform. Valeurs possibles :
Pour plus d'informations sur les commandes Terraform, consultez la section Basic CLI Features. |
| Stream | String | stdout | Flux de sortie. Valeurs possibles :
|
| Content | String | Apply complete! Resources: 42 added, 0 changed, 0 destroyed. | Contenu du flux de sortie renvoyé après l'exécution de la commande. |
Exemples
Exemple de requête
http(s)://ros.aliyuncs.com/?Action=PreviewStack
&TemplateBody={"ROSTemplateFormatVersion":"2015-09-01"}
&StackName=MyStack
&RegionId=cn-hangzhou
&<Common request parameters>
Exemple de réponse réussie
Format XML
HTTP/1.1 200 OK
Content-Type:application/xml
<PreviewStackResponse>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
<Stack>
<TemplateDescription>One ECS instance.</TemplateDescription>
<Parameters>
<ParameterKey>ALIYUN::AccountId</ParameterKey>
<ParameterValue>151266687691****</ParameterValue>
</Parameters>
<Description>One ECS instance.</Description>
<DisableRollback>false</DisableRollback>
<StackName>MyStack</StackName>
<TimeoutInMinutes>60</TimeoutInMinutes>
<Resources>
<LogicalResourceId>WebServer</LogicalResourceId>
<AcsResourceType>ACS::ECS::Instance</AcsResourceType>
<ResourceType>ALIYUN::ECS::Instance</ResourceType>
<Description>ECS instance.</Description>
<RequiredBy>["Resource1", "Resource2"]</RequiredBy>
<Action>Add</Action>
<Replacement>False</Replacement>
</Resources>
<RegionId>cn-hangzhou</RegionId>
<Log>
<TerraformLogs>
<Command>apply</Command>
<Stream>stdout</Stream>
<Content>Apply complete! Resources: 42 added, 0 changed, 0 destroyed.</Content>
</TerraformLogs>
</Log>
</Stack>
</PreviewStackResponse>
Format JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
"Stack" : {
"TemplateDescription" : "One ECS instance.",
"Parameters" : {
"ParameterKey" : "ALIYUN::AccountId",
"ParameterValue" : "151266687691****"
},
"Description" : "One ECS instance.",
"DisableRollback" : false,
"StackName" : "MyStack",
"TimeoutInMinutes" : 60,
"Resources" : {
"LogicalResourceId" : "WebServer",
"AcsResourceType" : "ACS::ECS::Instance",
"ResourceType" : "ALIYUN::ECS::Instance",
"Description" : "ECS instance.",
"RequiredBy" : "[\"Resource1\", \"Resource2\"]",
"Action" : "Add",
"Replacement" : "False"
},
"RegionId" : "cn-hangzhou",
"Log" : {
"TerraformLogs" : {
"Command" : "apply",
"Stream" : "stdout",
"Content" : "Apply complete! Resources: 42 added, 0 changed, 0 destroyed."
}
}
}
}
Codes d'erreur
Pour obtenir la liste des codes d'erreur, consultez la section Codes d'erreur de service.
Pour plus d'informations sur les erreurs communes à toutes les opérations, consultez la section Codes d'erreur communs.
| Code d'état HTTP | Code d'erreur | Message d'erreur | Description |
|
400 |
CircularDependency |
Circular Dependency Found: {reason}. |
Le message d'erreur indique que le modèle contient une dépendance circulaire. {reason} précise la cause de l'erreur. |
|
400 |
InvalidSchema |
{reason}. |
Le message d'erreur indique que le format du modèle n'est pas valide. {reason} précise la cause de l'erreur. |
|
400 |
InvalidTemplateAttribute |
The Referenced Attribute ({resource} {name}) is incorrect. |
Le message d'erreur indique que la propriété de ressource référencée dans la section Outputs du modèle n'est pas valide. {resource} correspond au nom de la ressource et {name} au nom de la propriété. |
|
400 |
InvalidTemplatePropertyType |
The specified value type of ({resource} {section}) is incorrect. |
Le message d'erreur indique que le type de la propriété de ressource définie dans une section du modèle n'est pas valide. {resource} correspond au nom de la ressource et {section} au nom de la section. |
|
400 |
InvalidTemplateReference |
The specified reference "{name}" (in {referencer}) is incorrect. |
Le message d'erreur indique que le modèle contient une référence non valide. {name} correspond au nom de la référence et {referencer} au nom de l'élément référençant. |
|
400 |
InvalidTemplateSection |
The template section is invalid: {section}. |
Le message d'erreur indique que le modèle contient une section non valide. {section} correspond au nom de la section. |
|
400 |
InvalidTemplateVersion |
The template version is invalid: {reason}. |
Le message d'erreur indique que la version du modèle n'est pas valide. {reason} précise la cause de l'erreur. |
|
400 |
StackValidationFailed |
{reason}. |
Le message d'erreur indique que la validation de la pile a échoué. {reason} précise la cause de l'erreur. |
|
400 |
UnknownUserParameter |
The Parameter ({name}) was not defined in template. |
Le message d'erreur indique que le paramètre spécifié n'est pas défini dans le modèle. {name} correspond au nom du paramètre. |
|
400 |
UserParameterMissing |
The Parameter {name} was not provided. |
Le message d'erreur indique qu'aucune valeur n'a été spécifiée pour le paramètre défini dans le modèle. {name} correspond au nom du paramètre. |
|
409 |
StackExists |
The Stack ({name}) already exists. |
Le message d'erreur indique qu'une pile portant le même nom existe déjà. {name} correspond au nom de la pile. |
|
404 |
TemplateNotFound |
The Template ({ ID }) could not be found. |
Le message d'erreur indique que le modèle n'existe pas. {ID} correspond à l'ID du modèle. |
|
404 |
TemplateNotFound |
The Template { ID } with version { version } could not be found. |
Le message d'erreur indique que le modèle ou sa version n'existe pas. {ID} correspond à l'ID du modèle et {version} à la version du modèle. |