クイックスタート: ローカル ソース コードから Azure Container Apps へのビルドとデプロイを行う
この記事では、選択したプログラミング言語を使用して、ローカル ソース コードから Azure Container Apps へのマイクロサービスのビルドとデプロイを行う方法を示します。 音楽アルバムの静的コレクションを返すバックエンド Web API サービスを作成します。
Note
このサンプル アプリケーションは、2 つのバージョンで利用できます。 一方のバージョンでは、ソースに Dockerfile が含まれています。 もう一方のバージョンには Dockerfile がありません。 自分のソース コードに最も適したバージョンを選択してください。 コンテナーを初めて使用する場合は、上部にある [Dockerfile なし] オプションを選択します。
次のスクリーンショットは、デプロイするアルバム APIサービス の出力を示しています。
前提条件
このプロジェクトを完了するには、次の項目が必要です:
要件 | 手順 |
---|---|
Azure アカウント | お持ちでない場合は、無料のアカウントを作成してください。 続行するには、Azure サブスクリプションの "共同作成者" または "所有者" のアクセス許可が必要です。 詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。 |
Azure CLI | Azure CLI をインストールします。 |
セットアップ
CLI から Azure にサインインするには、次のコマンドを実行し、プロンプトに従って認証プロセスを完了します。
az login
最新バージョンの CLI を実行していることを確認するには、upgrade コマンドを実行します。
az upgrade
次に、CLI 用の Azure Container Apps 拡張機能をインストールまたは更新します。
Azure CLI で az containerapp
コマンドを実行したとき、または Azure PowerShell で Az.App
モジュールからコマンドレットを実行したときに、パラメーターの不足に関するエラーが表示される場合は、最新バージョンの Azure Container Apps 拡張機能がインストールされていることを確認してください。
az extension add --name containerapp --upgrade
Note
2024 年 5 月以降、Azure CLI 拡張機能では、既定でプレビュー機能が有効になりません。 Container Apps のプレビュー機能にアクセスするには、--allow-preview true
を使用して Container Apps 拡張機能をインストールします。
az extension add --name containerapp --upgrade --allow-preview true
最新の拡張機能またはモジュールがインストールされたので、Microsoft.App
および Microsoft.OperationalInsights
名前空間を登録します。
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
環境変数を作成する
Azure CLI のセットアップが完了したところで、この記事全体で使用される環境変数を定義できます。
bash シェルで次の変数を定義します。
export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"
サンプル コードの入手
選択した言語の API サンプル アプリケーションをダウンロードして抽出します。
マシンにソース コードをダウンロードします。
ダウンロード結果を抽出し、containerapps-albumapi-csharp-main/src フォルダーの中に移動します。
マシンにソース コードをダウンロードします。
ダウンロード結果を抽出し、containerapps-albumapi-csharp-buildpack/src フォルダーに移動します。
コンテナーアプリ をビルドしてデプロイする
containerapp up
コマンドを使用して、最初のコンテナー アプリをビルドしてデプロイします。 このコマンドは次の操作を行います:
- リソース グループの作成
- Azure Container Registry を作成する
- コンテナー イメージをビルドしてレジストリにプッシュする
- Container Apps 環境を Log Analytics ワークスペースと作成する
- ビルドされたコンテナー イメージを使用してコンテナー アプリを作成してデプロイする
- リソース グループを作成する
- 環境の一部として既定のレジストリを作成する
- アプリケーションの言語とランタイムを検出し、適切な Buildpack を使用してイメージをビルドする
- イメージを Azure Container Apps の既定のレジストリにプッシュする
- Container Apps 環境を Log Analytics ワークスペースと作成する
- ビルドされたコンテナー イメージを使用してコンテナー アプリを作成してデプロイする
up
コマンドは、リポジトリのルートにある Docker ファイルを使用してコンテナー イメージをビルドします。 Dockerfile 内の EXPOSE
命令によって、ターゲット ポートが定義されました。これは、イングレス トラフィックをコンテナーに送信するために使用されるポートになります。
up
コマンドは、Dockerfile を見つけられない場合、Buildpack を自動的に使用してアプリケーション ソースを実行可能なコンテナーに変換します。 Buildpack はユーザーに代わってビルドを実行しようとするため、up
コマンドに対してイングレス トラフィックをどのポートに送信するべきかを指示する必要があります。
次のコード例の .
(ドット) は、抽出されたサンプル API アプリケーションの現在のディレクトリで実行するよう containerapp up
に指示します。
az containerapp up \
--name $API_NAME \
--location $LOCATION \
--environment $ENVIRONMENT \
--source .
az containerapp up \
--name $API_NAME \
--location $LOCATION \
--environment $ENVIRONMENT \
--ingress external \
--target-port 8080 \
--source .
重要
コンテナー アプリを既存のリソース グループにデプロイするには、containerapp up
コマンドに --resource-group yourResourceGroup
を含めます。
デプロイの確認
FQDN を Web ブラウザーにコピーします。 Web ブラウザーで、FQDN の /albums
エンドポイントに移動します。
制限
ソース コードをアップロードする場合の最大サイズは 200 MB です。 アップロードが制限を超えた場合は、エラー 413 が返されます。
リソースをクリーンアップする
フロントエンドのデプロイ に関するチュートリアルに進まない場合は、次のコマンドを使用して、このクイックスタートで作成した Azure リソースを削除できます。
注意事項
次のコマンドを実行すると、指定されたリソース グループとそれに含まれるすべてのリソースが削除されます。 グループがこのクイックスタートの範囲外でリソースを含む場合、それは同時に削除されます。
az group delete --name $RESOURCE_GROUP
ヒント
問題がある場合は、 GitHub の Azure Container Apps リポジトリでイシューを開いて、お知らせください。
次のステップ
このクイックスタートを完了したら、チュートリアル: Azure Container Apps でのマイクロサービス間の通信 に進み、API を呼び出すフロントエンド アプリケーションをデプロイする方法を学習できます。