Actualización - AWS CloudFormation

Actualización

Cuando el desarrollador de la plantilla realiza cambios en las propiedades de un recurso personalizado dentro de la plantilla y actualiza la pila, CloudFormation envía una solicitud al proveedor del recurso personalizado con RequestType establecido en Update. Esto significa que el código de su recurso personalizado no tiene que detectar cambios en los recursos, porque sabe que sus propiedades cambiaron cuando el tipo de solicitud es Update.

Para obtener una introducción a los recursos personalizados y a su funcionamiento, consulte Crear una lógica de aprovisionamiento personalizada con recursos personalizados.

Solicitud

Actualice solicitudes que contengan los siguientes campos:

RequestType

Update.

RequestId

Un ID único para la solicitud.

ResponseURL

La URL de respuesta identifica un bucket de S3 prefirmado que recibe respuestas del proveedor de recursos personalizados para AWS CloudFormation.

ResourceType

El tipo de recurso elegido por el desarrollador de plantillas del recurso personalizado en la plantilla de CloudFormation. Los nombres de tipos de recursos personalizados pueden tener una longitud máxima de 60 caracteres y pueden incluir caracteres alfanuméricos y los siguientes caracteres: _@-. No puede cambiar el tipo durante una actualización.

LogicalResourceId

El nombre elegido por el desarrollador de la plantilla (ID lógico) del recurso personalizado en la plantilla de AWS CloudFormation.

StackId

El nombre de recurso de Amazon (ARN) que identifica la pila que contiene el recurso personalizado.

PhysicalResourceId

Un ID físico necesario con definición custom resource provider que es exclusivo de dicho proveedor.

El valor devuelto para un PhysicalResourceId puede cambiar las operaciones de actualización de recursos personalizadas. Si el valor devuelto es el mismo, se considera una actualización normal. Si el valor es diferente, AWS CloudFormation reconoce la actualización como un reemplazo y envía una solicitud de eliminación al antiguo recurso. Para obtener más información, consulte AWS::CloudFormation::CustomResource.

ResourceProperties

Los nuevos valores de propiedades de recursos declarados por el desarrollador de plantillas en la plantilla actualizada de CloudFormation.

OldResourceProperties

Los valores de propiedades de recursos declarados con anterioridad por el desarrollador de plantillas en la plantilla de CloudFormation.

Ejemplo

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

Respuestas

Success

Si el proveedor de recursos personalizados puede actualizar correctamente el recurso, CloudFormation espera que el estado se establezca en SUCCESS en la respuesta.

Status

Debe ser SUCCESS.

RequestId

Un ID único para la solicitud. Este valor de respuesta debe copiarse literalmente de la solicitud.

LogicalResourceId

El nombre elegido por el desarrollador de la plantilla (ID lógico) del recurso personalizado en la plantilla de AWS CloudFormation. Este valor de respuesta debe copiarse literalmente de la solicitud.

StackId

El nombre de recurso de Amazon (ARN) que identifica la pila que contiene el recurso personalizado. Este valor de respuesta debe copiarse literalmente de la solicitud.

PhysicalResourceId

Este valor debe ser un identificador exclusivo del proveedor de recursos personalizados y puede tener un tamaño máximo de 1 KB. El valor debe ser una cadena que no esté vacía y debe ser idéntica para todas las respuestas del mismo recurso.

El valor devuelto para un PhysicalResourceId puede cambiar las operaciones de actualización de recursos personalizadas. Si el valor devuelto es el mismo, se considera una actualización normal. Si el valor es diferente, AWS CloudFormation reconoce la actualización como un reemplazo y envía una solicitud de eliminación al antiguo recurso. Para obtener más información, consulte AWS::CloudFormation::CustomResource.

NoEcho

Opcional. Indique si se enmascara la salida del recurso personalizado cuando se recupera con la función Fn::GetAtt. Si se establece en true, todos los valores devueltos se enmascaran con asteriscos (*****), excepto los que se almacenan en la sección Metadata de la plantilla. AWS CloudFormation no transforma, modifica ni redacta ninguna información que incluya en la sección Metadata. El valor predeterminado es false.

Para obtener más información sobre el uso de NoEcho para enmascarar información confidencial, consulte la práctica recomendada de No integre credenciales en sus plantillas.

Data

Opcional. Los pares de nombre-valor definidos por el proveedor de recursos personalizados que se enviarán con la respuesta. Puede acceder a los valores proporcionados aquí por nombre en la plantilla con Fn::GetAtt.

importante

Si los pares nombre-valor contienen información confidencial, debe usar el campo NoEcho para enmascarar la salida del recurso personalizado. De lo contrario, los valores son visibles a través de las API que muestran valores de propiedades (como DescribeStackEvents).

Ejemplo

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

Con error

Si el recurso no puede actualizarse con un nuevo conjunto de propiedades, CloudFormation espera que el estado se establezca en FAILED, junto con un motivo de error en la respuesta.

Status

Debe ser FAILED.

Reason

Describe el motivo de una respuesta de error.

RequestId

Un ID único para la solicitud. Este valor de respuesta debe copiarse literalmente de la solicitud.

LogicalResourceId

El nombre elegido por el desarrollador de la plantilla (ID lógico) del recurso personalizado en la plantilla de AWS CloudFormation. Este valor de respuesta debe copiarse literalmente de la solicitud.

StackId

El nombre de recurso de Amazon (ARN) que identifica la pila que contiene el recurso personalizado. Este valor de respuesta debe copiarse literalmente de la solicitud.

PhysicalResourceId

Este valor debe ser un identificador exclusivo del proveedor de recursos personalizados y puede tener un tamaño máximo de 1 KB. El valor debe ser una cadena que no esté vacía y debe ser idéntica para todas las respuestas del mismo recurso.

El valor devuelto para un PhysicalResourceId puede cambiar las operaciones de actualización de recursos personalizadas. Si el valor devuelto es el mismo, se considera una actualización normal. Si el valor es diferente, AWS CloudFormation reconoce la actualización como un reemplazo y envía una solicitud de eliminación al antiguo recurso. Para obtener más información, consulte AWS::CloudFormation::CustomResource.

Ejemplo

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