Atualizar solicitação de recursos personalizados para o CloudFormation - AWS CloudFormation

Atualizar solicitação de recursos personalizados para o CloudFormation

Quando o desenvolvedor de modelos faz alterações nas propriedades de uma pilha que contém um recurso personalizado e atualiza a pilha, o CloudFormation envia uma solicitação ao provedor de recursos personalizados com RequestType definido como Update. Isso significa que o código do recurso personalizado não precisa detectar as alterações nos recursos, pois sabe que as propriedades foram alteradas quando o tipo de solicitação é Update.

Para obter uma introdução aos recursos personalizados e como eles funcionam, consulte Crie uma lógica de provisionamento personalizada com recursos personalizados.

Solicitação

Atualize solicitações que contenham os seguintes campos:

RequestType

Update.

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: _@-. Não é possível alterar o tipo durante uma atualização.

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.

PhysicalResourceId

Uma ID física definida por custom resource provider exclusiva para esse provedor.

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.

ResourceProperties

Os novos valores da propriedade do recurso que são declarados pelo desenvolvedor do modelo no modelo atualizado do CloudFormation.

OldResourceProperties

Os valores da propriedade do recurso que foram declarados anteriormente pelo desenvolvedor do modelo no modelo do CloudFormation.

Exemplo

{ "RequestType" : "Update", "RequestId" : "unique id for this update request", "ResponseURL" : "pre-signed-url-for-update-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", "PhysicalResourceId" : "custom resource provider-defined physical id", "ResourceProperties" : { "key1" : "new-string", "key2" : [ "new-list" ], "key3" : { "key4" : "new-map" } }, "OldResourceProperties" : { "key1" : "string", "key2" : [ "list" ], "key3" : { "key4" : "map" } } }

Respostas

Bem-sucedida

Se o provedor de recursos personalizados conseguir atualizar o recurso com êxito, o CloudFormation vai supor que o status esteja definido como SUCCESS na resposta.

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 update 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" : "custom resource provider-defined physical id", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }

Falha

Se não for possível atualizar o recurso com um novo conjunto de propriedades, o CloudFormation vai supor que o status esteja definido como FAILED, junto com um motivo para a falha, na resposta.

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 update 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" : "custom resource provider-defined physical id" }