AWS CloudFormation スタックの 1 つによって作成されたリソースを手動で削除しましたが、スタックが更新されなくなりました。
簡単な説明
CloudFormation スタックによって作成されたリソースを削除すると、スタックの更新に失敗し、エラーメッセージが表示されます。
リソースタイプに応じて、以下のいずれかの解決策を選択してください:
- 一意の名前でリソースを更新します
- 一意の ID でリソースを更新します
解決策
一意の名前でリソースを更新します
削除されたリソースが一意の名前をサポートしている場合は、リソースを手動で作成してスタックを更新できます。ただし、新しいリソースは、削除されたリソースと同じ名前でなければなりません。たとえば、リソース名を変更すると、CloudFormation がリソースを処理する方法に影響を与えることができます。これは、AWS ID およびアクセス管理 (IAM) ロールが名前で追跡されるためです。IAM ロールを誤って削除してしまった場合は、同じ名前でそのロールを手動で再作成できます。
IAM ロールまたはその他のリソースを一意の名前で更新するには、次の手順を実行します:
- AWS CloudFormation コンソールを開きます。
- スタックを選択し、[リソース] ビューを選択します。
- [物理 ID] 列で、新しい IAM ロールに置き換える IAM ロールの物理 ID を見つけます。
**注:**物理 ID はリソースの名前です。
- 新しい IAM ロールを作成し、ステップ 3 で見つけたのと同じ物理 ID を新しいロールに割り当てます。
- スタックを更新します。
**注:**詳細については、「スタックテンプレートの変更」を参照してください。
一意の ID でリソースを更新します
ルートテーブルなどのリソースを一意の ID で手動で再作成することはできません。代わりに、CloudFormation テンプレートからリソースとそのリソースへの参照を削除する必要があります。
**注:**次の解決策は、一意の名前や一意の ID をサポートしていないリソースにも有効です。たとえば、ホストゾーンのレコードセット。
CloudFormation がルートテーブルやその他のリソースを一意の ID で再作成できるようにするには、次の手順を実行します:
- CloudFormation テンプレートで、ルートテーブルとそれへの参照をすべて削除します。
- スタックを更新します。
**注:**クラウドフォーメーションはルートテーブルを削除しようとします。リソースはすでに削除されているため、CloudFormation は削除操作が成功したと見なします。
- ルートテーブルと必要な追加リソースまたは参照を CloudFormation テンプレートに戻します。
- スタックをもう一度更新します。
**注:**CloudFormation は削除されたリソースを再作成します。
関連情報
AWS CloudFormation のトラブルシューティング