チュートリアル: Visual Studio を使用して Azure Container Apps にデプロイする
Azure Container Apps を使用すると、サーバーレス プラットフォームでマイクロサービスとコンテナー化されたアプリケーションを実行できます。 Container Appsを使用すると、クラウドインフラストラクチャや複雑なコンテナーオーケストレーターを手動で管理する必要がなくなり、コンテナーを実行するメリットが得られます。
このチュートリアルでは、Visual Studio を使用して、コンテナー化された ASP.NET Core 8.0 アプリケーションを Azure Container Apps にデプロイします。 以下の手順は、以前のバージョンの ASP.NET Core にも適用されます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- Visual Studio 2022 バージョン 17.2 以降。無料でダウンロードできます。
プロジェクトの作成
まずは、コンテナー化された ASP.NET Core アプリケーションを作成します。
Visual Studio で、[ファイル] を選択し、次に [新規 => プロジェクト] を選択します。
ダイアログ ウィンドウでASP.NETを検索し、次に ASP.NET Core Web アプリ を選択し、その後 次へ を選択します。
[プロジェクト名] フィールドで、アプリケーションに MyContainerApp という名前を付け、次に [次へ] を選択します。
[追加情報] 画面で、[Docker の有効化] が選択されていることを確認し、次に [Docker OS] 設定で [Linux] が選択されていることを確認します。 Azure Container Apps では現在、Windows コンテナーがサポートされていません。 これを選択すると、既定でプロジェクト テンプレートでコンテナー化がサポートされるようになります。 有効になっている間、プロジェクトでは、実行中またはビルド中のコンテナーが使用されます。
[作成] をクリックすると、Visual Studio によってプロジェクトが作成され、読み込まれます。
Azure Container Apps をデプロイする
プロジェクト テンプレートで "Docker を有効にする" 設定を選択したため、アプリケーションには Dockerfile が含まれています。 Visual Studio は、Dockerfile を使用して、Azure Container Apps が実行するコンテナー イメージをビルドします。
このプロセスの詳細について学習する場合は、Visual Studio でのコンテナー化された アプリのビルド方法に関するページを参照してください。
これで、アプリケーションを Azure Container Apps にデプロイする準備が整いました。
リソースの作成
Visual Studio の発行ダイアログ ウィンドウは、既存の Azure リソースを選択したり、デプロイ用に新しいリソースを作成したりするのに役立ちます。 このプロセスでは、コンテナー イメージのビルド、イメージの Azure Container Registry (ACR) へのプッシュ、新しいコンテナー アプリ イメージのデプロイも行われます。
MyContainerApp プロジェクト ノードを右クリックして [公開] を選択します。
ダイアログ ボックスで、公開オプションの一覧から [Azure] を選択し、次に [次へ] を選択します。
[特定のターゲット] 画面で、[Azure Container Apps (Linux)] を選択し、その後もう一度 [次へ] を選択します。
次に、プロジェクトをホストする Azure Container App を作成します。 右側にある [緑色のプラスアイコン] を選択して、[新規作成] ダイアログを開きます。 [新規作成] ダイアログ ボックスで、次の値を入力します。
- コンテナー アプリ名:
msdocscontainerapp
と名前を入力します。 - サブスクリプション名: アプリをホストするサブスクリプションを選択します。
- リソース グループ: リソース グループは、Azure で関連するリソースを整理するための論理コンテナーとして機能します。 既存のリソース グループを選択するか、[新規] を選択して、
msdocscontainerapps
などの名前で作成できます。 - コンテナー アプリ環境: コンテナー アプリ環境: すべてのコンテナー アプリは、コンテナー アプリ環境に属している必要があります。 環境によって、1 つまたは複数のコンテナー アプリ用の分離されたネットワークが提供されるため、相互に簡単に呼び出すことができます。 [新規] をクリックして、コンテナー アプリ環境の [新規作成] ダイアログを開きます。 既定値のままにして [OK] を選択し、[環境] ダイアログを閉じます。
- コンテナー名: これは、このコンテナー アプリで実行されるコンテナーのフレンドリ名です。 このクイックスタートでは、名前
msdocscontainer1
を使用します。 通常、コンテナー アプリでは 1 つのコンテナーが実行されますが、複数のコンテナーが必要になる場合もあります。 このような例の 1 つは、特化されたログ記録や通信などのアクティビティを実行するためにサイドカー コンテナーが必要な場合です。
- コンテナー アプリ名:
[作成] を選択して、作成またはコンテナー アプリを確定します。 Visual Studio と Azure によって、必要なリソースが自動的に作成されます。 この処理には数分かかる場合があるため、実行の完了を待って続行します。
リソースが作成されたら、[次へ] をクリックします。
レジストリ画面では、既存のレジストリを選択するか、新しいレジストリを作成することができます。 新しいものを作成するには、右側にある緑色の + アイコンをクリックします。 [新規作成] レジストリ画面で、次の値を入力します。
- DNS プレフィックス: 任意の値
msdocscontainerregistry
または名前を入力します。 - サブスクリプション名: 使用したいサブスクリプションを選択します。選択肢は 1 つしかないかもしれません。
- リソースグループ: 前に作成した msdocs リソース グループを選択します。
- SKU: [Standard] を選択します。
- レジストリの場所: 地理的に近いリージョンを選択します。
- DNS プレフィックス: 任意の値
これらの値を設定したら、[作成] を選択します。 しばらくすると、Visual Studio と Azure によってレジストリが作成されます。
コンテナー レジストリが作成されたら、それが選択されていることを確認し、[完了] を選択します。 しばらくすると、Visual Studio によって発行プロファイルが作成されます。 Visual Studio は、この発行プロファイルにユーザーによって選択された発行オプションとリソースを保存するため、ユーザーは必要に応じてすばやく再発行を行うことができます。 終了すると、ダイアログを閉じることができます。
Visual Studio を使用してアプリを発行する
リソースと発行プロファイルが作成されている間でも、アプリを発行して Azure にデプロイする必要があります。
[発行プロファイル] 画面の右上にある [発行] を選択して、Azure で作成したコンテナー アプリにデプロイします。 この処理には時間がかかる場合があるため、完了するまでお待ちください。
アプリのデプロイが完了すると、Visual Studio によってブラウザーが開き、デプロイされたサイトの URL が表示されます。 適切なリソースすべてのプロビジョニングが完了していない場合、このページには最初、エラーが表示される場合があります。 ブラウザーを定期的に更新し続けることで、デプロイが完全に完了したかどうかを確認できます。
GitHub Actions を使用してアプリを発行する
Container Apps は、GitHub Actions を通して CI/CD を使用してデプロイすることもできます。 GitHub Actions は、プロジェクトの GitHub リポジトリを通して、開発ワークフローの自動化、カスタマイズ、実行を直接行うための強力なツールです。
Visual Studio が、ユーザーが発行しようとしているプロジェクトが GitHub でホストされていることを検出すると、発行フローには追加の [デプロイの種類] ステップが表示されます。 このステージでは、クイックスタートで前述した手順を使用して Visual Studio で直接発行するか、GitHub Actions ワークフローを使用するかを開発者が選択できます。
GitHub Actions ワークフローを選択すると、Visual Studio は、プロジェクトのルート ディレクトリに .github フォルダーを作成し、その中に YAML ファイルを生成します。 YAML ファイルには、コードをプッシュするたびにアプリをビルドして Azure にデプロイするための GitHub Actions 構成が含まれています。
変更を加えてコードをプッシュすると、GitHub の [アクション] タブでビルドとデプロイプロセスの進行状況を確認できます。このページには、ワークフローの進行状況と正常性に関する詳細なログとインジケーターが表示されます。
ビルド ジョブとデプロイ ジョブの横に緑色のチェックマークが表示されたら、このワークフローは完了です。 Container Apps サイトを閲覧すると、最新の変更が適用されていることが確認できるはずです。 コンテナー アプリの URL は、Azure portal ページを使用していつでも見つけることができます。
リソースをクリーンアップする
今後、このアプリケーションを使用しない場合は、リソース グループを削除することで、Azure Container Apps インスタンスと関連サービスすべてを削除できます。
作成したリソースを削除するには、Azure portal で以下の手順を実行してください。
- "概要" セクションで、msdocscontainerapps リソース グループを選択します。
- リソース グループ ページの [概要] の上部で [リソース グループの削除] ボタンを選択します。
- ["my-container-apps" を削除しますか?] 確認ダイアログにリソース グループ名「my-container-apps」を入力します。
- 削除を選択します。
リソース グループを削除するプロセスが完了するまでに数分かかる場合があります。
ヒント
問題がある場合は、 GitHub の Azure Container Apps リポジトリでイシューを開いて、お知らせください。