作成
カスタムリソースを含むスタックを template developer が作成するときに、RequestType
が "Create"
に設定されているカスタムリソースプロバイダーリクエストが送信されます。
リクエスト
作成リクエストには、以下のフィールドが含まれています。
- RequestType
-
"Create" になります。
- RequestId
-
リクエストの一意の ID。
- ResponseURL
-
応答 URL は、custom resource providerから AWS CloudFormation への応答を受信した署名済み S3 バケットを識別します。
- ResourceType
-
AWS CloudFormation テンプレート内のカスタムリソースに対し、テンプレートの開発者が選択したリソースタイプ。カスタムリソースタイプの名前は、60 文字までの長さで指定できます。また、英数字や記号
_@-
を含めることができます。 - LogicalResourceId
-
AWS CloudFormation テンプレートで、template developerによって選択されたカスタムリソースの名前 (論理 ID)。
- StackId
-
カスタムリソースを含むスタックを識別する Amazon Resource Name (ARN)。
- ResourceProperties
-
このフィールドには、template developerが送信した
Properties
オブジェクトのコンテンツが含まれます。このコンテンツはcustom resource providerによって定義されます。
例
{ "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" } } }
レスポンス
成功
作成リクエストが成功したときは、次のフィールドを含んだレスポンスを S3 バケットに送信する必要があります。
- ステータス
-
"SUCCESS" である必要があります。
- RequestId
-
リクエストの一意の ID。 このレスポンス値は、リクエストからそのままコピーする必要があります。
- LogicalResourceId
-
AWS CloudFormation テンプレートで、template developerによって選択されたカスタムリソースの名前 (論理 ID)。 このレスポンス値は、リクエストからそのままコピーする必要があります。
- StackId
-
カスタムリソースを含むスタックを識別する Amazon Resource Name (ARN)。 このレスポンス値は、リクエストからそのままコピーする必要があります。
- PhysicalResourceId
-
この値は、カスタムリソースベンダーに一意な識別子である必要があり、サイズは最大 1 KB まで可能です。値は空以外の文字列で、同じリソースのすべての応答で同一である必要があります。
- NoEcho
-
オプション。
Fn::GetAtt
関数を使用してカスタムリソースの出力を取得したときに、それをマスクするかどうかを示します。true
に設定した場合、返されるすべての値はアスタリスク (*****) でマスクされます。デフォルト値はfalse
です。 - データ
-
オプション。応答で送信される、custom resource providerによって定義された名前と値のペア。ここで指定する値には、
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" } }
Failed
作成リクエストが失敗したときは、次のフィールドを含んだレスポンスを S3 バケットに送信する必要があります。
- ステータス
-
"FAILED" である必要があります。
- 理由
-
失敗応答の理由を説明します。
- RequestId
-
リクエストの一意の ID。 このレスポンス値は、リクエストからそのままコピーする必要があります。
- LogicalResourceId
-
AWS CloudFormation テンプレートで、template developerによって選択されたカスタムリソースの名前 (論理 ID)。 このレスポンス値は、リクエストからそのままコピーする必要があります。
- StackId
-
カスタムリソースを含むスタックを識別する Amazon Resource Name (ARN)。 このレスポンス値は、リクエストからそのままコピーする必要があります。
- PhysicalResourceId
-
この値は、カスタムリソースベンダーに一意な識別子である必要があり、サイズは最大 1 KB まで可能です。値は空以外の文字列で、同じリソースのすべての応答で同一である必要があります。
例
{ "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" }