はじめに
先日、以下のブログにてJobs in Azure Container Appsが公開となったことを知りました。
サクッとできそうだったので試してみました。
作成
まずはContainer Apps環境を作成しておきます。手っ取り早く、以下のドキュメントにあるようにAzure Portalを使ってContainer Apps環境を作ります。
その後、以下のドキュメントにあるようにジョブを作成します。
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環境のアプリ内に「コンテナーアプリ ジョブ」として登録されます。
実行
実行結果は、上記の「コンテナーアプリ ジョブ」から「Execution history」をみれば確認できます。
コマンド
2023年6月時点で、ジョブの登録や削除はAzure CLIで操作する必要があります。以下のコマンドマニュアルに目を通しておくと良いかなと思いました。
ちょっとハマったこと
今回検証のために、自分が作成したコンテナを実行しようとしたところ、exec format error
というメッセージが出てジョブの実行に失敗しました。
原因は、Apple silicon環境。docker build
時に特に指定しないとARM用のコンテナイメージが作成されるためコンテナイメージが実行できない状態になっていました。ここら辺のことは以下の記事が詳しいです。
自分の場合、docker build --platform linux/amd64 .
のように--platform linux/amd64
オプションをつけることで問題を解決することができました。