Criar - AWS CloudFormation

Criar

Quando o desenvolvedor de modelos cria uma pilha que contém um recurso personalizado, o CloudFormation envia uma solicitação ao provedor de recursos personalizados com RequestType definido como Create. Essa solicitação acontece especificamente quando o recurso personalizado está sendo criado.

Para obter uma introdução aos recursos personalizados e como eles funcionam, consulte Recursos personalizados.

Solicitação

Crie solicitações que contenha os seguintes campos:

RequestType

Create.

RequestId

Um ID exclusivo para a solicitação.

ResponseURL

O URL de resposta identifica um bucket do S3 pré-assinado que recebe respostas do provedor de recursos personalizados para o AWS CloudFormation.

ResourceType

O tipo de recurso escolhido pelo desenvolvedor do modelo do recurso personalizado no modelo do CloudFormation. Os nomes de tipos de recursos personalizados podem incluir até 60 caracteres, incluindo alfanuméricos e os seguintes caracteres: _@-.

LogicalResourceId

O nome do modelo escolhido pelo desenvolvedor (ID lógico) do recurso personalizado no modelo AWS CloudFormation.

StackId

O nome do recurso da Amazon (ARN) que identifica a pilha que contém o recurso personalizado.

ResourceProperties

Esse campo apresenta o conteúdo do objeto Properties enviado pelo desenvolvedor de modelos. Seu conteúdo é definido pelo provedor de recursos personalizados.

Exemplo

{ "RequestType" : "Create", "RequestId" : "unique id for this create request", "ResponseURL" : "pre-signed-url-for-create-response", "ResourceType" : "Custom::MyCustomResourceType", "LogicalResourceId" : "name of resource in template", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10", "ResourceProperties" : { "key1" : "string", "key2" : [ "list" ], "key3" : { "key4" : "map" } } }

Respostas

Bem-sucedida

Quando a solicitação de criação é bem-sucedida, uma resposta deve ser enviada ao bucket do Amazon S3 com os seguintes campos:

Status

Deve ser SUCCESS.

RequestId

Um ID exclusivo para a solicitação. Esse valor de resposta deve ser copiado literalmente com base na solicitação.

LogicalResourceId

O nome do modelo escolhido pelo desenvolvedor (ID lógico) do recurso personalizado no modelo AWS CloudFormation. Esse valor de resposta deve ser copiado literalmente com base na solicitação.

StackId

O nome do recurso da Amazon (ARN) que identifica a pilha que contém o recurso personalizado. Esse valor de resposta deve ser copiado literalmente com base na solicitação.

PhysicalResourceId

Esse valor deve ser um identificador exclusivo do fornecedor de recursos personalizados e pode ter até 1 KB de tamanho. O valor deve ser uma string não vazia e deve ser idêntico para todas as respostas do mesmo recurso.

O valor retornado para um PhysicalResourceId pode alterar as operações de atualização de recursos personalizados. Se o valor retornado for o mesmo, a atualização é considerada normal. Se o valor retornado for diferente, o AWS CloudFormation reconhece a atualização como uma substituição e envia uma solicitação de exclusão ao recurso antigo. Para ter mais informações, consulte AWS::CloudFormation::CustomResource.

NoEcho

Opcional. Indica se é necessário mascarar a saída do recurso personalizado quando ela for recuperada usando a função Fn::GetAtt. Se definido como true, todos os valores retornados serão mascarados com asteriscos (*****), exceto aqueles armazenados na seção Metadata do modelo. O AWS CloudFormation não transforma, modifica nem edita nenhuma informação incluída na seção Metadata. O valor padrão é false.

Para obter mais informações sobre como usar NoEcho para mascarar informações confidenciais, consulte a prática recomendada Não incorporar credenciais em seus modelos.

Data

Opcional. Os pares de nome/valor definidos pelo provedor de recursos personalizados a serem enviados com a resposta. É possível acessar os valores fornecidos aqui pelo nome no modelo com Fn::GetAtt.

Importante

Se os pares de nome/valor contiverem informações confidenciais, você deverá utilizar o campo NoEcho para mascarar a saída do recurso personalizado. Caso contrário, os valores estarão visíveis por meio de APIs que exibem valores de propriedades (como DescribeStackEvents).

Exemplo

{ "Status" : "SUCCESS", "RequestId" : "unique id for this create request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }

Failed (Falha)

Quando a solicitação de criação falha, uma resposta deve ser enviada para o bucket S3 com os seguintes campos:

Status

Deve ser FAILED.

Reason

Descreve o motivo de uma resposta de falha.

RequestId

Um ID exclusivo para a solicitação. Esse valor de resposta deve ser copiado literalmente com base na solicitação.

LogicalResourceId

O nome do modelo escolhido pelo desenvolvedor (ID lógico) do recurso personalizado no modelo AWS CloudFormation. Esse valor de resposta deve ser copiado literalmente com base na solicitação.

StackId

O nome do recurso da Amazon (ARN) que identifica a pilha que contém o recurso personalizado. Esse valor de resposta deve ser copiado literalmente com base na solicitação.

PhysicalResourceId

Esse valor deve ser um identificador exclusivo do fornecedor de recursos personalizados e pode ter até 1 KB de tamanho. O valor deve ser uma string não vazia e deve ser idêntico para todas as respostas do mesmo recurso.

O valor retornado para um PhysicalResourceId pode alterar as operações de atualização de recursos personalizados. Se o valor retornado for o mesmo, a atualização é considerada normal. Se o valor retornado for diferente, o AWS CloudFormation reconhece a atualização como uma substituição e envia uma solicitação de exclusão ao recurso antigo. Para ter mais informações, consulte AWS::CloudFormation::CustomResource.

Exemplo

{ "Status" : "FAILED", "Reason" : "Required failure reason string", "RequestId" : "unique id for this create request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor" }