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
Parâmetros da solicitação
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| Action | String | Sim | CreateChangeSet | Operação a ser executada. Defina o valor como CreateChangeSet. |
| StackId | String | Não | 4a6c9851-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. |
| StackPolicyURL | String | Não | oss://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 | String | Nã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:
|
| StackName | String | Não | MyStack | 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. |
| UsePreviousParameters | Boolean | Não | true | 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:
Nota Este parâmetro só tem efeito quando ChangeSetType está definido como UPDATE ou IMPORT. |
| ChangeSetType | String | Não | UPDATE | Tipo do conjunto de alterações. Valor padrão: UPDATE. Valores válidos:
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. |
| Description | String | Não | It is a demo. | Descrição do conjunto de alterações. Pode ter até 1.024 bytes. |
| RegionId | String | Sim | cn-hangzhou | ID da região do conjunto de alterações. Chame a operação DescribeRegions para consultar a lista de regiões mais recente. |
| ClientToken | String | Não | 123e4567-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. |
| TemplateURL | String | Não | oss://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. |
| StackPolicyDuringUpdateURL | String | Não | oss://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:
|
| TemplateBody | String | Nã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. |
| TimeoutInMinutes | Long | Não | 12 | 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.
|
| DisableRollback | Boolean | Não | false | Define se a reversão deve ser desativada quando a criação da stack falhar. Valor padrão: false. Valores válidos:
Nota Este parâmetro só tem efeito quando ChangeSetType está definido como CREATE ou IMPORT. |
| ChangeSetName | String | Sim | MyChangeSet | 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. |
| StackPolicyDuringUpdateBody | String | Nã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:
|
| RamRoleName | String | Não | test-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. |
| ReplacementOption | String | Não | Disabled | 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:
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. |
| TemplateId | String | Não | 5ecd1e10-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. |
| TemplateVersion | String | Não | v1 | Versão do modelo. Nota Este parâmetro só tem efeito quando TemplateId é especificado. |
| Parameters.N.ParameterKey | String | Sim | Amount | 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.ParameterValue | String | Sim | 12 | 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.N | String | Não | http://example.com/ros-notify | URL de callback usada para receber o evento N da stack. Valores válidos:
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: |
| ResourcesToImport.N.ResourceIdentifier | String | Sim | {"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 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.LogicalResourceId | String | Sim | Vpc | 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.ResourceType | String | Sim | ALIYUN::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. |
| TemplateScratchId | String | Não | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | ID do modelo de cenário. |
| Parallelism | Long | Não | 1 | 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:
|
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. |