AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

更新

RequestType 设置为 "Update" 的自定义资源提供者请求是在模板内存在对自定义资源属性的任何更改时发送的。因此,自定义资源代码不必检测更改,因为它知道其属性在调用 Update 后已更改。

请求

更新请求包含以下字段:

RequestType

将为“Update”。

请求 ID

请求的唯一 ID。

ResponseURL

响应 URL 标识预签名的 S3 存储桶,该存储桶接收 custom resource provider 到 AWS CloudFormation 的响应。

堆栈 ID

标识包含自定义资源的堆栈的 Amazon 资源名称 (ARN)。

ResourceType

AWS CloudFormation 模板中模板开发人员选择的自定义资源的资源类型。自定义资源类型名称的长度最多为 60 个字符,并且可包含字母数字字符和以下字符:_@-。在更新期间,不能更改类型。

LogicalResourceId

AWS CloudFormation 模板中 template developer 选择的自定义资源名称(逻辑 ID)。

PhysicalResourceId

custom resource provider 定义的必需物理 ID,该 ID 对于该提供程序是唯一的。

ResourceProperties

template developer 在更新后的 AWS CloudFormation 模板中声明的新资源属性值。

OldResourceProperties

template developer 以前在 AWS CloudFormation 模板中声明的资源属性值。

示例

{ "RequestType" : "Update", "RequestId" : "unique id for this update request", "ResponseURL" : "pre-signed-url-for-update-response", "StackId" : "arn:aws:cloudformation:us-east-2:namespace:stack/stack-name/guid", "ResourceType" : "Custom::MyCustomResourceType", "LogicalResourceId" : "name of resource in template", "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" } } }

响应

成功

如果custom resource provider可以成功更新资源,AWS CloudFormation 会预期响应中的状态设置为 "SUCCESS"

状态

必须为“SUCCESS”。

堆栈 ID

标识包含自定义资源的堆栈的 Amazon 资源名称 (ARN)。 此响应值应从请求中复制 verbatim

请求 ID

请求的唯一 ID。 此响应值应从请求中复制 verbatim

LogicalResourceId

AWS CloudFormation 模板中 template developer 选择的自定义资源名称(逻辑 ID)。 此响应值应从请求中复制 verbatim

PhysicalResourceId

该值应是对于自定义资源供应商具有唯一性的标识符,最大大小为 1 Kb。该值必须是非空字符串,并且在所有响应中对于相同资源必须相同。

Data

要在响应中发送的custom resource provider定义的名称-值对(可选)。您可以使用 Fn::GetAtt 在模板中按名称访问此处提供的值。

示例

{ "Status" : "SUCCESS", "StackId" : "arn:aws:cloudformation:us-east-2:namespace:stack/stack-name/guid (copied from request)", "RequestId" : "unique id for this update request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "PhysicalResourceId" : "custom resource provider-defined physical id", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }

已失败

如果无法使用新属性集更新资源,则 AWS CloudFormation 会预期响应中的状态设置为“失败”并且响应中会提供失败原因。

状态

必须为“FAILED”。

原因

描述响应失败的原因。

LogicalResourceId

AWS CloudFormation 模板中 template developer 选择的自定义资源名称(逻辑 ID)。 此响应值应从请求中复制 verbatim

请求 ID

请求的唯一 ID。 此响应值应从请求中复制 verbatim

堆栈 ID

标识包含自定义资源的堆栈的 Amazon 资源名称 (ARN)。 此响应值应从请求中复制 verbatim

PhysicalResourceId

该值应是对于自定义资源供应商具有唯一性的标识符,最大大小为 1 Kb。该值必须是非空字符串,并且在所有响应中对于相同资源必须相同。

示例

{ "Status" : "FAILED", "Reason" : "Required failure reason string", "LogicalResourceId" : "name of resource in template (copied from request)", "RequestId" : "unique id for this update request (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" }

本页内容: