删除对 CloudFormation 自定义资源的请求
当模板开发者删除该堆栈或从堆栈中移除该自定义资源时,CloudFormation 会向自定义资源提供者发送一条将 RequestType
设置为 Delete
的请求。要成功删除带自定义资源的堆栈,custom resource provider 必须成功响应删除请求。
有关自定义资源及其工作原理的介绍,请参阅使用自定义资源创建自定义预置逻辑。
请求
删除请求包含以下字段:
RequestType
-
Delete
. RequestId
-
请求的唯一 ID。
ResponseURL
-
响应 URL 标识一个预签名 S3 桶,该桶接收从自定义资源提供商到 AWS CloudFormation 的响应。
ResourceType
-
CloudFormation 模板中模板开发人员选择的自定义资源的资源类型。自定义资源类型名称的长度最多为 60 个字符,并且可包含字母数字字符和以下字符:
_@-
。 LogicalResourceId
-
AWS CloudFormation 模板中模板开发人员选择的自定义资源的名称(逻辑 ID)。
StackId
-
标识包含自定义资源的堆栈的 Amazon 资源名称(ARN)。
PhysicalResourceId
custom resource provider 定义的必需物理 ID,该 ID 对于该提供程序是唯一的。
为
PhysicalResourceId
返回的值可以更改自定义资源更新操作。如果返回的值相同,则将其视为正常更新。如返回的值不同,则 AWS CloudFormation 将该更新视为替换,并向旧资源发送删除请求。有关更多信息,请参阅AWS::CloudFormation::CustomResource
。ResourceProperties
-
此字段包含模板开发人员发送的
Properties
对象的内容。其内容由自定义资源提供商定义。
示例
{
"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" }
}
}
响应
成功
删除请求成功时,必须向 S3 存储桶发送包含以下字段的响应:
Status
-
必须是
SUCCESS
。 RequestId
-
请求的唯一 ID。应从该请求逐字复制此响应值。
LogicalResourceId
-
AWS CloudFormation 模板中模板开发人员选择的自定义资源的名称(逻辑 ID)。应从该请求逐字复制此响应值。
StackId
-
标识包含自定义资源的堆栈的 Amazon 资源名称(ARN)。应从该请求逐字复制此响应值。
PhysicalResourceId
该值应该为自定义资源供应商的唯一标识符,并且最大为 1KB。该值必须为非空字符串,并且对于同一资源的所有响应都必须相同。
为
PhysicalResourceId
返回的值可以更改自定义资源更新操作。如果返回的值相同,则将其视为正常更新。如返回的值不同,则 AWS CloudFormation 将该更新视为替换,并向旧资源发送删除请求。有关更多信息,请参阅AWS::CloudFormation::CustomResource
。
示例
{
"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"
}
失败
删除请求失败时,必须向 S3 存储桶发送包含以下字段的响应:
示例
{
"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"
}