私は、templatesの使用とtroubleshootの展開の失敗を含め、Azureのautomatically deploying resources groupsに関するさまざまな記事を読んでいます。自動化されたAzureリソースグループの配備でエラー/障害はどのように処理されますか?
これらの記事で明らかにされていない点は、展開の途中でエラーが発生した場合にロールバック機能が構築されているかどうか、および/またはリソースインフラストラクチャを最後の正常な状態に戻す最善の方法です。
たとえば、Octopus Deployには、障害が発生した場合にのみトリガされる特定のビルドステップの概念があり、基本的にはすべてが展開が開始される前の状態に戻されます。
コマンドレットを実行して実際に展開を実行する前に潜在的なエラーを減らすことができ、展開後のプロビジョニング状態を表示することが可能であることがわかりますGet-AzureRmResourceGroupDeployment
:
そこから私はfailed
の状態をチェックし、条件付きで失敗した後にクリーンアップするためのスクリプトを実行することができます。
しかし、このシナリオに対応するために何かが組み込まれていますか?
ARMテンプレートを使用すると、初期導入後すぐに同じスクリプトを再配備することができますし、同じ結果(変更なし)を取得することを意味し、冪等です。テンプレートに別のVMを追加して再展開する場合は、既存のVMはそのまま残り、新しいVMが追加されます。 – Lewis
@Lewis問題は、既存のインフラストラクチャ全体に変更されたテンプレートをローリングした結果が矛盾していることです。何が修正されるのか、何が無視されるのかは必ずしも明確ではありません。 Azureは、トップレベルのリソース(VMなど)の存在を確認するようですが、追加のディスクなどのプロパティ設定は無視されますので、VMを追加することはできますが、それ以上の微妙なものはありません。問題にぶつかる –