テンプレート開発者がカスタムリソースを含むスタックを作成すると、Resource Orchestration Service (ROS) はカスタムリソースプロバイダーにリクエストを送信します。リクエスト内の RequestType フィールドは Create に設定されます。
リクエスト
作成リクエストには、次のフィールドが含まれています。
RequestType
このフィールドは Create に設定されます。
ResponseURL
署名付きパブリック URL。この URL は、カスタムリソースプロバイダーから ROS へのレスポンスを受信します。
IntranetResponseURL
署名付き内部 URL。この URL は Elastic Compute Service (ECS) で使用できます。この URL は、カスタムリソースプロバイダーから ROS へのレスポンスを受信します。
StackId
カスタムリソースを含むスタックの ID。
StackName
カスタムリソースを含むスタックの名前。
ResourceOwnerId
カスタムリソースを含むスタックが属する Alibaba Cloud アカウントの ID。
CallerId
この操作の実行に使用される Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの ID。
RegionId
カスタムリソースを含むスタックのリージョン ID。
RequestId
リクエストの一意の ID。
ResourceType
テンプレート開発者がテンプレート内のカスタムリソースに対して選択したリソースタイプ。カスタムリソースタイプの名前は最大 68 文字で、文字、数字、アンダースコア (_)、アットマーク (@)、ハイフン (-) を使用できます。
LogicalResourceId
テンプレート開発者がテンプレート内のカスタムリソースに指定した名前 (論理 ID)。
ResourceProperties
このフィールドには、テンプレート開発者によって送信されたリクエストの Properties セクションのパラメーターが含まれています。コンテンツはカスタムリソースプロバイダーによって定義されます。
例:
{
"RequestType" : "Create",
"RequestId" : "unique id for this create request", // この作成リクエストの一意のID
"ResponseURL" : "pre-signed-url-for-create-response", // 作成レスポンス用の署名付きURL
"IntranetResponseURL" : "pre-signed-intranet-url-for-create-response", // 作成レスポンス用の署名付きイントラネットURL
"ResourceType" : "Custom::MyCustomResourceType", // カスタムリソースタイプ
"LogicalResourceId" : "name of resource in template", // テンプレート内のリソース名
"StackId" : "stack id", // スタックID
"StackName" : "stack name", // スタック名
"ResourceOwnerId": "resource owner id", // リソース所有者ID
"CallerId": "caller id", // 呼び出し元ID
"RegionId": "region id", // リージョンID
"ResourceProperties" : {
"key1" : "string", // 文字列
"key2" : [ "list" ], // リスト
"key3" : { "key4" : "map" } // マップ
}
}レスポンス
成功
作成リクエストが送信されると、カスタムリソースプロバイダーは次のフィールドを含むレスポンスを ROS に送信する必要があります。
Status
SUCCESS のみ返されます。
RequestId
リクエストの一意の ID。このレスポンス値はリクエストからコピーする必要があります。
LogicalResourceId
テンプレート開発者がテンプレート内のカスタムリソースに指定した名前 (論理 ID)。このレスポンス値はリクエストからコピーする必要があります。
StackId
カスタムリソースを含むスタックの ID。このレスポンス値はリクエストからコピーする必要があります。
PhysicalResourceId
この値は、カスタムリソースプロバイダーに対して一意である必要があります。値は最大 255 バイトです。値は空の文字列にすることはできず、すべてのレスポンスで同じリソースに対して同一である必要があります。
Data
オプション。レスポンスで送信される名前と値のペア。Fn::GetAtt 関数を使用して、テンプレート内の名前でここで提供される値にアクセスできます。
例:
{
"Status" : "SUCCESS", // 成功
"RequestId" : "unique id for this create request (copied from request)", // この作成リクエストの一意のID (リクエストからコピー)
"LogicalResourceId" : "name of resource in template (copied from request)", // テンプレート内のリソース名 (リクエストからコピー)
"StackId" : "stack id (copied from request)", // スタックID (リクエストからコピー)
"PhysicalResourceId" : "required vendor-defined physical id that is unique for that vendor", // ベンダー定義の物理ID (そのベンダーに固有のもの)
"Data" : {
"keyThatCanBeUsedInGetAtt1" : "data for key 1", // キー1のデータ (GetAttで使用可能)
"keyThatCanBeUsedInGetAtt2" : "data for key 2" // キー2のデータ (GetAttで使用可能)
}
}失敗
作成リクエストが失敗した場合、カスタムリソースプロバイダーは次のフィールドを含むレスポンスを ROS に送信する必要があります。
Status
FAILED のみ返されます。
Reason
レスポンスが失敗した理由。
RequestId
リクエストの一意の ID。このレスポンス値はリクエストからコピーする必要があります。
LogicalResourceId
テンプレート開発者がテンプレート内のカスタムリソースに指定した名前 (論理 ID)。このレスポンス値はリクエストからコピーする必要があります。
StackId
カスタムリソースを含むスタックの ID。このレスポンス値はリクエストからコピーする必要があります。
例:
{
"Status" : "FAILED", // 失敗
"Reason" : "Required failure reason string", // 失敗理由の文字列
"RequestId" : "unique id for this create request (copied from request)", // この作成リクエストの一意のID (リクエストからコピー)
"LogicalResourceId" : "name of resource in template (copied from request)", // テンプレート内のリソース名 (リクエストからコピー)
"StackId" : "stack id (copied from request)" // スタックID (リクエストからコピー)
}