Atualização - AWS CloudFormation

Atualização

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

Uma ID exclusiva para a solicitação.

ResponseURL

O URL de resposta identifica um bucket do S3 pré-assinado que recebe respostas do custom resource provider 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 escolhido por template developer (ID lógica) do recurso personalizado no modelo do AWS CloudFormation.

StackId

O Amazon Resource Name (ARN – Nome de recurso da Amazon) que identifica a pilha contendo o recurso personalizado.

PhysicalResourceId

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

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 template developer 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 custom resource provider for capaz de atualizar com êxito o recurso, o AWS CloudFormation esperará que o status seja definido como SUCCESS na resposta.

Status

Deve ser SUCCESS.

RequestId

Uma ID exclusiva para a solicitação. Esse valor de resposta deve ser copiado textualmente da solicitação.

LogicalResourceId

O nome escolhido por template developer (ID lógica) do recurso personalizado no modelo do AWS CloudFormation. Esse valor de resposta deve ser copiado textualmente da solicitação.

StackId

O Amazon Resource Name (ARN – Nome de recurso da Amazon) que identifica a pilha contendo o recurso personalizado. Esse valor de resposta deve ser copiado textualmente da solicitação.

PhysicalResourceId

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

NoEcho

Optional. Indica se é necessário mascarar a saída do recurso personalizado quando recuperada usando-se a função Fn::GetAtt. Se definida como true, todos os valores retornados serão mascarados com asteriscos (*****), exceto os 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

Optional. Os pares nome/valor definidos pelo custom resource provider a serem enviados com a resposta. Você pode acessar os valores fornecidos aqui por no modelo com Fn::GetAtt.

Importante

Caso os pares nome/valor contenham informações confidenciais, você deve usar o campo NoEcho para mascarar a saída do recurso personalizado. Do contrário, os valores permanecerão visíveis por meio de APIs mostrando valores de propriedade (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"
   }
}

Reprovada

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

Status

Deve ser FAILED.

Motivo

Descreve o motivo de uma falha na resposta.

RequestId

Uma ID exclusiva para a solicitação. Esse valor de resposta deve ser copiado textualmente da solicitação.

LogicalResourceId

O nome escolhido por template developer (ID lógica) do recurso personalizado no modelo do AWS CloudFormation. Esse valor de resposta deve ser copiado textualmente da solicitação.

StackId

O Amazon Resource Name (ARN – Nome de recurso da Amazon) que identifica a pilha contendo o recurso personalizado. Esse valor de resposta deve ser copiado textualmente da solicitação.

PhysicalResourceId

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

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"
}