Azure Container Apps でのアプリケーション ライフサイクル管理
Azure Container Apps アプリケーションのライフサイクルは、リビジョンを中心に展開されます。
コンテナー アプリをデプロイすると、最初のリビジョンが自動的に作成されます。 コンテナーの変更時にさらにリビジョンが作成されたり、構成の template
セクションに対して調整が行われたりします。
コンテナー アプリには、デプロイ、更新、非アクティブ化、シャットダウンの 4 つのフェーズがあります。
Note
Azure Container Apps ジョブはリビジョンをサポートしていません。 ジョブは直接デプロイおよび更新されます。
展開
コンテナー アプリがデプロイされると、最初のリビジョンが自動的に作成されます。
更新
コンテナー アプリがリビジョン スコープ変更で更新されると、新しいリビジョンが作成されます。 古いリビジョンを自動的に非アクティブ化するか (単一リビジョン モード)、または使用可能なままにするか (複数リビジョン モード) を選択できます。
単一リビジョン モードの場合、Container Apps はリビジョン間の自動切り替えを処理して、ダウンタイムなしのデプロイをサポートします。
非アクティブ化
リビジョンが不要になったら、後で再アクティブ化するオプション付きでリビジョンを非アクティブ化できます。 非アクティブ化中に、リビジョン内のコンテナーがシャットダウンされます。
Shutdown
コンテナーは、次の状況でシャットダウンされます。
- コンテナー アプリのスケールイン時
- コンテナー アプリが削除される
- リビジョンが非アクティブ化されている
シャットダウンが開始されると、コンテナー ホストは SIGTERM メッセージをコンテナーに送信します。 コンテナーに実装されているコードでは、このオペレーティング システム レベルのメッセージに応答して終了処理をすることができます。
アプリケーションが 30 秒以内にSIGTERM
メッセージに応答しない場合、SIGKILL でコンテナーが終了します。
また、アプリケーションがシャットダウンを適切に処理できることを確認してください。 コンテナーは定期的に再起動されるため、コンテナー内で状態が保持されるとは思わないでください。 コストのかかるメモリ内キャッシュ要件に対しては、外部キャッシュを代わりに使用してください。