演習 - 再起動の動作を制御する
Azure Container Instances では、コンテナーのデプロイを簡単かつ迅速に行えるため、画像のレンダリングまたはアプリケーションのビルドやテストなど、一度のみ実行されるタスクの実行に最適です。
構成可能な再起動ポリシーを使用して、プロセスが完了したらコンテナーが停止するように指定できます。 コンテナーのインスタンスは秒単位で課金されるため、タスクを実行するコンテナーの実行中に使用されるコンピューティング リソースのみが課金されます。
コンテナー再起動ポリシーとは何ですか。
Azure Container Instances には、次の 3 つの再起動ポリシー オプションがあります。
再起動ポリシー | 説明 |
---|---|
Always (常に) | コンテナー グループ内のコンテナーを常に再起動する。 このポリシーは、Web サーバーなどの実行時間の長いタスクに適しています。 この設定は、コンテナー作成時に再起動ポリシーが指定されていない場合に適用される既定値です。 |
Never (決してしない) | コンテナー グループ内のコンテナーを再起動しない。 コンテナーは 1 回のみ実行されます。 |
OnFailure (失敗時) | コンテナーで実行されたプロセスが失敗 (0 以外の終了コードで終了) した場合にのみ、コンテナー グループ内のコンテナーを再起動する。 コンテナーは少なくとも 1 回実行されます。 このポリシーは、存続期間の短いタスクを実行するコンテナーに適しています。 |
完了までコンテナーを実行する
再起動ポリシーが動作しているのを確認するには、azuredocs/aci-wordcount コンテナー イメージからコンテナー インスタンスを作成し、OnFailure 再起動ポリシーを指定します。 このコンテナーでは、シェイクスピアのハムレットのテキストを解析し、最もよく使われる 10 個の単語を標準出力に書き込んで終了する Python スクリプトを実行します。
az container create
コマンドを実行し、コンテナーを開始します。az container create \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \ --restart-policy OnFailure \ --location eastus
Azure Container Instances によってコンテナーが開始され、そのプロセス (ここではスクリプト) の終了時に停止されます。 Azure Container Instances によって、再起動ポリシーが Never または OnFailure のコンテナーが停止されると、そのコンテナーの状態は Terminated に設定されます。
az container show
を実行し、コンテナーの状態を確認します。az container show \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --query "containers[0].instanceView.currentState.state"
[終了] 状態になるまでコマンドを繰り返します。
az container logs
を実行してコンテナーのログを表示し、出力を調べます。az container logs \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo
この出力が表示されます。
[('the', 990), ('and', 702), ('of', 628), ('to', 610), ('I', 544), ('you', 495), ('a', 453), ('my', 441), ('in', 399), ('HAMLET', 386)]