Eliminación de una solicitud de recursos personalizados de CloudFormation
Cuando el desarrollador de la plantilla elimina la pila o elimina el recurso personalizado de la pila, CloudFormation envía una solicitud al proveedor del recurso personalizado con RequestType
establecido en Delete
. Para poder eliminar correctamente una pila con un recurso personalizado, el custom resource provider debe responder correctamente a una solicitud de eliminación.
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
Elimine las solicitudes que contienen los siguientes campos:
RequestType
-
Delete
. 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:
_@-
. 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, consulteAWS::CloudFormation::CustomResource
.ResourceProperties
-
Este campo contiene el contenido del objeto
Properties
enviado por el desarrollador de la plantilla. El proveedor de recursos personalizado define su contenido.
Ejemplo
{
"RequestType" : "Delete",
"RequestId" : "unique id for this delete request",
"ResponseURL" : "pre-signed-url-for-delete-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" : "string",
"key2" : [ "list" ],
"key3" : { "key4" : "map" }
}
}
Respuestas
Success
Cuando la solicitud de eliminación se realiza correctamente, se debe enviar una respuesta al bucket de S3 con los siguientes campos:
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, consulteAWS::CloudFormation::CustomResource
.
Ejemplo
{
"Status" : "SUCCESS",
"RequestId" : "unique id for this delete 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"
}
Con error
Cuando la solicitud de eliminación se realiza incorrectamente, se debe enviar una respuesta al bucket de S3 con los siguientes campos:
Status
-
Debe ser
FAILED
. Reason
-
El motivo del error.
RequestId
-
El valor
RequestId
copiado de la solicitud de eliminación. LogicalResourceId
-
El valor
LogicalResourceId
copiado de la solicitud de eliminación. StackId
-
El valor
StackId
copiado de la solicitud de eliminación. PhysicalResourceId
-
Un ID físico obligatorio definido por el proveedor de recursos personalizados que es exclusivo de dicho proveedor.
Ejemplo
{
"Status" : "FAILED",
"Reason" : "Required failure reason string",
"RequestId" : "unique id for this delete 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"
}