Cria uma stack.
Uma stack é um conjunto de recursos do Resource Orchestration Service (ROS) gerenciável como uma única unidade. Para criar um conjunto de recursos, crie uma stack. Para obter mais informações sobre stacks, consulte Visão geral.
Ao chamar esta operação, observe os seguintes limites:
É possível criar até 200 stacks em uma conta Alibaba Cloud.
Cada stack admite no máximo 200 recursos.
Este tópico apresenta um exemplo de criação de uma stack chamada MyStack na região China (Hangzhou). O corpo do modelo da stack é {"ROSTemplateFormatVersion":"2015-09-01"}.
Depuração
Parâmetros de solicitação
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| Action | String | Sim | CreateStack | Operação a executar. Defina o valor como CreateStack. |
| DisableRollback | Boolean | Não | false | Define se a reversão dos recursos deve ser desativada caso a criação da stack falhe. Valor padrão: false. Valores válidos:
|
| 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 exceder o limite superior, recomendamos adicionar parâmetros ao corpo da solicitação HTTP POST para evitar falhas causadas por URLs excessivamente longas. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| 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/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. Caso você não especifique o ID da região do bucket OSS, o sistema usará o valor do parâmetro RegionId. Nota Especifique apenas um dos parâmetros StackPolicyBody ou StackPolicyURL. A URL pode ter até 1.350 bytes. |
| TimeoutInMinutes | Long | Não | 10 | Tempo limite permitido para criar a stack.
|
| StackPolicyBody | String | Não | {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} | Estrutura que contém o corpo da política da stack. O corpo da política deve ter entre 1 e 16.384 bytes. Nota Especifique apenas um dos parâmetros StackPolicyBody ou StackPolicyURL. |
| StackName | String | Sim | MyStack | Nome da stack. O nome pode ter até 255 caracteres e conter dígitos, letras, hifens (-) e sublinhados (_). Deve começar com uma letra. |
| RegionId | String | Sim | cn-hangzhou | ID da região da stack. Chame a operação DescribeRegions para consultar a lista de regiões mais recente. |
| ClientToken | String | Não | 123e4567-e89b-12d3-a456-42665544**** | Token de cliente usado para garantir a idempotência da solicitação. Use o cliente para gerar o valor, mas certifique-se de que ele seja único entre diferentes solicitações. O token pode ter até 64 caracteres e conter letras, dígitos, hifens (-) e sublinhados (_). Para obter mais informações, 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/HTTPS ou em um bucket OSS, como oss://ros/stack-policy/demo ou oss://ros/stack-policy/demo?RegionId=cn-hangzhou. O corpo do modelo pode ter até 524.288 bytes. Caso você não especifique o ID da região do bucket OSS, o sistema usará o valor do parâmetro RegionId. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| 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 executar operações na stack. Mesmo que você tenha permissões para operar na stack, mas não tenha permissão para usar a função RAM, o ROS ainda assumirá essa função. Certifique-se de conceder apenas os privilégios mínimos necessários à função RAM. Se você não especificar este parâmetro, o ROS assumirá a função existente associada à stack. Se nenhuma função estiver disponível, o ROS usará uma credencial temporária gerada a partir das credenciais da sua conta. O nome pode ter até 64 caracteres. |
| DeletionProtection | String | Não | Enabled | Define se a proteção contra exclusão deve ser ativada para a stack. Valor padrão: Disabled. Valores válidos:
Nota O parâmetro DeletionProtection definido para a stack raiz aplica-se também às suas stacks aninhadas. |
| CreateOption | String | Não | KeepStackOnCreationComplete | Opção para a stack após a criação. Valor padrão: KeepStackOnCreationComplete. Valores válidos:
|
| TemplateId | String | Não | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | ID do modelo. Este parâmetro aplica-se a modelos compartilhados e privados. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| TemplateVersion | String | Não | v1 | Versão do modelo. Este parâmetro só tem efeito quando o parâmetro TemplateId é especificado. |
| Parameters.N.ParameterKey | String | Sim | InstanceId | Nome do parâmetro N definido no modelo. Se você não especificar o nome e o valor de um parâmetro, o ROS usará o nome e o valor padrão do modelo. Valor máximo de N: 200. O nome deve ter entre 1 e 128 caracteres e não pode conter Nota O parâmetro Parameters é opcional. Se você especificar Parameters, deverá definir tanto Parameters.N.ParameterKey quanto Parameters.N.ParameterValue. |
| Parameters.N.ParameterValue | String | Sim | i-xxxxxx | Valor do parâmetro N definido no modelo. Valor máximo de N: 200. O valor pode ter até 128 caracteres e não pode conter Nota O parâmetro Parameters é opcional. Se você especificar Parameters, deverá definir tanto Parameters.N.ParameterKey quanto Parameters.N.ParameterValue. |
| NotificationURLs.N | String | Não | http://example.com/ros-event | URL de callback usada para receber o evento N da stack. Valores válidos:
Valor máximo de N: 5. Quando o status de uma stack muda, o ROS envia uma notificação de evento para a URL especificada. Quando a reversão está ativada para a stack, as notificações de evento são enviadas se a stack estiver no estado CREATE_ROLLBACK ou ROLLBACK, mas não são enviadas se a stack estiver no estado 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 a seguir mostra o conteúdo de uma notificação de evento: |
| Tags.N.Key | String | Sim | usage | Chave da tag N a ser adicionada à stack. Valores válidos de N: 1 a 20. Nota
|
| Tags.N.Value | String | Não | test | Valor da tag N a ser adicionada à stack. Valores válidos de N: 1 a 20. Nota A tag de uma stack é propagada para cada recurso da stack compatível com tags. Para obter mais informações, consulte Propagar tags. |
| ResourceGroupId | String | Não | rg-acfmxazb4ph6aiy**** | ID do grupo de recursos. Se você não especificar este parâmetro, a stack será adicionada ao grupo de recursos padrão. Para obter mais informações sobre grupos de recursos, consulte a seção "Grupo de Recursos" do tópico O que é o Resource Management?. |
| Parallelism | Long | Não | 1 | Número máximo de operações simultâneas executáveis nos recursos. Por padrão, este parâmetro está vazio. Defina-o como um número inteiro maior ou igual a 0. Nota
|
| TemplateScratchId | String | Não | ts-aa9c62feab844a6b**** | ID do cenário. Para obter mais informações sobre como consultar os IDs dos cenários, consulte ListTemplateScratches. Nota Especifique apenas um dos seguintes parâmetros: TemplateBody, TemplateURL, TemplateId ou TemplateScratchId. |
| TemplateScratchRegionId | String | Não | cn-hangzhou | ID da região do cenário. O valor padrão é igual ao valor do parâmetro RegionId. Chame a operação DescribeRegions para consultar a lista de regiões mais recente. |
Para obter mais informações sobre parâmetros de solicitação comuns, consulte Parâmetros comuns.
Parâmetros de resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
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=CreateStack
&StackName=MyStack
&RegionId=cn-hangzhou
&Parameters=[{"ParameterKey":"InstanceId","ParameterValue":"i-xxxxxx"}]
&Tags=[{"Key":"usage"}]
&<Common request parameters>
Exemplos de respostas de sucesso
Formato XML
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateStackResponse>
<StackId>4a6c9851-3b0f-4f5f-b4ca-a14bf691****</StackId>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
</CreateStackResponse>
Formato JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"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 erro |
Mensagem de erro |
Código de status HTTPS |
Descrição |
|
CircularDependency |
Circular Dependency Found: {reason}. |
400 |
Mensagem de erro retornada porque o modelo contém dependências circulares. reason indica a causa do erro. |
|
InvalidSchema |
{reason}. |
400 |
Mensagem de erro retornada porque o formato do modelo é inválido. reason indica a causa do erro. |
|
InvalidTemplateAttribute |
The Referenced Attribute ({resource} {name}) is incorrect. |
400 |
Mensagem de erro retornada porque 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. |
|
InvalidTemplatePropertyType |
The specified value type of ({resource} {section}) is incorrect. |
400 |
Mensagem de erro retornada porque 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. |
|
InvalidTemplateReference |
The specified reference "{name}" (in {referencer}) is incorrect. |
400 |
Mensagem de erro retornada porque o modelo contém uma referência inválida. name indica o nome da referência. referencer indica o nome do referenciador. |
|
InvalidTemplateSection |
The template section is invalid: {section}. |
400 |
Mensagem de erro retornada porque o modelo contém uma seção inválida. section indica o nome da seção. |
|
InvalidTemplateVersion |
The template version is invalid: {reason}. |
400 |
Mensagem de erro retornada porque a versão do modelo é inválida. reason indica a causa do erro. |
|
StackValidationFailed |
{reason}. |
400 |
Mensagem de erro retornada porque a validação da stack falhou. reason indica a causa do erro. |
|
UnknownUserParameter |
The Parameter ({name}) was not defined in template. |
400 |
Mensagem de erro retornada porque o parâmetro especificado não está definido no modelo. name indica o nome do parâmetro. |
|
UserParameterMissing |
The Parameter {name} was not provided. |
400 |
Mensagem de erro retornada porque nenhum valor foi especificado para o parâmetro definido no modelo. name indica o nome do parâmetro. |
|
ActionInProgress |
Stack {name} already has an action ({action}) in progress. |
409 |
Mensagem de erro retornada porque a stack está sendo alterada. name indica o nome ou ID da stack. action indica a operação de alteração. |
|
StackExists |
The Stack ({name}) already exists. |
409 |
Mensagem de erro retornada porque já existe uma stack com o mesmo nome. name indica o nome da stack. |
|
TemplateNotFound |
The Template ({ ID }) could not be found. |
404 |
Mensagem de erro retornada porque o modelo especificado não existe. ID indica o ID do modelo. |
|
TemplateNotFound |
The Template { ID } with version { version } could not be found. |
404 |
Mensagem de erro retornada porque o modelo ou a versão do modelo especificada não existe. ID indica o ID do modelo. version indica a versão do modelo. |