📑

plumberをAzure Container Appsで動かす

2024/11/03に公開

はじめに

前回はコンテナインスタンスで、plumberを動かしてみました。
https://zenn.dev/arbr/articles/2bc6f30128ee3a

今回はAzure Container Appsでやってみます。
https://learn.microsoft.com/ja-jp/cli/azure/containerapp?view=azure-cli-latest#az-containerapp-up

概要

以下の2ステップでできました。

  1. コードを書く
  2. az containerapp upする。
    • コードを用意しておくと、レジストリへPUSHからデプロイまでやってくれます。

環境は前回と同じ、Azure Cloud Shellを使用しています。

やってみた

コード記述

コードは前回のものをそのまま使います。コードを書くまでで一旦止めます。
https://zenn.dev/arbr/articles/2bc6f30128ee3a#コード記述

UP

az containerapp upでリソースグループから、良しなに作ってくれます。8分程度かかります。
https://learn.microsoft.com/ja-jp/cli/azure/containerapp?view=azure-cli-latest#az-containerapp-up

RES_GROUP=rg-for-plumber-cp
APP_NAME=my-containerapp

az containerapp up \
    -n $APP_NAME \
    --source . \
    --ingress external \
    --target-port 80 \
    --resource-group $RES_GROUP \
    --location japaneast

成功するとURLが表示されます。

リソースグループには、以下のようにリソースが作られています

先のURLに/helloを付与してアクセスします。問題なく動いていることが確認できました。

更新

コードを更新してみます。

sample.R(抜粋)
#* @get /hello
hw <- function() {
    return("Hello, world!!!!!!!!!!!")
}

以下略

更新時のコマンドはaz containerapp updateを使います。
https://learn.microsoft.com/ja-jp/cli/azure/containerapp?view=azure-cli-latest#az-containerapp-update(containerapp)

ソースから行う場合は、拡張機能が必要になります。
https://learn.microsoft.com/ja-jp/cli/azure/azure-cli-extensions-overview

今度は6分弱かかりました。

# 拡張機能のインストール
az extension add --name containerapp

az containerapp update \
    -n $APP_NAME \
    -g $RES_GROUP \
    --source . 

/helloに再アクセスすると、更新されていることが確認できます。

削除

コンテナアプリのみ消すこともできますが、今回はリソースグループごと消します。
削除には20分弱かかります。Container Apps Envのファイルの削除に、ものすごい時間がかかっている模様でした。

# コンテナアプリのみ消す場合
# az containerapp delete -g $RES_GROUP -n $APP_NAME

# リソースグループごと消す
az group delete --resource-group $RES_GROUP

おわりに

前回と同じコンテナを、別サービスを使って動かしてみました。
こちらの方が大変簡単で、かなり使い勝手がよさそうです。

この記事がどなたかのお役に立てれば幸いです。

Discussion