クイック スタート: コマンド ライン を使用して既存のコンテナー イメージをデプロイする
Azure Container Apps サービスを使用すると、サーバーレス プラットフォームでマイクロサービスとコンテナー化されたアプリケーションを実行できます。 Container Apps を使用すると、コンテナーを実行するメリットが得られますが、クラウド インフラストラクチャ設定や複雑なコンテナー オーケストレーターを手動で管理するという問題が残ります。
この記事では、既存のコンテナーを Azure Container Apps にデプロイする方法について説明します。
注意
プライベート レジストリの認証は、レジストリのユーザー名とパスワードを使用してサポートされています。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。
- 持っていない場合は、無料で作成できます。
- Azure CLI をインストールします。
- Azure Container Registry などのパブリックまたはプライベートのコンテナー レジストリへのアクセス。
セットアップ
CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。
az login
最新バージョンの CLI を実行していることを確認するには、upgrade コマンドを実行します。
az upgrade
次に、CLI 用の Azure Container Apps 拡張機能をインストールまたは更新します。
Azure CLI で az containerapp
コマンドを実行したとき、または Azure PowerShell で Az.App
モジュールからコマンドレットを実行したときに、パラメーターの不足に関するエラーが表示される場合は、最新バージョンの Azure Container Apps 拡張機能がインストールされていることを確認してください。
az extension add --name containerapp --upgrade
Note
2024 年 5 月以降、Azure CLI 拡張機能では、既定でプレビュー機能が有効になりません。 Container Apps のプレビュー機能にアクセスするには、--allow-preview true
を使用して Container Apps 拡張機能をインストールします。
az extension add --name containerapp --upgrade --allow-preview true
最新の拡張機能またはモジュールがインストールされたので、Microsoft.App
および Microsoft.OperationalInsights
名前空間を登録します。
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
環境変数を設定する
以下の環境変数を設定します。 ''<プレースホルダー>'' は実際の値に置き換えてください。
RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"
Azure リソース グループの作成
コンテナー アプリのデプロイに関連するサービスを整理するためのリソース グループを作成します。
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
環境の作成
Azure Container Apps 環境では、コンテナー アプリのグループを囲むセキュリティ保護された境界が作成されます。 同じ環境にデプロイされた Container Apps は、同じ仮想ネットワークにデプロイされ、同じ Log Analytics ワークスペースにログを書き込みます。
環境を作成するために、次のコマンドを実行します。
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
コンテナー アプリの作成
環境が作成されたので、最初のコンテナー アプリをデプロイできます。 containerapp create
コマンドを使用して、コンテナー イメージを Azure Container Apps にデプロイします。
この記事に示されている例では、一般的なコマンドでカスタム コンテナー イメージを使用する方法を示しています。 コンテナー イメージには、次の項目を含む、さらに多くのパラメーターが必要になる場合があります:
- リビジョン モードの設定
- シークレットの定義
- 環境変数を定義する
- コンテナーの CPU またはメモリの要件の設定
- Dapr の有効化と構成
- 外部または内部のイングレスを有効にする
- 最小および最大のレプリカ値またはスケール ルールの提供
これらのパラメーターの値を create
コマンドに指定する方法の詳細については、az containerapp create --help
を実行するかオンライン リファレンスを参照してください。 Azure Container Registry 用の資格情報を生成するには、az acr credential show を使用します。
CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME>
REGISTRY_SERVER=<REGISTRY_SERVER>
REGISTRY_USERNAME=<REGISTRY_USERNAME>
REGISTRY_PASSWORD=<REGISTRY_PASSWORD>
(<プレースホルダー>を実際の値に置き換えます)。
az containerapp create \
--name my-container-app \
--resource-group $RESOURCE_GROUP \
--image $CONTAINER_IMAGE_NAME \
--environment $CONTAINERAPPS_ENVIRONMENT \
--registry-server $REGISTRY_SERVER \
--registry-username $REGISTRY_USERNAME \
--registry-password $REGISTRY_PASSWORD
az containerapp create \
--image <REGISTRY_CONTAINER_NAME> \
--name my-container-app \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT
If you have enabled ingress on your container app, you can add `--query properties.configuration.ingress.fqdn` to the `create` command to return the public URL for the application.
このコマンドを実行する前に、<REGISTRY_CONTAINER_NAME>
を、レジストリ パスとタグを含む、パブリック コンテナー レジストリの場所の完全な名前に置き換えます。 mcr.microsoft.com/k8se/quickstart:latest
は有効なコンテナー名の例です。
デプロイの確認
正常にデプロイされたことを確認するには、Log Analytics ワークスペースに対してクエリを実行します。 ログに対してクエリを実行する前に、初めて分析が到着するまでデプロイしてから数分間待たなければならない場合があります。 これは、コンテナー アプリに実装されているコンソール ログによって異なります。
コンソール ログ メッセージを表示するには、次のコマンドを使用します。
LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`
az monitor log-analytics query \
--workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
--analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'my-container-app' | project ContainerAppName_s, Log_s, TimeGenerated" \
--out table
リソースをクリーンアップする
このアプリケーションの使用を継続しない場合は、次のコマンドを実行して、このクイックスタートで作成したすべてのリソースと共にリソース グループを削除します。
注意事項
次のコマンドを実行すると、指定されたリソース グループとそれに含まれるすべてのリソースが削除されます。 指定したリソース グループにこのクイックスタートの範囲外のリソースが含まれている場合、それらも削除されます。
az group delete --name $RESOURCE_GROUP
ヒント
問題がある場合は、 GitHub の Azure Container Apps リポジトリでイシューを開いて、お知らせください。