カスタムリソースを含むスタックを作成すると、Resource Orchestration Service (ROS) は RequestType が Create に設定されたカスタムリソースリクエストを送信します。
リクエスト
- RequestType
このフィールドは Create に設定されます。
- ResponseURL
事前署名付きパブリックネットワーク URL。カスタムリソースプロバイダーは、この URL を使用して ROS にレスポンスを送信します。
- IntranetResponseURL
ECS インスタンス内で使用する事前署名付き内部ネットワーク URL。カスタムリソースプロバイダーは、この URL を使用して ROS にレスポンスを送信します。
- StackId
カスタムリソースを含むスタックの ID。
- StackName
カスタムリソースを含むスタックの名前。
- ResourceOwnerId
スタックを所有する Alibaba Cloud アカウントの ID。
- CallerId
スタック操作を実行するアカウントの ID。このアカウントは Alibaba Cloud アカウントまたは RAM ユーザーです。
- RegionId
カスタムリソースを含むスタックのリージョン。
- RequestId
リクエストの一意の ID。
- ResourceType
ROS テンプレートでテンプレート開発者が指定するカスタムリソースのリソースタイプ。リソースタイプは最大 68 文字で、英字、数字、アンダースコア (_)、アットマーク (@)、ハイフン (-) を使用できます。
- LogicalResourceId
ROS テンプレートでテンプレート開発者が指定するカスタムリソースの名前 (論理 ID)。
- ResourceProperties
テンプレート開発者が定義するカスタムリソースのプロパティ。このオブジェクトの構造は、カスタムリソースプロバイダーによって定義されます。
例:
{
"RequestType" : "Create",
"RequestId" : "unique id for this create request",
"ResponseURL" : "pre-signed-url-for-create-response",
"IntranetResponseURL" : "pre-signed-intranet-url-for-create-response",
"ResourceType" : "Custom::MyCustomResourceType",
"LogicalResourceId" : "name of resource in template",
"StackId" : "stack id",
"StackName" : "stack name",
"ResourceOwnerId": "resource owner id",
"CallerId": "caller id",
"RegionId": "region id",
"ResourceProperties" : {
"key1" : "string",
"key2" : [ "list" ],
"key3" : { "key4" : "map" }
}
}
レスポンス
成功
作成リクエストが成功した場合、カスタムリソースプロバイダーは次のフィールドを含むレスポンスを ROS に送信する必要があります:
- Status
このフィールドは SUCCESS に設定する必要があります。
- RequestId
リクエストの一意の ID。この値は元のリクエストからコピーする必要があります。
- LogicalResourceId
ROS テンプレートでテンプレート開発者が指定するカスタムリソースの名前 (論理 ID)。この値は元のリクエストからコピーする必要があります。
- StackId
カスタムリソースを含むスタックの ID。この値は元のリクエストからコピーする必要があります。
- PhysicalResourceId
カスタムリソースプロバイダーが提供する、リソースの一意な物理リソース ID。この値は最大 255 バイトの空でない文字列であり、かつ当該リソースに関するすべてのレスポンスで一貫している必要があります。
- Data
任意。カスタムリソースプロバイダーが定義する名前と値のペアのセット。テンプレート内で
Fn::GetAtt組み込み関数を使用して、名前でこれらの値にアクセスできます。
例:
{
"Status" : "SUCCESS",
"RequestId" : "unique id for this create request (copied from request)",
"LogicalResourceId" : "name of resource in template (copied from request)",
"StackId" : "stack id (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"
}
}
失敗
作成リクエストが失敗した場合、カスタムリソースプロバイダーは次のフィールドを含むレスポンスを ROS に送信する必要があります:
- Status
このフィールドは FAILED に設定する必要があります。
- Reason
リクエストが失敗した理由の説明。
- RequestId
リクエストの一意の ID。この値は元のリクエストからコピーする必要があります。
- LogicalResourceId
ROS テンプレートでテンプレート開発者が指定するカスタムリソースの名前 (論理 ID)。この値は元のリクエストからコピーする必要があります。
- StackId
カスタムリソースを含むスタックの ID。この値は元のリクエストからコピーする必要があります。
例:
{
"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" : "stack id (copied from request)"
}