AWS CloudFormation
User Guide (API Version 2010-05-15)
« PreviousNext »
View the PDF for this guide.Go to the AWS Discussion Forum for this product.Go to the Kindle Store to download this guide in Kindle format.Did this page help you?  Yes | No |  Tell us about it...

Update

Custom resource provider requests with RequestType set to "Update" are sent when the template developer updates a stack that contains a custom resource.

Request

Update requests contain the following fields:

RequestType

Will be "Update".

RequestId

A unique ID for the request.

ResponseURL

The response URL identifies a pre-signed Amazon S3 bucket that receives responses from the custom resource provider to AWS CloudFormation.

StackId

The Amazon Resource Name (ARN) that identifies the stack containing the custom resource.

ResourceType

The template developer-chosen resource type of the custom resource in the AWS CloudFormation template. Custom resource type names can be up to 60 characters long and can include alphanumeric and the following characters: _@-. You cannot change the type during an update.

LogicalResourceId

The template developer-chosen name (logical ID) of the custom resource in the AWS CloudFormation template.

PhysicalResourceId

A required custom resource provider-defined physical ID that is unique for that provider.

ResourceProperties

The new resource property values declared by the template developer in the updated AWS CloudFormation template.

OldResourceProperties

The resource property values that were previously declared by the template developer in the AWS CloudFormation template.

Example

{
   "RequestType" : "Update",
   "RequestId" : "unique id for this update request",
   "ResponseURL" : "pre-signed-url-for-update-response",
   "StackId" : "arn:aws:cloudformation:us-east-1: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" }
   }
}           

Responses

Success

If the custom resource provider is able to successfully update the resource, AWS CloudFormation expects status to be set to "SUCCESS" in the response.

Status

Must be "SUCCESS".

StackId

The Amazon Resource Name (ARN) that identifies the stack containing the custom resource. This response value should be copied verbatim from the request.

RequestId

A unique ID for the request. This response value should be copied verbatim from the request.

LogicalResourceId

The template developer-chosen name (logical ID) of the custom resource in the AWS CloudFormation template. This response value should be copied verbatim from the request.

PhysicalResourceId

This value should be an identifier unique to the custom resource vendor, and can be up to 1Kb in size.

Example

{
   "Status" : "SUCCESS",
   "StackId" : "arn:aws:cloudformation:us-east-1: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"
}              

Failed

If the resource cannot be updated with new set of properties, AWS CloudFormation expects the status to be set to "FAILED", along with a failure reason in the response.

Status

Must be "FAILED".

Reason

Describes the reason for a failure response.

LogicalResourceId

The template developer-chosen name (logical ID) of the custom resource in the AWS CloudFormation template. This response value should be copied verbatim from the request.

RequestId

A unique ID for the request. This response value should be copied verbatim from the request.

StackId

The Amazon Resource Name (ARN) that identifies the stack containing the custom resource. This response value should be copied verbatim from the request.

PhysicalResourceId

This value should be an identifier unique to the custom resource vendor, and can be up to 1Kb in size.

Example

{
   "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-1:namespace:stack/stack-name/guid (copied from request)",
   "PhysicalResourceId" : "custom resource provider-defined physical id"
}