このクイック スタートでは、Azure Container Apps ジョブを作成 します。 Container Apps では、ジョブはコンテナー化されたタスクを開始し、それが有限の期間実行された後、終了します。 ジョブは、データ処理、機械学習、リソースのクリーンアップ、またはオンデマンド処理が必要なシナリオなどのタスクに最適です。
ジョブを手動でトリガーしたり、実行をスケジュールしたり、イベントに基づいて実行をトリガーしたりできます。 このクイック スタートでは、手動またはスケジュールされたジョブを作成する方法について説明します。 イベント ドリブン ジョブを作成する方法については、「 Azure Container Apps を使用してイベント ドリブン ジョブをデプロイする」を参照してください。
前提条件
Container Apps ジョブでサポートされていない機能の詳細については、「 ジョブの制限」を参照してください。
環境の準備
Azure CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。
az loginaz upgradeコマンドを使用して、最新バージョンの Azure CLI を実行していることを確認します。az upgrade最新バージョンの Container Apps CLI 拡張機能をインストールします。
az extension add --name containerapp --upgradeMicrosoft.App、Microsoft.OperationalInsights、およびMicrosoft.Storage名前空間が Azure サブスクリプションにまだ登録されていない場合は、その名前空間を登録します。az provider register --namespace Microsoft.App az provider register --namespace Microsoft.OperationalInsights az provider register --namespace Microsoft.Storageこの記事全体で使用される環境変数を定義します。
RESOURCE_GROUP="jobs-quickstart" LOCATION="northcentralus" ENVIRONMENT="env-jobs-quickstart" JOB_NAME="my-job"
Container Apps 環境を作成する
Container Apps 環境は、コンテナー アプリとジョブに関する分離境界として機能するため、同じネットワークを共有し、相互に通信できます。
次のコマンドを使用して、リソース グループを作成します。
az group create \ --name "$RESOURCE_GROUP" \ --location "$LOCATION"次のコマンドを使用して、Container Apps 環境を作成します。
az containerapp env create \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --location "$LOCATION"
手動ジョブを作成して実行する
手動ジョブを使用するには、最初にトリガーの種類が Manual のジョブを作成し、その実行を開始します。 同じジョブの複数の実行を開始でき、複数のジョブ実行を同時に実行できます。
次のコマンドを使用して、Container Apps 環境でジョブを作成します。
az containerapp job create \ --name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \ --trigger-type "Manual" \ --replica-timeout 1800 \ --image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \ --cpu "0.25" --memory "0.5Gi"手動ジョブは自動的には実行されません。 各ジョブを開始する必要があります。
次のコマンドを使用してジョブを開始します。
az containerapp job start \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP"このコマンドは、ジョブの実行に関する詳細情報 (その名前を含む) を返します。
スケジュールされたジョブを作成して実行する
スケジュールされたジョブを使用するには、トリガーの種類が Schedule で、スケジュールを定義する cron 式を持つジョブを作成します。
次のコマンドを使用して、毎分開始する Container Apps ジョブを作成します。
az containerapp job create \
--name "$JOB_NAME" --resource-group "$RESOURCE_GROUP" --environment "$ENVIRONMENT" \
--trigger-type "Schedule" \
--replica-timeout 1800 \
--image "mcr.microsoft.com/k8se/quickstart-jobs:latest" \
--cpu "0.25" --memory "0.5Gi" \
--cron-expression "*/1 * * * *"
ジョブの実行は、スケジュールに基づいて自動的に開始されます。
Container Apps ジョブでは、 cron 式を使用してスケジュールを定義します。 ジョブは標準の cron 式形式をサポートしています。この形式には、分、時、日、月、月、および曜日のフィールドが含まれています。
最近のジョブ実行履歴を一覧表示する
Container Apps ジョブは、最近の実行の履歴を保持します。 ジョブの実行を一覧表示できます。
az containerapp job execution list \
--name "$JOB_NAME" \
--resource-group "$RESOURCE_GROUP" \
--output table \
--query '[].{Status: properties.status, Name: name, StartTime: properties.startTime}'
ジョブは、実行中に一覧に表示されます。
Status Name StartTime
--------- -------------- -------------------------
Succeeded my-job-jvsgub6 2025-11-17T21:21:45+00:00
ジョブ実行ログのクエリ
ジョブは、Container Apps 環境用に構成したログ プロバイダーに出力ログを書き込みます。 既定では、ログは Log Analytics に格納されます。
Container Apps 環境の Log Analytics ワークスペース ID を変数に保存します。
LOG_ANALYTICS_WORKSPACE_ID=$(az containerapp env show \ --name "$ENVIRONMENT" \ --resource-group "$RESOURCE_GROUP" \ --query "properties.appLogsConfiguration.logAnalyticsConfiguration.customerId" \ --output tsv)最新のジョブ実行の名前を変数に保存します。
JOB_RUN_NAME=$(az containerapp job execution list \ --name "$JOB_NAME" \ --resource-group "$RESOURCE_GROUP" \ --query "[0].name" \ --output tsv)次のコマンドを使用して、ジョブの実行に対して Log Analytics クエリを実行します。
az monitor log-analytics query \ --workspace "$LOG_ANALYTICS_WORKSPACE_ID" \ --analytics-query "ContainerAppConsoleLogs_CL | where ContainerGroupName_s startswith '$JOB_RUN_NAME' | order by _timestamp_d asc" \ --query "[].Log_s"注意
ContainerAppConsoleLogs_CL テーブルの準備ができるまで、コマンドは結果を返しません。または、"BadArgumentError: 要求に無効なプロパティがありました" というエラーが返されます。どちらの場合も、数分待ってから、コマンドをもう一度実行します。
次の出力は、ジョブの実行によって出力されるログの例です。
[ "2025/11/17 18:38:28 This is a sample application that demonstrates how to use Azure Container Apps jobs", "2025/11/17 18:38:28 Starting processing...", "2025/11/17 18:38:33 Finished processing. Shutting down!" ]
リソースをクリーンアップする
このジョブを引き続き使用しない場合は、次のコマンドを実行して、このクイック スタートからリソース グループとすべてのリソースを削除します。
注意事項
次のコマンドを実行すると、指定されたリソース グループとそれに含まれるすべてのリソースが削除されます。 このクイック スタートの範囲外のリソースが指定されたリソース グループに存在する場合は、そのリソースも削除されます。
az group delete --name "$RESOURCE_GROUP"
ヒント
問題がある場合は、 GitHub の Azure Container Apps リポジトリでイシューを開いて、お知らせください。