GenUを削除する際、手順に書かれたコマンドを実行した際に以下のエラーが発生しました。手順通りにやって削除できなくて困ったので情報を共有しておきます。
Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify –all
Stacks: GenerativeAiUseCasesStack · GenerativeAiUseCasesDashboardStack
npm error Lifecycle script cdk failed with error:
npm error code 1
npm error path /home/ec2-user/environment/projects/generative-ai-use-cases-jp/packages/cdk
npm error workspace cdk
npm error location /home/ec2-user/environment/projects/generative-ai-use-cases-jp/packages/cdk
npm error command failed
npm error command sh -c cdk destroy
発生したエラー
GenUの環境を削除するため、手順に書いてあった以下のコマンドを実行した際にエラーが発生しました。
npm run cdk:destroy
Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify –all
Stacks: GenerativeAiUseCasesStack · GenerativeAiUseCasesDashboardStack
npm error Lifecycle script cdk failed with error:
npm error code 1
npm error path /home/ec2-user/environment/projects/generative-ai-use-cases-jp/packages/cdk
npm error workspace cdk
npm error location /home/ec2-user/environment/projects/generative-ai-use-cases-jp/packages/cdk
npm error command failed
npm error command sh -c cdk destroy
エラーの原因
CloudFormationのStackが複数あることが原因のようです。エラーメッセージにもGenerativeAiUseCasesStackとGenerativeAiUseCasesDashboardStackの2つのStackがあることが記述されています。
GenUの構築にはGenerativeAiUseCasesStackが使用されていることが推測できます。私はモニタリングダッシュボードを有効化していました。モニタリングダッシュボードを有効化する際にGenerativeAiUseCasesDashboardStackが使用されたものと思われます。
GenUでオプションを1つ以上有効化している場合に発生するものと思われます。
CloudFormationのStackとは
AWSリソースを論理的にグループ化し、まとめて管理するための単位です。スタックはJSONまたはYAML形式のテンプレートで定義され、このテンプレートにはAWSリソースの設定が記述されています。スタックを作成することで、テンプレート内のリソースが一括してデプロイされ、管理されます。
また、スタックを更新するとテンプレートの変更が適用され、リソースが変更されます。スタックを削除すると、関連する全てのリソースが一括して削除されます。
これにより、インフラストラクチャの管理が効率化され、一貫性が保たれます。CloudFormationは、インフラストラクチャのコード化(IaC)を実現し、環境の再現性と自動化を支援します。
対応
Stackが複数ある場合はどちらのStackを削除するかを指定する必要があります。以下のようにStackを指定することで削除できました。
npm run cdk:destroy GenerativeAiUseCasesDashboardStack
npm run cdk:destroy GenerativeAiUseCasesStack
注意点
Stackではサービス間の依存関係を管理しています。そのため、削除する順番が重要になってきます。Stackという名前の通りLIFO(Last In First Out)つまり、後入れ先出しで削除する必要があります。
今回だとGenUを構築したうえにモニタリングダッシュボードを有効化しているので、モニタリングダッシュボードを削除したのちにGenUを削除するという順番にする必要があります。
まとめ
GenUを手順通りに削除したにも関わらずエラーになったので対応方法をご紹介しました。CloudFormationに慣れておらずGenUを試して削除時に困った人の助けになれば幸いです。
純粋にこのエラーの原因を調べていてこのページを読んだ人でGenUって何? と思われた方は以下の記事を読んでみてください。
コメント