CloudFormation カスタムリソースの削除リクエスト - AWS CloudFormation

CloudFormation カスタムリソースの削除リクエスト

テンプレート開発者がスタックを削除するか、スタックからカスタムリソースを削除すると、CloudFormation は RequestTypeDelete に設定して custom resource provider にリクエストを送信します。カスタムリソースを持つスタックを正常に削除するには、削除リクエストに対して custom resource provider が適切に応答する必要があります。

カスタムリソースとその仕組みの概要については、「カスタムリソースを使用してカスタムプロビジョニングロジックを作成する」を参照してください。

リクエスト

削除リクエストには、以下のフィールドが含まれています。

RequestType

Delete.

RequestId

リクエストの一意の ID。

ResponseURL

応答 URL は、custom resource provider から AWS CloudFormation への応答を受信する署名済み S3 バケットを識別します。

ResourceType

CloudFormation テンプレート内のカスタムリソースに対し、テンプレートのデベロッパーが選択したリソースタイプ。カスタムリソースタイプの名前は、60 文字までの長さで指定できます。また、英数字や記号 _@- を含めることができます。

LogicalResourceId

AWS CloudFormation テンプレートで開発者が選択したカスタムリソースの名前 (論理 ID)。

StackId

カスタムリソースを含むスタックを識別する Amazon リソースネーム (ARN)。

PhysicalResourceId

custom resource provider によって定義された、プロバイダーで一意となる物理 ID (必須)。

PhysicalResourceId に返された値は、カスタムリソース更新オペレーションを変更できます。返される値が同じであれば、通常の更新と見なされます。返された値が異なる場合には、AWS CloudFormation は新しい方が更新用のものであると認識し、古いリソースに削除リクエストを送信します。詳細については、「AWS::CloudFormation::CustomResource」を参照してください。

ResourceProperties

このフィールドにはテンプレート開発者によって送信された Properties オブジェクトの内容が含まれます。その内容は、custom resource provider によって定義されます。

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

レスポンス

Success (成功)

削除リクエストが成功したときは、次のフィールドを含んだレスポンスを S3 バケットに送信する必要があります。

Status

SUCCESS を指定してください。

RequestId

リクエストの一意の ID。この応答値は、リクエストから逐語的にコピーする必要があります。

LogicalResourceId

AWS CloudFormation テンプレートで開発者が選択したカスタムリソースの名前 (論理 ID)。この応答値は、リクエストから逐語的にコピーする必要があります。

StackId

カスタムリソースを含むスタックを識別する Amazon リソースネーム (ARN)。この応答値は、リクエストから逐語的にコピーする必要があります。

PhysicalResourceId

この値は、カスタムリソースベンダーに固有の識別子である必要があり、サイズは最大 1 KB までです。値は空でない文字列でなければならず、同じリソースに対するすべての応答で同一である必要があります。

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

失敗の理由。

RequestId

削除リクエストからコピーされた RequestId 値。

LogicalResourceId

削除リクエストからコピーされた LogicalResourceId 値。

StackId

削除リクエストからコピーされた StackId 値。

PhysicalResourceId

custom resource provider によって定義された、プロバイダーで一意となる物理 ID (必須)。

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