AWS CloudFormationのロールバック(UPDATE_ROLLBACK_IN_PROGRESSなど)は、1時間半以上にわたって永久に進行中です。スタックを完全に削除するか、アクティビティを強制的に停止します。これは可能ですか?
ありがとう!
スタックの更新/ロールバックがブロックされる別の一般的な原因は、ECS :: Serviceリソースの更新のエラーです。現在検出されていないようです(場合によっては?)。 Cloudformationは、サービスが定常状態に到達するためのサービスイベントを待機しているため、サービスを機能するもの(たとえば、目的のタスクを0に)に更新するだけでブロックが解除されます。ただし、問題を回避するために、より多くの更新を送信する前に、Cloudformationが期待する状態に戻してください。
スタックリソースが外部によって変更または削除されたと思います。公式ガイドは次のとおりです。
元のスタックのテンプレートと一致するようにリソースを手動で同期してから、更新のロールバックを続けます。たとえば、AWS CloudFormationがロールバックしようとしているリソースを手動で削除した場合、同じ名前でそのリソースを手動で作成し、それをプロパティする必要があります元のスタックにありました。
または(@talentedmrjonesが言ったように)
スタックを修正するには、AWSカスタマーサポートにお問い合わせください。
私の場合、削除されたリソースを再作成することで同じ状況を止めることができます。
正確にロールバックに時間がかかる理由を調査する必要があります(たとえば、CloudFormationスタックの外部で変更されたリソースの欠落、または予想されるシグナルを返さなかったカスタムリソースが原因である場合)。
私の場合、これは別のEC2セキュリティグループから参照されているため削除できないEC2セキュリティグループです。
ユーザーロールにロールを削除する権限がない場合に、これが発生することがあります。これは、CloudFormationスタックによって作成されたロールまたはユーザーを手動で削除することでテストできます。
AWSダッシュボードを介してすべてを手動で削除することで、私のものを削除できました。削除が必要な役割がぶら下がっています。
カスタムリソースを扱う場合、戻りURLのモックアップバージョンを作成することができます。
これを行う最も簡単な方法は、作成中に使用されたURLを取得することです。入手できる場合は、最後の%2Fの後のセクションを、クラウド形成のイベントログから取得できる「クライアントリクエストトークン」に置き換えます。
そうでない場合は、作成する必要があるURLの形式を次に示します。
https://{region}.console.aws.Amazon.com/cloudformation/home?region={region}#/stacks?filter=active&tab=events&stackId={stack arn}%2F{stack name}%2F{client request token}
そのURLをgetとして実行すると、リソースがロールバックまたは削除に失敗します。
このようなことが一度起こったのですが、スタックがUPDATE_ROLLBACK_IN_PROGRESSステータスで永久にスタックしているように見えました。 AWSサポートにチケットを送信することをお勧めします。それが唯一の解決方法でした。