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 comotrue
, todos os valores retornados serão mascarados com asteriscos (*****), exceto os armazenados na seçãoMetadata
do modelo. O AWS CloudFormation não transforma, modifica nem edita nenhuma informação incluída na seçãoMetadata
. 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 (comoDescribeStackEvents
).
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"
}