Todos os produtos
Search
Central de documentação

:CreateChangeSet

Última atualização: Jun 27, 2026

Cria um conjunto de alterações.

Descrição

Crie e execute conjuntos de alterações para atualizar stacks em execução. Para obter mais informações sobre conjuntos de alterações, consulte Visão geral.

Limites

  • Uma stack pode conter até 20 conjuntos de alterações.

  • Os conjuntos de alterações refletem apenas as modificações nas stacks, mas não indicam se as stacks foram efetivamente atualizadas.

  • Conjuntos de alterações não verificam os seguintes itens: se o limite máximo da conta foi atingido, se há tentativa de atualizar recursos que não permitem atualização ou se a conta não possui as permissões necessárias para modificar recursos. Esses fatores podem causar falha na atualização da stack. Caso a atualização falhe, o Resource Orchestration Service (ROS) tenta reverter os recursos para o estado original.

Este tópico apresenta um exemplo de criação de conjunto de alterações. Neste cenário, cria-se um conjunto chamado MyChangeSet na região China (Hangzhou). O objetivo é alterar o corpo do modelo de uma stack para {"ROSTemplateFormatVersion":"2015-09-01"}. O ID da stack é 4a6c9851-3b0f-4f5f-b4ca-a14bf691****.

Depuração

O OpenAPI Explorer calcula automaticamente o valor da assinatura. Recomendamos chamar esta operação no OpenAPI Explorer para maior comodidade. A ferramenta gera dinamicamente exemplos de código da operação para diferentes SDKs.

Parâmetros da solicitação

ParâmetroTipoObrigatórioExemploDescrição
ActionStringSimCreateChangeSet

Operação a ser executada. Defina o valor como CreateChangeSet.

StackIdStringNão4a6c9851-3b0f-4f5f-b4ca-a14bf691****

ID da stack para a qual se deseja criar o conjunto de alterações. O ROS compara as informações da stack com os dados especificados, como um modelo modificado ou um valor de parâmetro alterado, para gerar o conjunto de alterações.

Nota Este parâmetro só tem efeito quando ChangeSetType está definido como UPDATE ou IMPORT.
StackPolicyURLStringNãooss://ros/stack-policy/demo

URL do arquivo que contém a política da stack. A URL deve apontar para uma política localizada em um servidor web HTTP ou HTTPS, ou em um bucket do Object Storage Service (OSS), como oss://ros/stack-policy/demo ou oss://ros/stack-policy/demo?RegionId=cn-hangzhou. O arquivo de política pode ter até 16.384 bytes.

Nota Se o ID da região do bucket OSS não for especificado, o valor do parâmetro RegionId será utilizado.

Especifique o parâmetro StackPolicyBody ou StackPolicyURL.

A URL pode ter até 1.350 bytes.

