Jobs in Azure Container Appsを試す

はじめに

先日、以下のブログにてJobs in Azure Container Appsが公開となったことを知りました。

techcommunity.microsoft.com

サクッとできそうだったので試してみました。

作成

まずはContainer Apps環境を作成しておきます。手っ取り早く、以下のドキュメントにあるようにAzure Portalを使ってContainer Apps環境を作ります。

learn.microsoft.com

その後、以下のドキュメントにあるようにジョブを作成します。

learn.microsoft.com

2023年6月の時点ではAzure Portalでは作成できないため、今回はAzure CLIを使って作成しました。以下では1分ごとに処理を実行するジョブを作成しています。

az containerapp job create \
    --name "名前" --resource-group "リソースグループ名"  --environment "Container Apps環境名" \
    --trigger-type "Schedule" \
    --replica-timeout 60 --replica-retry-limit 1 --replica-completion-count 1 --parallelism 1 \
    --image "コンテナイメージ" \
    --cpu "0.25" --memory "0.5Gi" \
    --cron-expression "*/1 * * * *"

作成できると、Container Apps環境のアプリ内に「コンテナーアプリ ジョブ」として登録されます。

Container Apps環境のアプリでの表示

実行

実行結果は、上記の「コンテナーアプリ ジョブ」から「Execution history」をみれば確認できます。

実行結果

コマンド

2023年6月時点で、ジョブの登録や削除はAzure CLIで操作する必要があります。以下のコマンドマニュアルに目を通しておくと良いかなと思いました。

learn.microsoft.com

ちょっとハマったこと

今回検証のために、自分が作成したコンテナを実行しようとしたところ、exec format errorというメッセージが出てジョブの実行に失敗しました。

原因は、Apple silicon環境。docker build時に特に指定しないとARM用のコンテナイメージが作成されるためコンテナイメージが実行できない状態になっていました。ここら辺のことは以下の記事が詳しいです。

dev.classmethod.jp

自分の場合、docker build --platform linux/amd64 .のように--platform linux/amd64オプションをつけることで問題を解決することができました。