すべてのプロダクト
Search
ドキュメントセンター

:UpdateStackTemplateByResources

最終更新日:Dec 16, 2025

ドリフト検出を実行して、スタックドリフトを解消します。

操作説明

制限事項:ドリフトが発生したスタックのドリフトのみを解消できます。まず、DetectStackDrift 操作を呼び出してスタックのドリフト検出を実行し、次に GetStackDriftDetectionStatus 操作を呼び出してスタックのドリフトステータスをクエリしてスタックにドリフトが発生していることを確認してから、UpdateStackTemplateByResources 操作を呼び出してドリフトを解消する必要があります。

この Topic では、ID が 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** のスタックのドリフトを解消する例を示します。このスタックは、中国 (杭州) リージョンにデプロイされています。

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

RAM 認証

下表に、この API を呼び出すために必要な認証情報を示します。認証情報は、RAM (Resource Access Management) ポリシーを使用して定義できます。以下で各列名について説明します。

  • アクション:特定のリソースに対して実行可能な操作。ポリシー構文ではAction要素として指定します。

  • API:アクションを具体的に実行するための API。

  • アクセスレベル:各 API に対して事前定義されているアクセスの種類。有効な値:create、list、get、update、delete。

  • リソースタイプ:アクションが作用するリソースの種類。リソースレベルでの権限をサポートするかどうかを示すことができます。ポリシーの有効性を確保するため、アクションの対象として適切なリソースを指定してください。

    • リソースレベルの権限を持つ API の場合、必要なリソースタイプはアスタリスク (*) でマークされます。ポリシーのResource要素で対応する ARN を指定してください。

    • リソースレベルの権限を持たない API の場合、「すべてのリソース」と表示され、ポリシーのResource要素でアスタリスク (*) でマークされます。

  • 条件キー:サービスによって定義された条件のキー。このキーにより、きめ細やかなアクセス制御が可能になります。この制御は、アクション単体に適用することも、特定のリソースに対するアクションに適用することもできます。Alibaba Cloud は、サービス固有の条件キーに加えて、すべての RAM 統合サービスに適用可能な一連の共通条件キーを提供しています。

  • 依存アクション:ある特定のアクションを実行するために、前提として実行が必要となる他のアクション。依存アクションの権限も RAM ユーザーまたは RAM ロールに付与する必要があります。

アクション

アクセスレベル

リソースタイプ

条件キー

依存アクション

ros:UpdateStackTemplateByResources

update

*stack

acs:ros:{#regionId}:{#accountId}:stack/{#stackId}

なし なし

リクエスト構文

POST /V2/UpdateStackTemplateByResources HTTP/1.1

リクエストパラメーター

パラメーター

必須 / 任意

説明

StackId

string

必須

スタックの ID。

4a6c9851-3b0f-4f5f-b4ca-a14bf691****

DryRun

boolean

任意

このリクエストで修正されたテンプレートをプレビューのみ行うかどうかを指定します。デフォルト値:false。有効な値:

  • true:修正されたテンプレートの内容を返しますが、テンプレートは修正しません。Resource Orchestration Service (ROS) は、修正されたテンプレートと元のテンプレートを比較した後、修正を実行するかどうかを決定します。

  • false:テンプレートを修正してドリフトを解消します。

説明

DryRun パラメーターを true に設定して、修正されたテンプレートをプレビューすることを推奨します。テンプレートの内容が期待どおりである場合は、DryRun パラメーターを false に設定して修正を実行してください。

false

RegionId

string

必須

スタックが属するリージョンの ID。 DescribeRegions 操作を呼び出して、最新のリージョンリストをクエリできます。

cn-hangzhou

ClientToken

string

任意

リクエストのべき等性を保証するために使用されるクライアントトークン。クライアント側で値を生成できますが、異なるリクエスト間で一意である必要があります。

トークンは最大 64 文字で、英字、数字、ハイフン (-)、アンダースコア (_) を使用できます。

詳細については、「べき等性の確保」をご参照ください。

123e4567-e89b-12d3-a456-42665544****

TemplateFormat

string

任意

返されるテンプレートのフォーマット。デフォルト値:JSON。有効な値:

  • JSON

  • YAML

JSON

LogicalResourceId

array

任意

リソースの論理 ID。

Vpc

string

任意

リソースをフィルターするために使用されるリソース N の論理 ID。テンプレートの修正は、このリスト内のリソースに対してのみ有効です。デフォルトでは、ドリフトしたすべてのリソースが修正されます。

修正対象のリソースリストに DELETED 状態のリソースが含まれている場合、ROS は、新しいテンプレートの正確性を確保するために、リストには含まれていないがリスト内の削除されたリソースを参照しているリソースを調整することがあります。

WebServer

共通リクエストパラメーターの詳細については、「共通パラメーター」をご参照ください。

レスポンスフィールド

フィールド

説明

object

RequestId

string

リクエスト ID。

B288A0BE-D927-4888-B0F7-B35EF84B6E6F

NewTemplateBody

string

修正後のテンプレート内容。

{\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test2\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}}

OldTemplateBody

string

修正前のテンプレート内容。

{\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test1\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}}

HTTP ステータスコードエラーコードエラーメッセージ説明
400StackDriftDetectionNotAvailableThere is no complete drift detection for stack ({ID}).スタックでドリフト検出が完了していないために返されるエラーメッセージ。ID はスタック ID を示します。
400StackAlreadyInSyncThis is not need to correct stack drifts, stack ({ID}) is already in sync.ドリフトが存在せず、テンプレートの修正が不要な場合に返されるエラーメッセージ。ID はスタック ID を示します。
400CorrectStackDriftsFailure{reason}スタックを修正できない場合に返されるエラーメッセージ。reason は具体的な理由を示します。
404StackNotFoundThe Stack ({name}) could not be found.指定されたスタックが存在しない場合に返されるエラーメッセージ。name はスタックの名前または ID を示します。
404ResourceNotFoundThe Resource ({name}) could not be found in Stack {stack}.指定されたスタックに指定されたリソースが存在しない場合に返されるエラーメッセージ。name はリソース名を示し、stack はスタックの名前または ID を示します。

成功レスポンス

JSONJSON

{
  "RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
  "NewTemplateBody": "{\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\", \\\"Resources\\\": {\\\"Vpc\\\": {\\\"Type\\\": \\\"ALIYUN::ECS::VPC\\\", \\\"Properties\\\": {\\\"VpcName\\\": \\\"test\\\", \\\"CidrBlock\\\": \\\"192.168.0.0/16\\\", \\\"Description\\\": \\\"test2\\\"}}}, \\\"Outputs\\\": {\\\"VpcId\\\": {\\\"Value\\\": {\\\"Fn::GetAtt\\\": [\\\"Vpc\\\", \\\"VpcId\\\"]}}}}",
  "OldTemplateBody": "{\\\"ROSTemplateFormatVersion\\\": \\\"2015-09-01\\\", \\\"Resources\\\": {\\\"Vpc\\\": {\\\"Type\\\": \\\"ALIYUN::ECS::VPC\\\", \\\"Properties\\\": {\\\"VpcName\\\": \\\"test\\\", \\\"CidrBlock\\\": \\\"192.168.0.0/16\\\", \\\"Description\\\": \\\"test1\\\"}}}, \\\"Outputs\\\": {\\\"VpcId\\\": {\\\"Value\\\": {\\\"Fn::GetAtt\\\": [\\\"Vpc\\\", \\\"VpcId\\\"]}}}}"
}

エラーコード

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。