Atualizar - AWS CloudFormation

Atualizar

As solicitações do provedor de recursos personalizados com RequestType definido como Update são enviadas quando há qualquer alteração nas propriedades do recurso personalizado no modelo. Portanto, o código de recurso personalizado não precisa detectar alterações porque sabe que suas propriedades foram alteradas ao chamar a Atualização.

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 modelo de tipo de recurso escolhido por desenvolvedor do recurso personalizado no modelo AWS 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 declarados pelo template developer no modelo atualizado do AWS CloudFormation.

OldResourceProperties

Os valores da propriedade de recurso declarados anteriormente pelo desenvolvedor de modelos no modelo do AWS 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-east-2:namespace:stack/stack-name/guid",
   "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 for capaz de atualizar com êxito o recurso, o AWS CloudFormation esperará 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 o uso de NoEcho para mascarar informações confidenciais, consulte a melhor prática Não incorporar credenciais em seus modelos.

Dados

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-east-2:namespace:stack/stack-name/guid (copied from request)",
   "PhysicalResourceId" : "custom resource provider-defined physical id",
   "Data" : {
      "keyThatCanBeUsedInGetAtt1" : "data for key 1",
      "keyThatCanBeUsedInGetAtt2" : "data for key 2"
   }
}

Com falha

Se o recurso não puder ser atualizado com um novo conjunto de propriedades, o AWS CloudFormation esperará que o status esteja definido como FAILED junto com um motivo da falha na resposta.

Status

Deve ser FAILED.

Motivo

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-east-2:namespace:stack/stack-name/guid (copied from request)",
   "PhysicalResourceId" : "custom resource provider-defined physical id"
}