Se ChangeSetType for CREATE, especifique StackPolicyBody ou StackPolicyURL. Se ChangeSetType for UPDATE, especifique apenas um dos seguintes parâmetros:

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
StackPolicyBodyStringNão{"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]}

Estrutura que contém o corpo da política da stack. O corpo da política deve ter entre 1 e 16.384 bytes. Se ChangeSetType for CREATE, especifique StackPolicyBody ou StackPolicyURL. Se ChangeSetType for UPDATE, especifique apenas um dos seguintes parâmetros:

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
StackNameStringNãoMyStack

Nome da stack para a qual se deseja criar o conjunto de alterações.

O nome pode ter até 255 caracteres e conter dígitos, letras, hifens (-) e sublinhados (_). Deve começar com um dígito ou letra.

Nota Este parâmetro só tem efeito quando ChangeSetType está definido como CREATE ou IMPORT.
UsePreviousParametersBooleanNãotrue

Define se devem ser usados os valores especificados na solicitação anterior para os parâmetros não informados na solicitação atual. Valor padrão: false. Valores válidos:

  • true
  • false
Nota Este parâmetro só tem efeito quando ChangeSetType está definido como UPDATE ou IMPORT.
ChangeSetTypeStringNãoUPDATE

Tipo do conjunto de alterações. Valor padrão: UPDATE. Valores válidos:

  • CREATE: cria um conjunto de alterações para uma nova stack.
  • UPDATE: cria um conjunto de alterações para uma stack existente.
  • IMPORT: cria um conjunto de alterações para uma stack nova ou existente, visando importar recursos não gerenciados pelo ROS.

Ao criar um conjunto de alterações para uma nova stack, o ROS gera um ID exclusivo para ela. A stack permanece no estado REVIEW_IN_PROGRESS até a execução do conjunto de alterações.

Não use o tipo UPDATE para criar um conjunto de alterações destinado a uma nova stack, nem use o tipo CREATE para uma stack existente.

DescriptionStringNãoIt is a demo.

Descrição do conjunto de alterações. Pode ter até 1.024 bytes.

RegionIdStringSimcn-hangzhou

ID da região do conjunto de alterações. Chame a operação DescribeRegions para consultar a lista de regiões mais recente.

ClientTokenStringNão123e4567-e89b-12d3-a456-42665544****

Token do cliente usado para garantir a idempotência da solicitação. Gere esse valor usando o cliente, mas assegure que seja único entre diferentes solicitações.

O token pode ter até 64 caracteres e conter letras, dígitos, hifens (-) e sublinhados (_).

Para mais detalhes, consulte Garantir idempotência.

TemplateURLStringNãooss://ros/template/demo

URL do arquivo que contém o corpo do modelo. A URL deve apontar para um modelo localizado em um servidor web HTTP ou HTTPS, ou em um bucket OSS, como oss://ros/template/demo ou oss://ros/template/demo?RegionId=cn-hangzhou. O corpo do modelo pode ter até 524.288 bytes.

Nota Se o ID da região do bucket OSS não for especificado, o valor do parâmetro RegionId será utilizado.

Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL e TemplateId.

A URL pode ter até 1.024 bytes.

StackPolicyDuringUpdateURLStringNãooss://ros/stack-policy/demo

URL do arquivo que contém a política temporária de substituição da stack. A URL deve apontar para uma política localizada em um servidor web HTTP ou HTTPS, ou em um bucket OSS, como oss://ros/stack-policy/demo ou oss://ros/stack-policy/demo?RegionId=cn-hangzhou. O arquivo de política pode ter até 16.384 bytes.

Nota Se o ID da região do bucket OSS não for especificado, o valor do parâmetro RegionId será utilizado.

A URL pode ter até 1.350 bytes.

Para atualizar recursos protegidos, especifique uma política temporária de substituição durante a atualização. Caso contrário, a política existente associada à stack será usada. Este parâmetro só tem efeito quando ChangeSetType está definido como UPDATE. Especifique apenas um dos seguintes parâmetros:

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
TemplateBodyStringNão{"ROSTemplateFormatVersion":"2015-09-01"}

Estrutura que contém o corpo do modelo. O corpo do modelo deve ter entre 1 e 524.288 bytes.

Se o tamanho do corpo do modelo exceder o limite superior, adicione parâmetros ao corpo da solicitação HTTP POST para evitar falhas causadas por URLs excessivamente longas.

Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL e TemplateId.

TimeoutInMinutesLongNão12

Tempo máximo decorrido antes que a stack entre no estado CREATE_FAILED ou UPDATE_FAILED.

Este parâmetro é obrigatório se ChangeSetType for CREATE. Se ChangeSetType for UPDATE, o parâmetro é opcional.

  • Unidade: minutos.
  • Valores válidos: 10 a 1440.
  • Valor padrão: 60.
DisableRollbackBooleanNãofalse

Define se a reversão deve ser desativada quando a criação da stack falhar.

Valor padrão: false. Valores válidos:

  • true
  • false
Nota Este parâmetro só tem efeito quando ChangeSetType está definido como CREATE ou IMPORT.
ChangeSetNameStringSimMyChangeSet

Nome do conjunto de alterações.

O nome pode ter até 255 caracteres e conter dígitos, letras, hifens (-) e sublinhados (_). Deve começar com um dígito ou letra.

Nota Certifique-se de que o nome seja exclusivo entre todos os conjuntos de alterações associados à stack especificada.
StackPolicyDuringUpdateBodyStringNão{"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]}

Estrutura que contém o corpo da política temporária de substituição da stack. O corpo da política deve ter entre 1 e 16.384 bytes.

Para atualizar recursos protegidos, especifique uma política temporária de substituição durante a atualização. Se nenhuma política for especificada, a política de stack existente associada à stack será utilizada.

Este parâmetro só tem efeito quando ChangeSetType está definido como UPDATE. Especifique apenas um dos seguintes parâmetros:

  • StackPolicyBody
  • StackPolicyURL
  • StackPolicyDuringUpdateBody
  • StackPolicyDuringUpdateURL
RamRoleNameStringNãotest-role

Nome da função RAM. O ROS assume a função RAM para criar a stack e usa as credenciais da função para chamar as APIs dos serviços Alibaba Cloud.

O ROS assume a função RAM para realizar operações na stack. Mesmo que você tenha permissão para operar na stack, mas não tenha permissão para usar a função RAM, o ROS ainda assumirá essa função. Garanta que a função RAM tenha apenas os privilégios mínimos necessários.

Se este parâmetro não for especificado, o ROS assumirá a função RAM existente associada à stack. Se não houver funções RAM disponíveis, o ROS usará uma credencial temporária gerada a partir das credenciais da sua conta.

O nome da função RAM pode ter até 64 bytes.

ReplacementOptionStringNãoDisabled

Define se a atualização por substituição deve ser ativada caso uma propriedade do recurso seja alterada, mas não possa ser modificada diretamente. Em uma alteração simples, o ID físico do recurso permanece inalterado. Já na atualização por substituição, o recurso existente é excluído, um novo recurso é criado e o ID físico muda. Valor padrão: Disabled. Valores válidos:

  • Enabled
  • Disabled
Nota Alterações diretas têm prioridade sobre atualizações por substituição. Este parâmetro só tem efeito quando ChangeSetType está definido como UPDATE.
TemplateIdStringNão5ecd1e10-b0e9-4389-a565-e4c15efc****

ID do modelo. Aplica-se a modelos compartilhados e privados.

Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL e TemplateId.

TemplateVersionStringNãov1

Versão do modelo.

Nota Este parâmetro só tem efeito quando TemplateId é especificado.
Parameters.N.ParameterKeyStringSimAmount

Nome do parâmetro N definido no modelo. Se o nome e o valor de um parâmetro não forem especificados, o ROS usará o nome e o valor padrão definidos no modelo. Valor máximo de N: 200.

Nota O parâmetro Parameters é opcional. Se especificar Parameters, especifique também Parameters.N.ParameterKey.
Parameters.N.ParameterValueStringSim12

Valor do parâmetro N definido no modelo. Valor máximo de N: 200.

Nota O parâmetro Parameters é opcional. Se especificar Parameters, especifique também Parameters.N.ParameterValue.
NotificationURLs.NStringNãohttp://example.com/ros-notify

URL de callback usada para receber o evento N da stack. Valores válidos:

  • URL HTTP POST

    Cada URL pode ter até 1.024 bytes.

  • eventbridge

    Quando o status de uma stack muda, o ROS envia uma notificação de evento para o serviço EventBridge. Para visualizar as informações do evento, siga estas etapas: Faça login no console do EventBridge. No painel de navegação à esquerda, clique em Event Buses.
    Nota O ROS oferece suporte ao serviço EventBridge nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing), China (Hong Kong) e China (Zhangjiakou).

Valor máximo de N: 5. Quando o status da stack mudar, o ROS enviará uma notificação de evento para a URL especificada. Se a reversão estiver ativada para a stack, as notificações serão enviadas nos estados CREATE_ROLLBACK ou ROLLBACK, mas não serão enviadas nos estados CREATE_FAILED, UPDATE_FAILED ou IN_PROGRESS.

O ROS envia notificações de evento independentemente da configuração da seção Outputs. O código de exemplo abaixo ilustra o conteúdo de uma notificação de evento:


{
    "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.ResourceIdentifierStringSim{"VpcId": "vpc-2zevx9ios******"}

Mapeamento chave-valor entre strings. O valor é uma string JSON que identifica o recurso N a ser importado.

Uma chave é um identificador para um recurso e um valor é uma atribuição de dados a essa chave. Por exemplo, VpcId é uma chave que especifica o ID de uma Virtual Private Cloud (VPC), e vpc-2zevx9ios**** é um valor atribuído a VpcId. Chame a operação GetTemplateSummary para obter a chave de um recurso.

Nota Este parâmetro só tem efeito quando ChangeSetType está definido como IMPORT. O parâmetro ResourcesToImport é opcional. Se especificar ResourcesToImport, especifique também ResourcesToImport.N.ResourceIdentifier.
ResourcesToImport.N.LogicalResourceIdStringSimVpc

ID lógico do recurso N que se deseja importar. O ID lógico especifica o nome de um recurso definido no modelo.

Nota Este parâmetro só tem efeito quando ChangeSetType está definido como IMPORT. O parâmetro ResourcesToImport é opcional. Se especificar ResourcesToImport, especifique também ResourcesToImport.N.LogicalResourceId.
ResourcesToImport.N.ResourceTypeStringSimALIYUN::ECS::VPC

Tipo do recurso N que se deseja importar. O tipo de recurso deve corresponder ao tipo definido no modelo.

Nota Este parâmetro só tem efeito quando ChangeSetType está definido como IMPORT. O parâmetro ResourcesToImport é opcional. Se especificar ResourcesToImport, especifique também ResourcesToImport.N.ResourceType.
TemplateScratchIdStringNão4a6c9851-3b0f-4f5f-b4ca-a14bf691****

ID do modelo de cenário.

ParallelismLongNão1

Número máximo de operações simultâneas permitidas nos recursos. Por padrão, este parâmetro está vazio. Defina-o como um número inteiro maior ou igual a 0. Ao definir um valor específico, o ROS associa esse valor à stack, o que pode afetar operações subsequentes.

Este parâmetro só tem efeito quando ChangeSetType está definido como CREATE ou UPDATE. Valores válidos:

  • Valores válidos para conjuntos de alterações do tipo CREATE:
    • Se definido como um inteiro maior que 0, esse valor será usado.
    • Se definido como 0 ou deixado vazio, não haverá limite para stacks ROS. Contudo, para stacks Terraform, o valor padrão do Terraform será aplicado (geralmente 10).
  • Valores válidos para conjuntos de alterações do tipo UPDATE:
    • Se definido como um inteiro maior que 0, esse valor será usado.
    • Se definido como 0, não haverá limite para stacks ROS. Contudo, para stacks Terraform, o valor padrão do Terraform será aplicado (geralmente 10).
    • Se deixado vazio, o valor especificado na solicitação anterior será mantido. Se também estava vazio anteriormente, não haverá limite para stacks ROS, mas o valor padrão do Terraform (geralmente 10) será aplicado a stacks Terraform.

Para obter mais informações sobre parâmetros comuns de solicitação, consulte Parâmetros comuns.

Parâmetros de resposta

Parâmetro

Tipo

Exemplo

Descrição

ChangeSetId

String

e85abe0c-6528-43fb-ae93-fdf8de22****

ID do conjunto de alterações.

RequestId

String

B288A0BE-D927-4888-B0F7-B35EF84B6E6F

ID da solicitação.

StackId

String

4a6c9851-3b0f-4f5f-b4ca-a14bf691****

ID da stack.

Exemplos

Exemplos de solicitações

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>

Exemplos de respostas de sucesso

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

Formato 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"
}

Códigos de erro

Para obter uma lista de códigos de erro, consulte Códigos de erro do serviço.

Código de status HTTP

Código de erro

Mensagem de erro

Descrição

400

CircularDependency

Circular Dependency Found: {reason}.

O modelo contém uma dependência circular. reason indica a causa do erro.

400

InvalidSchema

{reason}.

O formato do modelo é inválido. reason indica a causa do erro.

400

InvalidTemplateAttribute

The Referenced Attribute ({resource} {name}) is incorrect.

A propriedade do recurso referenciada na seção Outputs do modelo é inválida. resource indica o nome do recurso. name indica o nome da propriedade.

400

InvalidTemplatePropertyType

The specified value type of ({resource} {section}) is incorrect.

O tipo da propriedade do recurso definida em uma seção do modelo é inválido. resource indica o nome do recurso. section indica o nome da seção.

400

InvalidTemplateReference

The specified reference "{name}" (in {referencer}) is incorrect.

O modelo contém uma referência inválida. name indica o nome da referência. referencer indica o nome do referenciador.

400

InvalidTemplateSection

The template section is invalid: {section}.

O modelo contém uma seção inválida. section indica o nome da seção.

400

InvalidTemplateVersion

The template version is invalid: {reason}.

A versão do modelo é inválida. reason indica a causa do erro.

400

StackPolicyValidationFailed

Action denied by stack policy: {reason}.

A validação da operação de criação do conjunto de alterações falhou com base na política da stack. reason indica a causa do erro.

400

StackValidationFailed

{reason}.

A validação da stack falhou. reason indica a causa do erro.

400

UnknownUserParameter

The Parameter ({name}) was not defined in template.

O parâmetro especificado não está definido no modelo. name indica o nome do parâmetro.

400

UserParameterMissing

The Parameter {name} was not provided.

Nenhum valor foi especificado para o parâmetro definido no modelo. name indica o nome do parâmetro.

404

StackNotFound

The Stack ({name}) could not be found.

A stack não existe. name indica o nome ou ID da stack.

409

ActionInProgress

Stack {name} already has an action ({action}) in progress.

A stack está sendo modificada. name indica o nome ou ID da stack. action indica a operação de alteração.

409

ChangeSetExists

The ChangeSet ({name}) of Stack ({stack}) already exists.

Já existe um conjunto de alterações com o mesmo nome. name indica o nome do conjunto de alterações. stack indica o nome ou ID da stack associada.

409

StackExists

The Stack ({name}) already exists.

Já existe uma stack com o mesmo nome. name indica o nome da stack.

404

TemplateNotFound

The Template ({ ID }) could not be found.

O modelo não existe. ID indica o ID do modelo.

404

TemplateNotFound

The Template { ID } with version { version } could not be found.

O modelo ou a versão do modelo não existe. ID indica o ID do modelo. version indica a versão do modelo.