Tous les produits
Search
Centre de documentation

:CreateChangeSet

Dernière mise à jour :Aug 10, 2026

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

OpenAPI Explorer calcule automatiquement la valeur de signature. Nous vous recommandons d'appeler cette opération dans OpenAPI Explorer pour plus de commodité. OpenAPI Explorer génère dynamiquement des exemples de code pour différents SDK.

Paramètres de requête

ParameterTypeRequiredExampleDescription
ActionStringYesCreateChangeSet

Opération à effectuer. Définissez la valeur sur CreateChangeSet.

StackIdStringNo4a6c9851-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.
StackPolicyURLStringNooss://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
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
StackPolicyBodyStringNo{"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 :

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
StackNameStringNoMyStack

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

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 :

  • true
  • false
Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur UPDATE ou IMPORT.
ChangeSetTypeStringNoUPDATE

Type d'ensemble de modifications. Valeur par défaut : UPDATE. Valeurs possibles :

  • CREATE : crée un ensemble de modifications pour une nouvelle pile.
  • UPDATE : crée un ensemble de modifications pour une pile existante.
  • IMPORT : crée un ensemble de modifications pour une pile nouvelle ou existante afin d'importer des ressources non gérées par ROS.

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.

DescriptionStringNoIt is a demo.

Description de l'ensemble de modifications. Elle peut atteindre 1 024 octets.

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

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

TemplateURLStringNooss://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.

StackPolicyDuringUpdateURLStringNooss://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 :

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
TemplateBodyStringNo{"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.

TimeoutInMinutesLongNo12

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.

  • Unité : minutes.
  • Valeurs possibles : 10 à 1440.
  • Valeur par défaut : 60.
DisableRollbackBooleanNofalse

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 :

  • true
  • false
Remarque Ce paramètre prend effet uniquement lorsque le paramètre ChangeSetType est défini sur CREATE ou IMPORT.
ChangeSetNameStringYesMyChangeSet

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.
StackPolicyDuringUpdateBodyStringNo{"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 :

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
RamRoleNameStringNotest-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.

ReplacementOptionStringNoDisabled

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 :

  • Enabled
  • Disabled
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.
TemplateIdStringNo5ecd1e10-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.

TemplateVersionStringNov1

Version du modèle.

Remarque Ce paramètre prend effet uniquement lorsque le paramètre TemplateId est spécifié.
Parameters.N.ParameterKeyStringYesAmount

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

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.NStringNohttp://example.com/ros-notify

URL de rappel utilisée pour recevoir l'événement de pile N. Valeurs possibles :

  • URL HTTP POST

    Chaque URL peut atteindre 1 024 octets.

  • eventbridge

    Lorsque le statut d'une pile change, ROS envoie une notification d'événement au service EventBridge. Pour consulter les informations sur l'événement, procédez comme suit : Connectez-vous à la console EventBridge. Dans le volet de navigation de gauche, cliquez sur Event Buses.
    Remarque ROS prend en charge le service EventBridge dans les régions suivantes : China (Hangzhou), China (Shanghai), China (Beijing), China (Hong Kong) et China (Zhangjiakou).

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 :


{
    "Outputs": [
        {
            "Description": "No description given",
            "OutputKey": "InstanceId",
            "OutputValue": "i-xxx"
        }
    ],
    "StackId": "80bd6b6c-e888-4573-ae3b-93d29113****",
    "StackName": "test-notification-url",
    "Status": "CREATE_COMPLETE"
}
                                    
ResourcesToImport.N.ResourceIdentifierStringYes{"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 vpc-2zevx9ios**** est la valeur attribuée à VpcId. Appelez l'opération GetTemplateSummary pour obtenir la clé d'une ressource.

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

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.ResourceTypeStringYesALIYUN::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.
TemplateScratchIdStringNo4a6c9851-3b0f-4f5f-b4ca-a14bf691****

ID du modèle de scénario.

ParallelismLongNo1

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 :

  • Valeurs valides pour les ensembles de modifications de type CREATE :
    • Si vous définissez ce paramètre sur un entier supérieur à 0, cet entier est utilisé.
    • Si vous définissez ce paramètre sur 0 ou le laissez vide, aucune limite n'est imposée aux piles ROS. Toutefois, la valeur par défaut de Terraform est utilisée pour les piles Terraform. Dans la plupart des cas, la valeur par défaut de Terraform est 10.
  • Valeurs valides pour les ensembles de modifications de type UPDATE :
    • Si vous définissez ce paramètre sur un entier supérieur à 0, cet entier est utilisé.
    • Si vous définissez ce paramètre sur 0, aucune limite n'est imposée aux piles ROS. Toutefois, la valeur par défaut de Terraform est utilisée pour les piles Terraform. Dans la plupart des cas, la valeur par défaut de Terraform est 10.
    • Si vous laissez ce paramètre vide, la valeur spécifiée dans la requête précédente est utilisée. Si ce paramètre était vide dans la requête précédente, aucune limite n'est imposée aux piles ROS. Toutefois, la valeur par défaut de Terraform est utilisée pour les piles Terraform. Dans la plupart des cas, la valeur par défaut de Terraform est 10.

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.

|