Crée un ensemble de modifications.
Description
Créez et exécutez des ensembles de modifications pour mettre à jour les piles en cours d'exécution. Pour plus d'informations sur les ensembles de modifications, consultez la rubrique Présentation.
Limites
Une pile peut contenir jusqu'à 20 ensembles de modifications.
Les ensembles de modifications reflètent uniquement les changements apportés aux piles. Ils n'indiquent pas si les mises à jour des piles ont abouti.
Les ensembles de modifications ne permettent pas de vérifier les éléments suivants : le dépassement du quota de votre compte, la tentative de mise à jour de ressources non modifiables ou l'absence des autorisations requises pour modifier des ressources. Ces situations peuvent entraîner l'échec des mises à jour de pile. En cas d'échec, Resource Orchestration Service (ROS) tente de restaurer les ressources dans leur état initial.
Cette rubrique présente un exemple de création d'un ensemble de modifications. Dans cet exemple, un ensemble de modifications nommé MyChangeSet est créé dans la région China (Hangzhou). L'ensemble de modifications sert à modifier le corps du modèle d'une pile avec la valeur {"ROSTemplateFormatVersion":"2015-09-01"}. L'ID de la pile est 4a6c9851-3b0f-4f5f-b4ca-a14bf691****.
Débogage
Paramètres de requête
| Parameter | Type | Required | Example | Description |
| Action | String | Yes | CreateChangeSet | Opération à effectuer. Définissez la valeur sur CreateChangeSet. |
| StackId | String | No | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID de la pile pour laquelle vous souhaitez créer l'ensemble de modifications. ROS compare les informations de la pile avec les informations que vous spécifiez, telles qu'un modèle modifié ou une valeur de paramètre modifiée, afin de générer l'ensemble de modifications. Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur UPDATE ou IMPORT. |
| StackPolicyURL | String | No | oss://ros/stack-policy/demo | URL du fichier contenant la stratégie de pile. L'URL doit pointer vers une stratégie situé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 stratégie peut atteindre 16 384 octets. Remarque Si vous ne spécifiez pas l'ID de région du compartiment OSS, la valeur du paramètre RegionId est utilisée. Spécifiez le paramètre StackPolicyBody ou StackPolicyURL. L'URL peut atteindre 1 350 octets. Si vous définissez le paramètre ChangeSetType sur CREATE, vous pouvez spécifier le paramètre StackPolicyBody ou StackPolicyURL. Si vous définissez le paramètre ChangeSetType sur UPDATE, vous ne pouvez spécifier qu'un seul des paramètres suivants :
|
| StackPolicyBody | String | No | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} | Structure contenant le corps de la stratégie de pile. Le corps de la stratégie doit compter entre 1 et 16 384 octets. Si vous définissez le paramètre ChangeSetType sur CREATE, vous pouvez spécifier le paramètre StackPolicyBody ou StackPolicyURL. Si vous définissez le paramètre ChangeSetType sur UPDATE, vous ne pouvez spécifier qu'un seul des paramètres suivants :
|
| StackName | String | No | MyStack | Nom de la pile pour laquelle vous souhaitez créer l'ensemble de modifications. Le nom peut comporter jusqu'à 255 caractères et contenir des chiffres, des lettres, des traits d'union (-) et des underscores (_). Il doit commencer par un chiffre ou une lettre. Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur CREATE ou IMPORT. |
| UsePreviousParameters | Boolean | No | true | Indique s'il faut utiliser les valeurs spécifiées dans la requête précédente pour les paramètres non spécifiés dans la requête actuelle. Valeur par défaut : false. Valeurs possibles :
Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur UPDATE ou IMPORT. |
| ChangeSetType | String | No | UPDATE | Type d'ensemble de modifications. Valeur par défaut : UPDATE. Valeurs possibles :
Si vous créez un ensemble de modifications pour une nouvelle pile, ROS génère un ID de pile unique. La pile reste dans l'état REVIEW_IN_PROGRESS jusqu'à ce que vous exécutiez l'ensemble de modifications. Vous ne pouvez pas utiliser le type UPDATE pour créer un ensemble de modifications pour une nouvelle pile, ni le type CREATE pour une pile existante. |
| Description | String | No | It is a demo. | Description de l'ensemble de modifications. Elle peut atteindre 1 024 octets. |
| RegionId | String | Yes | cn-hangzhou | ID de région de l'ensemble de modifications. Appelez l'opération DescribeRegions pour consulter la liste des régions les plus récentes. |
| ClientToken | String | No | 123e4567-e89b-12d3-a456-42665544**** | Jeton client utilisé pour garantir l'idempotence de la requête. Vous pouvez générer cette valeur à l'aide du client, mais vous devez vous assurer qu'elle est unique pour chaque requête. Le jeton peut comporter jusqu'à 64 caractères et contenir des lettres, des chiffres, des traits d'union (-) et des underscores (_). Pour plus d'informations, consultez la rubrique Garantir l'idempotence. |
| TemplateURL | String | No | oss://ros/template/demo | URL du fichier contenant le corps du modèle. L'URL doit pointer vers un modèle situé sur un serveur web HTTP ou HTTPS ou dans un compartiment OSS, par exemple oss://ros/template/demo ou oss://ros/template/demo?RegionId=cn-hangzhou. Le corps du modèle peut atteindre 524 288 octets. Remarque Si vous ne spécifiez pas l'ID de région du compartiment OSS, la valeur du paramètre RegionId est utilisée. Vous ne pouvez spécifier qu'un seul des paramètres suivants : TemplateBody, TemplateURL et TemplateId. L'URL peut atteindre 1 024 octets. |
| StackPolicyDuringUpdateURL | String | No | oss://ros/stack-policy/demo | URL du fichier contenant la stratégie de pile de substitution temporaire. L'URL doit pointer vers une stratégie située 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. Le fichier de stratégie peut atteindre 16 384 octets. Remarque Si vous ne spécifiez pas l'ID de région du compartiment OSS, la valeur du paramètre RegionId est utilisée. L'URL peut atteindre 1 350 octets. Si vous souhaitez mettre à jour des ressources protégées, spécifiez une stratégie de pile de substitution temporaire pendant la mise à jour. À défaut, la stratégie existante associée à la pile est utilisée. Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur UPDATE. Vous ne pouvez spécifier qu'un seul des paramètres suivants :
|
| TemplateBody | String | No | {"ROSTemplateFormatVersion":"2015-09-01"} | Structure contenant le corps du modèle. Le corps du modèle doit compter entre 1 et 524 288 octets. Si la taille du corps du modèle dépasse la limite supérieure, nous vous recommandons d'ajouter des paramètres au corps de la requête HTTP POST pour éviter les échecs liés à des URL trop longues. Vous ne pouvez spécifier qu'un seul des paramètres suivants : TemplateBody, TemplateURL et TemplateId. |
| TimeoutInMinutes | Long | No | 12 | Délai maximal avant que la pile n'entre dans l'état CREATE_FAILED ou UPDATE_FAILED. Si vous définissez le paramètre ChangeSetType sur CREATE, ce paramètre est obligatoire. Si vous le définissez sur UPDATE, il est facultatif.
|
| DisableRollback | Boolean | No | false | Indique s'il faut désactiver le rollback en cas d'échec de la création de la pile. Valeur par défaut : false. Valeurs possibles :
Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur CREATE ou IMPORT. |
| ChangeSetName | String | Yes | MyChangeSet | Nom de l'ensemble de modifications. Le nom peut comporter jusqu'à 255 caractères et contenir des chiffres, des lettres, des traits d'union (-) et des underscores (_). Il doit commencer par un chiffre ou une lettre. Remarque Assurez-vous que le nom est unique parmi tous les ensembles de modifications associés à la pile spécifiée. |
| StackPolicyDuringUpdateBody | String | No | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} | Structure contenant le corps de la stratégie de pile de substitution temporaire. Le corps de la stratégie doit compter entre 1 et 16 384 octets. Si vous souhaitez mettre à jour des ressources protégées, spécifiez une stratégie de pile de substitution temporaire pendant la mise à jour. À défaut, la stratégie de pile existante associée à la pile est utilisée. Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur UPDATE. Vous ne pouvez spécifier qu'un seul des paramètres suivants :
|
| RamRoleName | String | No | test-role | Nom du rôle RAM. ROS assume le rôle RAM pour créer la pile et utilise les identifiants du rôle pour appeler les API des services Alibaba Cloud. ROS assume le rôle RAM pour effectuer des opérations sur la pile. Si vous disposez des autorisations nécessaires pour agir sur la pile mais pas pour utiliser le rôle RAM, ROS assume tout de même le rôle. Assurez-vous d'accorder les privilèges minimaux au rôle RAM. Si vous ne spécifiez pas ce paramètre, ROS assume le rôle RAM existant associé à la pile. Si aucun rôle RAM n'est disponible, ROS utilise un identifiant temporaire généré à partir des identifiants de votre compte. Le nom du rôle RAM peut atteindre 64 octets. |
| ReplacementOption | String | No | Disabled | Indique s'il faut activer la mise à jour par remplacement si une propriété de ressource change alors que vous ne pouvez pas la modifier directement. Pour un changement simple, l'ID physique de la ressource reste inchangé. Pour une mise à jour par remplacement, la ressource existante est supprimée, une nouvelle ressource est créée et l'ID physique de la ressource change. Valeur par défaut : Disabled. Valeurs possibles :
Remarque Les changements simples ont une priorité plus élevée que les mises à jour par remplacement. Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur UPDATE. |
| TemplateId | String | No | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | ID du modèle. Ce paramètre s'applique aux modèles partagés et privés. Vous ne pouvez spécifier qu'un seul des paramètres suivants : TemplateBody, TemplateURL et TemplateId. |
| TemplateVersion | String | No | v1 | Version du modèle. Remarque Ce paramètre prend effet uniquement lorsque le paramètre TemplateId est spécifié. |
| Parameters.N.ParameterKey | String | Yes | Amount | Nom du paramètre N défini dans le modèle. Si vous ne spécifiez pas le nom et la valeur d'un paramètre, ROS utilise les valeurs par défaut définies dans le modèle. Valeur maximale de N : 200. Remarque Le paramètre Parameters est facultatif. Si vous spécifiez Parameters, vous devez spécifier Parameters.N.ParameterKey. |
| Parameters.N.ParameterValue | String | Yes | 12 | Valeur du paramètre N défini dans le modèle. Valeur maximale de N : 200. Remarque Le paramètre Parameters est facultatif. Si vous spécifiez Parameters, vous devez spécifier Parameters.N.ParameterValue. |
| NotificationURLs.N | String | No | http://example.com/ros-notify | URL de rappel utilisée pour recevoir l'événement de pile N. Valeurs possibles :
Valeur maximale de N : 5. Lorsque le statut d'une pile change, ROS envoie une notification d'événement à l'URL spécifiée. Lorsque le rollback est activé pour la pile, des notifications sont envoyées si la pile est dans l'état CREATE_ROLLBACK ou ROLLBACK, mais pas si elle est dans l'état CREATE_FAILED, UPDATE_FAILED ou IN_PROGRESS. ROS envoie des notifications d'événement, que vous ayez ou non configuré la section Outputs. L'exemple suivant illustre le contenu d'une notification d'événement : |
| ResourcesToImport.N.ResourceIdentifier | String | Yes | {"VpcId": "vpc-2zevx9ios******"} | Mappage clé-valeur sous forme de chaînes. La valeur est une chaîne JSON qui identifie la ressource N à importer. Une clé est un identifiant pour une ressource et une valeur est une attribution de données à la clé. Par exemple, VpcId est une clé qui spécifie l'ID d'un Virtual Private Cloud (VPC), et Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur IMPORT. Le paramètre ResourcesToImport est facultatif. Si vous spécifiez ResourcesToImport, vous devez spécifier ResourcesToImport.N.ResourceIdentifier. |
| ResourcesToImport.N.LogicalResourceId | String | Yes | Vpc | ID logique de la ressource N que vous souhaitez importer. L'ID logique spécifie le nom d'une ressource définie dans le modèle. Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur IMPORT. Le paramètre ResourcesToImport est facultatif. Si vous spécifiez ResourcesToImport, vous devez spécifier ResourcesToImport.N.LogicalResourceId. |
| ResourcesToImport.N.ResourceType | String | Yes | ALIYUN::ECS::VPC | Type de la ressource N que vous souhaitez importer. Le type de ressource doit correspondre à celui défini dans le modèle. Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur IMPORT. Le paramètre ResourcesToImport est facultatif. Si vous spécifiez ResourcesToImport, vous devez spécifier ResourcesToImport.N.ResourceType. |
| TemplateScratchId | String | No | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID du modèle de scénario. |
| Parallelism | Long | No | 1 | Nombre maximal d'opérations simultanées pouvant être effectuées sur les ressources. Par défaut, ce paramètre est vide. Vous pouvez le définir sur un entier supérieur ou égal à 0. Si vous spécifiez une valeur, ROS l'associe à la pile. Cette valeur peut affecter les opérations ultérieures sur la pile. Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur CREATE ou UPDATE. Valeurs possibles :
|
Pour plus d'informations sur les paramètres de requête communs, consultez la rubrique Paramètres communs.
Paramètres de réponse
| Parameter | Type | Example | Description |
| ChangeSetId | String | e85abe0c-6528-43fb-ae93-fdf8de22**** |
ID de l'ensemble de modifications.
|
| RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F |
ID de la requête.
|
| StackId | String | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
ID de la pile.
|
Exemples
Exemple de requête
http(s)://ros.aliyuncs.com/?Action=CreateChangeSet
&RegionId=cn-hangzhou
&ChangeSetName=MyChangeSet
&Parameters=[{"ParameterKey":"Amount","ParameterValue":"12"}]
&ResourcesToImport=[{"ResourceIdentifier":"{\"VpcId\": \"vpc-2zevx9ios******\"}","LogicalResourceId":"Vpc","ResourceType":"ALIYUN::ECS::VPC"}]
&<Common request parameters>
Exemple de réponse réussie
Format XML
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateChangeSetResponse>
<ChangeSetId>e85abe0c-6528-43fb-ae93-fdf8de22****</ChangeSetId>
<StackId>4a6c9851-3b0f-4f5f-b4ca-a14bf691****</StackId>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
</CreateChangeSetResponse>
Format JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"ChangeSetId" : "e85abe0c-6528-43fb-ae93-fdf8de22****",
"StackId" : "4a6c9851-3b0f-4f5f-b4ca-a14bf691****",
"RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F"
}
Codes d'erreur
Pour obtenir la liste des codes d'erreur, consultez la rubrique Codes d'erreur de service.
| HTTP status code | Error code | Error message | Description |
|
400
|
CircularDependency
|
Circular Dependency Found: {reason}.
|
Le message d'erreur indique que le modèle contient une dépendance circulaire. reason indique la cause de l'erreur.
|
|
400
|
InvalidSchema
|
{reason}.
|
Le message d'erreur indique que le format du modèle est invalide. reason indique 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 est invalide. resource indique le nom de la ressource. name indique le 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 est invalide. resource indique le nom de la ressource. section indique le 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 invalide. name indique le nom de la référence. referencer indique le nom du référençant.
|
|
400
|
InvalidTemplateSection
|
The template section is invalid: {section}.
|
Le message d'erreur indique que le modèle contient une section invalide. section indique le nom de la section.
|
|
400
|
InvalidTemplateVersion
|
The template version is invalid: {reason}.
|
Le message d'erreur indique que la version du modèle est invalide. reason indique la cause de l'erreur.
|
|
400
|
StackPolicyValidationFailed
|
Action denied by stack policy: {reason}.
|
Le message d'erreur indique que l'opération de création de l'ensemble de modifications n'a pas pu être validée selon la stratégie de pile. reason indique la cause de l'erreur.
|
|
400
|
StackValidationFailed
|
{reason}.
|
Le message d'erreur indique que la validation de la pile a échoué. reason indique 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 indique le 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 indique le nom du paramètre.
|
|
404
|
StackNotFound
|
The Stack ({name}) could not be found.
|
Le message d'erreur indique que la pile n'existe pas. name indique le nom ou l'ID de la pile.
|
|
409
|
ActionInProgress
|
Stack {name} already has an action ({action}) in progress.
|
Le message d'erreur indique que la pile est en cours de modification. name indique le nom ou l'ID de la pile. action indique l'opération de modification.
|
|
409
|
ChangeSetExists
|
The ChangeSet ({name}) of Stack ({stack}) already exists.
|
Le message d'erreur indique qu'un ensemble de modifications portant le même nom existe déjà. name indique le nom de l'ensemble de modifications. stack indique le nom ou l'ID de la pile associée à l'ensemble de modifications.
|
|
409
|
StackExists
|
The Stack ({name}) already exists.
|
Le message d'erreur indique qu'une pile portant le même nom existe déjà. name indique le 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 indique 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 la version du modèle n'existe pas. ID indique l'ID du modèle. version indique la version du modèle.
|