CloudFormation の変更セットエラーを解決する方法を教えてください。

所要時間2分
0

AWS CloudFormation スタックにリソースをインポートしようとすると、エラーが表示されます。

解決策

エラーの種類に応じて関連するセクションの手順を実行し、問題をトラブルシューティングします。

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、必ず AWS CLI の最新バージョンを使用してください。

変更セットのエラー

**エラー: 「この変更セットの作成中にエラーが発生しました。**As part of the import operation, you cannot modify or add [Outputs]」

このエラーは、リソースをスタックにインポートするときに発生します。また、CloudFormation コンソールからの出力を含むリソースインポートテンプレートを使用して、新しいスタックを作成する際にも発生します。問題をトラブルシューティングするには、次の手順に従ってください。

  • 最新の CloudFormation テンプレートの [出力] セクションと、スタックで使用しているテンプレートを比較します。両方のテンプレートの [出力] セクションの値は同じでなければなりません。同じでない場合は、現在のテンプレートの [出力] セクションの値と出力と一致するように最新のテンプレートを更新してください。
    **重要:**インポート操作では、[出力] の [論理 ID]、[説明]、[]、[エクスポート]、およびその他のプロパティに追加や変更を加えることはできません。
  • インポート操作が完了したら、[出力] 設定で必要な変更を加えてスタックを更新します。

スタック属性の検証エラー

エラー: 「An error occurred (ValidationError) when calling the CreateChangeSet operation: As part of the import operation, you cannot modify or add [Tags]」

このエラーは、AWS CLI または AWS SDK を使用して、変更された、または追加されたスタック属性を含む「IMPORT」タイプの変更セットを作成する際に発生します。

  • 変更セットの作成操作に含まれるスタック属性がスタックの現在の属性値と同期していることを確認します。
    重要: 新しい属性値は更新または追加しないでください。
  • リソースをインポートしたら、別の更新操作で属性を更新します。

変更されたリソースのエラー

エラー: 「この変更セットの作成中にエラーが発生しました。You have modified resources [ResourceName] in your template that are not being imported.Update, create or delete operations cannot be executed during import operations.」

このエラーは、リソースのインポート操作中に既存のリソースを変更したときに発生します。インポート操作では、リソースを作成、更新、削除できません。問題をトラブルシューティングするには、次の手順に従ってください。

  • 「IMPORT」タイプの変更セットではなく、「UPDATE」タイプの変更セットを作成します。これにより、リソースの変更のソースが表示されます。
  • 既存のリソースにも同じリソース仕様を使用して、テンプレートにインポートする適切なリソースのみを追加します。

「リストをインポートするためのリソースのエラー

以下のエラーは一般的に、AWS CLI または AWS SDK を使用して「IMPORT」タイプの変更セットを作成する場合に発生します。

エラー: 「An error occurred (ValidationError) when calling the CreateChangeSet operation: Resources [<ResourceName>] is missing from ResourceToImport list」

CloudFormation テンプレートで、スタックにインポートするすべてのリソースについて、物理 ID を ResourceToImport プロパティに渡していることを確認します。

エラー: 「An error occurred (ValidationError) when calling the CreateChangeSet operation: Must Provide at least one resource to import」

AWS CLI コマンドに --resources-to-import、または API コールに ResourceToImport が含まれていることを確認してください。また、インポートするリソースをすべて一覧表示してください。
**重要:**インポートするには、すべての新しいリソースに物理 ID を渡す必要があります。

IAM 機能が原因のエラー

「Error: Failed to create changeset for the stack: <StackName>, ex: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state: For expression "Status" we matched expected path: "FAILED" Status: FAILED.Reason: Requires capabilities: [CAPABILITY_NAMED_IAM]"

問題をトラブルシューティングするには、次の手順に従ってください。

  1. AWS CloudFormation コンソールを開きます。
  2. スタック作成またはスタック更新のウィザードの [レビュー] ページで、[I acknowledge that this template may create IAM resources] を選択します。
  3. AWS CLI で create-stackupdate-stack コマンドを使用する際に、--capabilities パラメータに「CAPABILITY_IAM」または「CAPABILITY_NAMED_IAM」を指定します。
    **注:**テンプレートに AWS Identity and Access Management (IAM) リソースが含まれている場合は、どちらも指定できます。テンプレートに IAM リソースのカスタム名が含まれている場合は、「CAPABILITY\ _NAMED\ _IAM」を指定する必要があります。

スタックの更新操作中の「no changes submitted」によるエラー

エラー: 「The submitted information didn't contain changes.「Submit different information to create a change」 または 「An error occurred (ValidationError) when calling the UpdateStack operation:」: 更新は実行されません。」

このエラーは、スタックの更新で同じスタックテンプレートを使用した場合に発生します。また、リソースプロパティを変更せず、パラメータ値、もしくはスタックの説明のみを変更しようとした場合にも発生します。CloudFormation はそれを変更とは見なさず、変更セットの作成が失敗します。

ExecuteChangeSet API コールのエラー

エラー: 「Either DisableRollback or OnStackFailure can be specified, but not both.Validation error as OnStackFailure parameter was specified during CreateChangeSet.」

OnFailure または DisableRollback のいずれかを指定できますが、両方は指定できません。これを解決するには、コマンドの OnStackFailure プロパティを削除し、新しい変更セットを作成して実行します。または、ロールバックオプションをオンにしてから、現在の変更セットを実行してスタックを更新します。

変更セットのコンソールの入力と形式の不一致によるエラー

エラー: 「Given input did not match expected format」

このエラーは通常、CloudFormation テンプレートの構文の問題が原因で発生します。テンプレートの構文に、JOIN 関数の形式、余分な文字、または余分な二重引用符がないか確認してください。また、AWS Systemss Manager Agent (SSM Agent) パラメータなどのリソースも確認してください。構文エラーの解決について詳しくは、「CloudFormation のテンプレートの検証とテンプレートの形式に関するエラーの解決方法を教えてください」を参照してください。

関連情報

既存のリソースからのスタックの作成

既存のリソースのスタックへのインポート

インポート操作とドリフト検出操作をサポートするリソース

既存リソースを CloudFormation 管理に取り込む

AWS CloudFormation テンプレートでの IAM リソースの承認

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