😀

パブリックプレビューの Azure Container Apps を試してみた

に公開

背景と目的

Azure でコンテナーを使うサービスは色々とありますが、新たに Azure Container Apps というサービスが追加されたので Azure CLI で試してみました。

前提条件

コマンドの実施環境は、Mac + Azure CLI です。

$ sw_vers
ProductName:    macOS
ProductVersion: 12.0.1
BuildVersion:   21A559

$ az version
{
  "azure-cli": "2.30.0",
  "azure-cli-core": "2.30.0",
  "azure-cli-telemetry": "1.0.6",
  "extensions": {}
}

Container Apps 用のエクステンションを Azure CLI に追加

az extension add \
  --source https://workerappscliextension.blob.core.windows.net/azure-cli-extension/containerapp-0.2.0-py2.py3-none-any.whl

エクステンションの追加後は、このようになりました。

az version
{
  "azure-cli": "2.30.0",
  "azure-cli-core": "2.30.0",
  "azure-cli-telemetry": "1.0.6",
  "extensions": {
    "containerapp": "0.2.0"
  }
}

Container Apps を作成

公式ドキュメント内に利用可能なリージョンの記述を見つけられませんでしたが、トライアンドエラーの結果私の環境では以下のリージョンが利用可能なようでした。

  • eastus
  • northeurope
  • canadacentral
# 環境変数をセットします
region=eastus
prefix=mnrcapp

# リソースグループを作成します
az group create \
  --name ${prefix}-rg \
  --location $region

# Log Analytics を作成します
az monitor log-analytics workspace create \
  --resource-group ${prefix}-rg \
  --workspace-name ${prefix}-logs

# Container Apps 環境を作成します
az containerapp env create \
  --name ${prefix}-env \
  --resource-group ${prefix}-rg \
  --logs-workspace-id $(az monitor log-analytics workspace show \
  --resource-group ${prefix}-rg \
  --workspace-name ${prefix}-logs \
  --query customerId \
  --output tsv) \
  --logs-workspace-key $(az monitor log-analytics workspace get-shared-keys \
  --resource-group ${prefix}-rg \
  --workspace-name ${prefix}-logs \
  --query primarySharedKey \
  --output tsv)

# コンテナーを Azure Container Apps にデプロイします
az containerapp create \
  --name ${prefix} \
  --resource-group ${prefix}-rg \
  --environment ${prefix}-env \
  --image mcr.microsoft.com/azuredocs/containerapps-helloworld:latest \
  --target-port 80 \
  --ingress external

ここで以下のメッセージが表示される場合は、コマンドを追加してから再度デプロイします。

MissingRegistrationForLocation: The subscription is not registered for the resource type 'containerApps' in the location 'eastus'. Please re-register for this provider in order to have access to this location.

# containerApps リソースタイプにロケーション情報を登録します
az provider register \
  --namespace Microsoft.Web

コンテナーアプリの FQDN を表示して、ブラウザでアクセスします。

# コンテナーアプリの FQDN を表示します
az containerapp show \
  --name ${prefix} \
  --resource-group ${prefix}-rg \
  --query configuration.ingress.fqdn \
  --output tsv

参考

作成したリソースを削除します。

bash
# リソースグループを削除します
az group delete \
  --name ${prefix}-rg

参考サイトです。

https://azure.microsoft.com/ja-jp/updates/public-preview-azure-container-apps/

https://docs.microsoft.com/ja-jp/azure/container-apps/get-started?tabs=bash

Discussion