作成
カスタムリソースを含むスタックを template developer が作成するときに、RequestType
が Create
に設定されているカスタムリソースプロバイダーリクエストが送信されます。
リクエスト
作成リクエストには、以下のフィールドが含まれています。
- RequestType
-
Create
. - RequestId
-
リクエストの一意の ID。
- ResponseURL
-
応答 URL は、カスタムリソースプロバイダーから AWS CloudFormation への応答を受信する署名済み S3 バケットを識別します。
- ResourceType
-
AWS CloudFormation テンプレート内のカスタムリソースに対し、テンプレートの開発者が選択したリソースタイプ。カスタムリソースタイプの名前は、60 文字までの長さで指定できます。また、英数字や記号
_@-
を含めることができます。 - LogicalResourceId
-
AWS CloudFormation テンプレートで開発者が選択したカスタムリソースの名前 (論理 ID)。
- StackId
-
カスタムリソースを含むスタックを識別する Amazon リソースネーム (ARN)。
- ResourceProperties
-
このフィールドにはテンプレート開発者によって送信された
Properties
オブジェクトの内容が含まれます。その内容は、カスタムリソースプロバイダーによって定義されます。
例
{ "RequestType" : "Create", "RequestId" : "unique id for this create request", "ResponseURL" : "pre-signed-url-for-create-response", "ResourceType" : "Custom::MyCustomResourceType", "LogicalResourceId" : "name of resource in template", "StackId" : "arn:aws:cloudformation:us-east-2:namespace:stack/stack-name/guid", "ResourceProperties" : { "key1" : "string", "key2" : [ "list" ], "key3" : { "key4" : "map" } } }
レスポンス
成功
作成リクエストが成功したときは、次のフィールドを含んだレスポンスを Amazon S3 バケットに送信する必要があります。
- ステータス
-
SUCCESS
を指定してください。 - RequestId
-
リクエストの一意の ID。この応答値は、リクエストから逐語的にコピーする必要があります。
- LogicalResourceId
-
AWS CloudFormation テンプレートで開発者が選択したカスタムリソースの名前 (論理 ID)。この応答値は、リクエストから逐語的にコピーする必要があります。
- StackId
-
カスタムリソースを含むスタックを識別する Amazon リソースネーム (ARN)。この応答値は、リクエストから逐語的にコピーする必要があります。
- PhysicalResourceId
-
この値は、カスタムリソースベンダーに固有の識別子である必要があり、サイズは最大 1 KB までです。値は空でない文字列でなければならず、同じリソースに対するすべての応答で同一である必要があります。
PhysicalResourceId
に返された値は、カスタムリソース更新オペレーションを変更できます。返される値が同じであれば、通常の更新と見なされます。返された値が異なる場合には、AWS CloudFormation は新しい方が更新用のものであると認識し、古いリソースに削除リクエストを送信します。詳細については、「AWS::CloudFormation::CustomResource
」を参照してください。 - NoEcho
-
オプション。
Fn::GetAtt
関数を使用して取得したときに、カスタムリソースの出力をマスクするかどうかを示します。true
に設定すると、テンプレートのMetadata
セクションに格納されているものを除き、すべての戻り値がアスタリスク (*****) でマスクされる。AWS CloudFormation は、Metadata
セクションに含まれる情報を変換、変更、または編集しません。デフォルト値はfalse
です。NoEcho
を使用して機密情報をマスクする方法の詳細については、「テンプレートに認証情報を埋め込まない」ベストプラクティスを参照してください。 - [データ]
-
オプション。レスポンスで送信するカスタムリソースプロバイダー定義の名前と値のペア。ここで提供されている値には、
Fn::GetAtt
を使用してテンプレートの名前でアクセスできます。重要
名前と値のペアに機密情報が含まれている場合は、
NoEcho
フィールドを使用して、カスタムリソースの出力をマスクします。それ以外の場合は、プロパティ値 (DescribeStackEvents
など) を表示する API を通じて値が表示されます。
例
{ "Status" : "SUCCESS", "RequestId" : "unique id for this create request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-east-2:namespace:stack/stack-name/guid (copied from request)", "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }
[失敗]
作成リクエストが失敗したときは、次のフィールドを含んだレスポンスを S3 バケットに送信する必要があります。
- ステータス
-
FAILED
を指定してください。 - 理由
-
失敗応答の理由を説明します。
- RequestId
-
リクエストの一意の ID。この応答値は、リクエストから逐語的にコピーする必要があります。
- LogicalResourceId
-
AWS CloudFormation テンプレートで開発者が選択したカスタムリソースの名前 (論理 ID)。この応答値は、リクエストから逐語的にコピーする必要があります。
- StackId
-
カスタムリソースを含むスタックを識別する Amazon リソースネーム (ARN)。この応答値は、リクエストから逐語的にコピーする必要があります。
- PhysicalResourceId
-
この値は、カスタムリソースベンダーに固有の識別子である必要があり、サイズは最大 1 KB までです。値は空でない文字列でなければならず、同じリソースに対するすべての応答で同一である必要があります。
PhysicalResourceId
に返された値は、カスタムリソース更新オペレーションを変更できます。返される値が同じであれば、通常の更新と見なされます。返された値が異なる場合には、AWS CloudFormation は新しい方が更新用のものであると認識し、古いリソースに削除リクエストを送信します。詳細については、「AWS::CloudFormation::CustomResource
」を参照してください。
例
{ "Status" : "FAILED", "Reason" : "Required failure reason string", "RequestId" : "unique id for this create request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-east-2:namespace:stack/stack-name/guid (copied from request)", "PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor" }