Azure App Service には、IIS で実行される、ASP.NET や Node.jsなど、Windows 上に定義済みのアプリケーション スタックが用意されています。 構成済みのアプリケーション スタックによって オペレーティング システムがロックダウンされ、低レベルのアクセスが防止されます。 カスタムの Windows コンテナーには、これらの制限はありません。 開発者はコンテナーを完全にカスタマイズし、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを与えることができます。
このクイック スタートでは、Visual Studio から Windows イメージ内の ASP.NET アプリを Azure Container Registry にデプロイする方法について説明します。 アプリは、Azure App Service のカスタム コンテナーで実行します。
前提条件
ASP.NET および Web 開発およびAzure 開発ワークロードと共に Visual Studio 2022 をインストールします。 Visual Studio 2022 Community で、.NET Framework プロジェクトテンプレートと項目テンプレート コンポーネントが ASP.NET および Web 開発ワークロードで選択されていることを確認します。 Visual Studio 2022 を既にインストールしている場合:
- [ヘルプ] を選択して Visual Studio に最新の更新プログラムをインストールします>更新プログラムのチェックを行います。
- [ツール]、[>]\(ツールと機能\)Get Tools を選択して、Visual Studio でワークロードを追加します。
ASP.NET Web アプリを作成する
次の手順に従って ASP.NET Web アプリを作成します。
Visual Studio を開き、[ 新しいプロジェクトの作成] を選択します。
[ 新しいプロジェクトの作成] で、C# ASP.NET Web アプリケーション (.NET Framework) を選択し、[ 次へ] を選択します。
[ 新しいプロジェクトの構成] の [ プロジェクト名] で、アプリケーション に myfirstazurewebapp という名前を付けます。 [ フレームワーク] で 、[.NET Framework 4.8 ] を選択し、[ 作成] を選択します。
任意の種類の ASP.NET Web アプリを Azure にデプロイできます。 このクイック スタートでは、 MVC テンプレートを選択します。
[ 認証] で [なし] を選択 します。 [ 詳細設定] で [ コンテナーのサポート ] を選択し、[ HTTPS の構成] をオフにします。 作成を選択します。
Dockerfile ファイルが自動的に開かない場合は、ソリューション エクスプローラーから開きます。
サポートされている親イメージが必要です。
FROM
行を次のコードに置き換えて親イメージを変更し、ファイルを保存します。FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
Visual Studio メニューの [デバッグ>デバッグなしで開始] を選択して、Web アプリをローカルで実行します。
Azure Container Registry に発行する
ソリューション エクスプローラーで、myfirstazurewebapp プロジェクトを右クリックし、[発行] を選択します。
[ターゲット] で [Docker Container Registry] を選択し、[次へ] を選択します。
[特定のターゲット] で、[Azure Container Registry] を選択し、[次へ] を選択します。
[ 発行] で、適切なサブスクリプションを選択します。 コンテナー レジストリで、[新規作成] を選択して新しい Azure Container Registry を作成します。
[ 新規作成] で、適切なサブスクリプションを選択します。 [ リソース グループ] で [ 新規 ] を選択し、名前として 「myResourceGroup 」と入力し、[ OK] を選択します。 [ SKU] で [ 基本] を選択します。 [ レジストリの場所] で、レジストリの場所を選択し、[ 作成] を選択します。
[ 発行] の [ コンテナー レジストリ] で、作成したレジストリを選択し、[ 完了] を選択します。
デプロイが完了するまで待ちます。 [ 発行] ページにリポジトリ名が表示されるようになりました。 コピー ボタンを選択して、後で使用するためにリポジトリ名をコピーします。
Windows カスタム コンテナーを作成する
Azure portal にサインインします。
Azure portal の左上隅にある [ リソースの作成 ] を選択します。
[一般的なサービス] で、[Web アプリ] で [作成] を選択します。
[ Web アプリの作成] で、サブスクリプションと リソース グループを選択します。 必要な場合は、新しいリソース グループを作成できます。
win-container-demo などのアプリ名を指定します。 [発行] のために、[コンテナー]を選択します。 [オペレーティング システム] で、[Windows] を選択します。
[次へ: データベース]、[次へ: コンテナー] の順に選択して続行します。
[イメージ ソース] で [Docker Hub] を選択し、[イメージとタグ] に、Azure Container Registry への発行でコピーしたリポジトリ名を入力します。
Azure Container Registry やその他のプライベート リポジトリなど、Web アプリケーションの別の場所にカスタム イメージがある場合は、ここで構成できます。 [ 確認と作成 ] を選択して続行します。
すべての詳細を確認し、[ 作成] を選択します。
必要なリソースが Azure によって作成されるのを待ちます。
カスタム コンテナーを参照する
操作が完了すると、Azure portal に通知が表示されます。
[ リソースに移動] を選択します。
このリソースの概要で、[ 既定のドメイン] の横にあるリンクに従います。
新しいブラウザー ページが開いて次のページが表示されます。
数分待ってから再試行すると、既定の ASP.NET ホーム ページが表示されます。
お疲れさまでした。 初めてのカスタム Windows コンテナーを Azure App Service で実行することができました。
コンテナーの起動ログを表示する
Windows コンテナーが読み込まれるまでにしばらく時間がかかる場合があります。 進行状況を確認するには、 <app_name> をアプリの名前に置き換えて、次の URL に移動します。
https://<app_name>.scm.azurewebsites.net/api/logstream
次のようなログがストリーム配信されます。
2018-07-27T12:03:11 Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully
ローカルで更新して再デプロイする
Visual Studio の ソリューション エクスプローラーで、 Views>Home>Index.cshtml を開きます。
上部の
<div class="jumbotron">
HTML タグを検索し、要素全体を次のコードに置き換えます。<div class="jumbotron"> <h1>ASP.NET in Azure!</h1> <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p> </div>
Azure に再デプロイするには、ソリューション エクスプローラーで myfirstazurewebapp プロジェクトを右クリックし、[発行] を選択します。
発行ページで、[ 発行 ] を選択し、発行が完了するまで待ちます。
App Service に Docker Hub から新しいイメージをプルするよう指示するには、アプリを再起動します。 Azure portal のアプリ ページで、[ 再起動>Yes] を選択します。
カスタム コンテナーをもう一度参照します 。 Web ページを更新すると、アプリは最初に "起動" ページに戻った後、更新された Web ページが表示されます。
リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。
Azure portal のメニューまたは ホーム ページで、[ リソース グループ] を選択します。 次に、[ リソース グループ ] ページで myResourceGroup を選択します。
myResourceGroup ページで、一覧表示されているリソースが削除するリソースであることを確認します。
[ リソース グループの削除] を選択し、テキスト ボックスに 「myResourceGroup 」と入力して確認し、[削除] を選択 します。
関連コンテンツ
- カスタム コンテナーを構成する
- App Service と Azure Functions のマネージド ID を使用する方法
- Azure App Service のアプリケーション監視の概要
- Azure Monitor の概要
- カスタム ドメインと証明書を使用してセキュリティで保護する
- アプリを Azure 仮想ネットワークと統合する
- App Service アプリにプライベート エンドポイントを使用する
- Private Link で Azure Container Registry を使用する
- Azure の Windows コンテナーに移行する
- Azure Pipelines を使用してコンテナーをデプロイする
- GitHub Actions を使用してコンテナーをデプロイする
Azure App Service on Linux では、.NET、Java、Node.js、PHP などの言語をサポートする定義済みのアプリケーション スタックが Linux 上に用意されています。 また、カスタム Docker イメージを使用して、まだ Azure で定義されていないアプリケーション スタック上で Web アプリを実行することもできます。 このクイック スタートでは、 Azure Container Registry (ACR) から App Service にイメージをデプロイする方法について説明します。
サーバーレス環境でのコンテナー化されたアプリケーションの詳細については、「 Container Apps」を参照してください。
前提条件
- Azure アカウント。
- Docker。
- Visual Studio Code。
- VS Code 用の Azure App Service 拡張機能。 この拡張機能を使用して、Azure PaaS (サービスとしてのプラットフォーム) 上に Linux Web Apps を作成、管理、デプロイすることができます。
- VS Code 用の Docker 拡張機能。 この拡張機能を使用して、ローカルの Docker イメージと Docker コマンドの管理を簡素化し、作成したアプリ イメージを Azure にデプロイすることができます。
コンテナー レジストリの作成
このクイックスタートでは、レジストリとして Azure Container Registry を使用します。 他のレジストリを使用できますが、手順が若干異なる場合があります。
「クイック スタート: Azure portal を使用してプライベート コンテナー レジストリを作成する」の手順に従って、コンテナー レジストリを作成します。
重要
Azure Container Registry を作成するときは、 必ず [管理者ユーザー ] オプションを [有効] に設定してください。 Azure portal のレジストリ ページの [アクセス キー ] セクションから設定することもできます。 App Service にアクセスするためには、この設定が必要となります。 マネージド ID については、 ACR からのデプロイに関するチュートリアルを参照してください。
サインイン
Visual Studio Code を起動します。
アクティビティ バーで Azure ロゴを選択し、[ACCOUNTS ] > [TENANTS] に移動します。 [ Azure にサインイン] を 選択し、指示に従います。
下部にある ステータス バー で、Azure アカウントのメール アドレスを確認します。 APP SERVICE エクスプローラーに、サブスクリプションが表示されます。
アクティビティ バーで、 Docker ロゴを選択します。 REGISTRIES エクスプローラーで、作成したコンテナー レジストリが表示されることを確認します。
前提条件を確認する
Docker がインストールされ、実行されていることを確認します。 次のコマンドは、Docker が実行されている場合、そのバージョンを表示します。
docker --version
イメージを作成およびビルドする
Visual Studio Code で空のフォルダーを開き、 Dockerfile という名前のファイルを追加します。 Dockerfile で、目的の言語フレームワークに基づいてコンテンツを貼り付けます。
コマンド パレットを開き、「 Docker イメージ: ビルド イメージ」と入力します。 Enter キーを 押 してコマンドを実行します。
イメージ タグ ボックスで、目的のタグを
<acr-name>.azurecr.io/<image-name>:<tag>
の形式で指定します。ここで、<acr-name>
は、作成したコンテナー レジストリの名前です。 Enter キーを押します。イメージのビルドが完了したら、IMAGES エクスプローラーの上部にある [最新の情報に更新] を選択し、イメージが正常にビルドされたことを確認します。
コンテナー レジストリにデプロイする
アクティビティ バーで、 Docker アイコンを選択します。 IMAGES エクスプローラーで、ビルドしたイメージを見つけます。
画像を展開し、目的のタグを右クリックして、[プッシュ] を選択 します。
イメージ タグが
<acr-name>.azurecr.io
で始まり、 Enter キーを押していることを確認します。Visual Studio Code でコンテナー レジストリへのイメージのプッシュが完了したら、REGISTRIES エクスプローラーの上部にある [最新の情報に更新] を選択し、イメージが正常にプッシュされたことを確認します。
App Service にデプロイする
- REGISTRIES エクスプローラーでイメージを展開し、タグを右クリックし、[Azure App Service へのイメージのデプロイ] を選択します。
- プロンプトに従って、サブスクリプション、グローバルに一意なアプリ名、リソース グループ、App Service プランを選択します。 価格レベルと近くのリージョンとして B1 Basic を選択します。
デプロイ後は、http://<app-name>.azurewebsites.net
でアプリにアクセスできます。
リソース グループは、Azure 内のすべてのアプリケーションのリソースの名前付きコレクションです。 たとえば、Web サイトやデータベース、Azure 関数への参照をリソース グループに含めることができます。
App Service プランでは、Web サイトのホストに使用する物理リソースを定義します。 このクイック スタートでは、Linux インフラストラクチャ上の Basic ホスティング プランを使用します。つまり、サイトは他の Web サイトと共に Linux マシンでホストされます。 Basic プランから開始する場合は、Azure portal を使用してスケールアップし、マシン上で実行されている唯一のサイトにすることができます。 価格については、「 App Service の価格」を参照してください。
Web サイトの閲覧
[出力] パネルには、デプロイ操作の状態が表示されます。 操作が完了したら、ポップアップ通知で [ サイトを開く ] を選択して、ブラウザーでサイトを開きます。
リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。
Azure portal のメニューまたは ホーム ページで、[ リソース グループ] を選択します。 次に、[ リソース グループ ] ページで myResourceGroup を選択します。
myResourceGroup ページで、一覧表示されているリソースが削除するリソースであることを確認します。
[ リソース グループの削除] を選択し、テキスト ボックスに 「myResourceGroup 」と入力して確認し、[削除] を選択 します。
関連コンテンツ
おめでとうございます。このクイックスタートを正常に完了できました。
App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュするだけで済み、アプリの再起動時に更新されたイメージが取得されます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。
- カスタム ドメインと証明書を使用してセキュリティで保護する
- Azure の Windows コンテナーに移行する
- アプリを Azure 仮想ネットワークと統合する
- App Service アプリにプライベート エンドポイントを使用する
- Azure Monitor の概要
- Azure App Service のアプリケーション監視の概要
- App Service と Azure Functions のマネージド ID を使用する方法
- カスタム コンテナーを構成する
- サイドカー コンテナーのチュートリアル
その他の Azure 拡張機能は次のとおりです。
- Azure Cosmos DB
- Azure 関数
- Azure CLI ツール
- Azure Resource Manager ツール
- Azure Tools 拡張機能パックには、この一覧のすべての拡張機能が含まれています。
Azure App Service on Linux では、.NET、Java、Node.js、PHP などの言語をサポートする定義済みのアプリケーション スタックが Linux 上に用意されています。 また、カスタム Docker イメージを使用して、まだ Azure で定義されていないアプリケーション スタック上で Web アプリを実行することもできます。 このクイックスタートでは、Azure Container Registry から Azure App Service にイメージをデプロイする方法について説明します。
サーバーレス環境でのコンテナー化されたアプリケーションの詳細については、「 Container Apps」を参照してください。
前提条件
サンプル リポジトリをクローンする
次 のコマンドを使用して、.NET 6.0 サンプル アプリ を複製します。
git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git
Azure Container Registry にイメージをプッシュする
複製されたリポジトリのルート フォルダーで操作していることを確認します。 このリポジトリには 、Dockerfile.linux ファイルが含まれています。
Azure CLI にサインインします。
az login
Azure Container Registry にサインインします。
az acr login -n <your_registry_name>
コンテナー イメージをビルドします。 この例では、イメージ名 dotnetcore-docs-hello-world-linux を使用します。
docker build -f Dockerfile.linux -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux .
Azure Container Registry にコンテナー イメージをプッシュします。
docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux:latest
注意
Dockerfile は、内部でポート番号を 80 に設定します。 コンテナーの構成の詳細については、「 カスタム コンテナーの構成」を参照してください。
Azure にデプロイする
Azure portal にサインインする
Azure portal にサインインします。
Azure リソースを作成する
検索で アプリ サービス を入力します。 [ サービス] で、[ App Services] を選択します。
[App Services] ページで、[作成>Web App] を選択します。
[ 基本 ] タブの [ プロジェクトの詳細] で、適切なサブスクリプションを選択します。 [ 新しいリソース グループの作成] を選択します。 名前として 「myResourceGroup 」と入力します。
[ インスタンスの詳細] で次の手順を実行します。
- グローバルに一意の Web アプリ名を入力します。
- [コンテナー] を選択します。
- オペレーティング システムの場合は、Linux を選択します。
- アプリを提供する リージョン を選択します。
[App Service プラン] で、[新しい App Service プランの作成] を選択します。 名前として 「myAppServicePlan 」と入力します。 Free レベルに変更するには、[サイズの 変更] を選択し、[ 開発/テスト ] タブを選択し、 F1 キーを押します。 [ 適用] を選択します。
ページの上部にある [ コンテナー ] タブを選択します。
[ コンテナー ] タブの [ イメージ ソース] で、[ Azure Container Registry] を選択します。 Azure Container Registry オプションで、次の値を設定します。
- レジストリ: Azure Container Registry を選択します。
- 画像: dotnetcore-docs-hello-world-linux を選択します。
- タグ: [最新] を選択します。
ページの下部にある [ 確認と作成 ] を選択します。
検証の実行後、[ 作成] を選択します。
デプロイが完了したら、[ リソースに移動] を選択します。
アプリを参照する
URL http://<app-name>.azurewebsites.net
を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。
リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。
Azure portal のメニューまたは ホーム ページで、[ リソース グループ] を選択します。 次に、[ リソース グループ ] ページで myResourceGroup を選択します。
myResourceGroup ページで、一覧表示されているリソースが削除するリソースであることを確認します。
[ リソース グループの削除] を選択し、テキスト ボックスに 「myResourceGroup 」と入力して確認し、[削除] を選択 します。
関連コンテンツ
おめでとうございます。このクイックスタートを正常に完了できました。
App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュするだけです。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。
Azure App Service には、IIS で実行される、ASP.NET や Node.jsなど、Windows 上に定義済みのアプリケーション スタックが用意されています。 構成済みのアプリケーション スタックによって オペレーティング システムがロックダウンされ、低レベルのアクセスが防止されます。 カスタムの Windows コンテナーには、これらの制限はありません。 開発者はコンテナーを完全にカスタマイズし、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを与えることができます。
このクイックスタートでは、Azure Container Registry から Azure App Service に Windows イメージの ASP.NET アプリをデプロイする方法について説明します。
前提条件
- Azure アカウント
- Azure Container Registry
- Azure CLI
- Docker for Windows をインストールする
- Docker を切り替えて Windows コンテナーを実行する
サンプル リポジトリをクローンする
次 のコマンドを使用して、.NET 6.0 サンプル アプリ を複製します。
git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git
Azure Container Registry にイメージをプッシュする
複製されたリポジトリのルート フォルダーで操作していることを確認します。 このリポジトリには Dockerfile.windows ファイルが含まれています。 この記事では、基本オペレーティング システムとして、Windows ベースを明示的に呼び出す Windows Nano Server 長期サービス チャネル (LTSC) 2022 を使用します。
注意
このコンテナーは Windows コンテナーですが、パスではスラッシュを使用する必要があります。 詳細については、「 Dockerfile の書き込み」を参照してください。
Azure CLI にサインインします。
az login
Azure Container Registry にサインインします。
az acr login -n <your_registry_name>
コンテナー イメージをビルドします。 この例では、イメージ名 dotnetcore-docs-hello-world-windows を使用します。
docker build -f Dockerfile.windows -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows .
Azure Container Registry にコンテナー イメージをプッシュします。
docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows:latest
注意
Dockerfile は、内部でポート番号を 80 に設定します。 コンテナーの構成の詳細については、「 カスタム コンテナーの構成」を参照してください。
Azure にデプロイする
Azure portal にサインインする
Azure portal にサインインします。
Azure リソースを作成する
検索で アプリ サービス を入力します。 [ サービス] で、[ App Services] を選択します。
[App Services] ページで、[作成>Web App] を選択します。
[ 基本 ] タブの [ プロジェクトの詳細] で、適切なサブスクリプションを選択します。 [ 新しいリソース グループの作成] を選択します。 名前として 「myResourceGroup 」と入力します。
[ インスタンスの詳細] で次の手順を実行します。
- グローバルに一意の Web アプリ名を入力します。
- [コンテナー] を選択します。
- オペレーティング システムの場合は、Linux を選択します。
- アプリを提供する リージョン を選択します。
[App Service プラン] で、[新しい App Service プランの作成] を選択します。 名前として 「myAppServicePlan 」と入力します。 レベルを変更するには、[ 価格プランの探索] を選択し、プランを選択して、ページの下部にある [選択 ] を選択します。
ページの上部にある [ コンテナー ] タブを選択します。
[ コンテナー ] タブの [ イメージ ソース] で、[ Azure Container Registry ] を選択します。 Azure Container Registry オプションで、次の値を設定します。
- レジストリ: Azure Container Registry を選択します。
- 画像: dotnetcore-docs-hello-world-linux を選択します。
- タグ: [最新] を選択します。
ページの下部にある [ 確認と作成 ] を選択します。
検証の実行後、[ 作成] を選択します。
デプロイが完了したら、[ リソースに移動] を選択します。
アプリを参照する
URL http://<app-name>.azurewebsites.net
を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。
ホスト オペレーティング システムがフッターに表示され、Windows コンテナーで実行されていることを確認します。
リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。
Azure portal のメニューまたは ホーム ページで、[ リソース グループ] を選択します。 次に、[ リソース グループ ] ページで myResourceGroup を選択します。
myResourceGroup ページで、一覧表示されているリソースが削除するリソースであることを確認します。
[ リソース グループの削除] を選択し、テキスト ボックスに 「myResourceGroup 」と入力して確認し、[削除] を選択 します。
関連コンテンツ
おめでとうございます。このクイックスタートを正常に完了できました。
App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュするだけです。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。
- カスタム コンテナーを構成する
- App Service と Azure Functions のマネージド ID を使用する方法
- Azure App Service のアプリケーション監視の概要
- Azure Monitor の概要
- カスタム ドメインと証明書を使用してセキュリティで保護する
- アプリを Azure 仮想ネットワークと統合する
- App Service アプリにプライベート エンドポイントを使用する
- Private Link で Azure Container Registry を使用する
- Azure の Windows コンテナーに移行する
- Azure Pipelines を使用してコンテナーをデプロイする
- GitHub Actions を使用してコンテナーをデプロイする
Azure App Service には、IIS で実行される、ASP.NET や Node.jsなど、Windows 上に定義済みのアプリケーション スタックが用意されています。 構成済みのアプリケーション スタックによって オペレーティング システムがロックダウンされ、低レベルのアクセスが防止されます。 カスタムの Windows コンテナーには、これらの制限はありません。 開発者はコンテナーを完全にカスタマイズし、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを与えることができます。
このクイック スタートでは、 Microsoft Artifact Registry から Azure App Service に Windows イメージに ASP.NET アプリをデプロイする方法について説明します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 アカウントを無料で作成します。
- Azure PowerShell。
Azure に接続する
Connect-AzAccount コマンドを使用して、プロンプトに従って Azure アカウントにサインインします。
Connect-AzAccount
リソース グループを作成する
New-AzResourceGroup コマンドを使用してリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
次の例では、 myResourceGroup という名前のリソース グループを eastus の場所に作成します。 App Service でサポートされているすべての場所を表示するには、 Get-AzLocation コマンドを実行します。
New-AzResourceGroup -Name myResourceGroup -Location eastus
このコマンドは Login Succeeded
を返します。
App Service プランを作成する
New-AzAppServicePlan コマンドを使用して、新しい App Service プランを作成します。
次の例では、myAppServicePlan
価格レベル () の -Tier PremiumV3
という名前の App Service プランを作成します。 この -HyperV
パラメーターは、Windows コンテナーを指定します。
New-AzAppServicePlan -Name myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -Tier PremiumV3 -HyperV
Web アプリを作成する
New-AzWebApp コマンドを使用して新しいアプリを作成します。
New-AzWebApp -Name myWebApp -AppServicePlan myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -ContainerImageName mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
- Name パラメーターは、Web アプリ名を指定します。
- AppServicePlan パラメーターは、App Service プラン名を指定します。
- Location パラメーターは、場所を指定します。
- ResourceGroupName パラメーターは、リソース グループの名前を指定します。
- ContainerImageName パラメーターは、コンテナー イメージ名と省略可能なタグを指定します。
このコマンドは、完了するまで数分かかることがあります。
アプリを参照する
URL http://<app-name>.azurewebsites.net
を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。
リソースをクリーンアップする
Remove-AzResourceGroup コマンドを使用してリソース グループを削除します。
Remove-AzResourceGroup myResourceGroup
関連コンテンツ
おめでとうございます。このクイックスタートを正常に完了できました。
App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュするだけです。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。
- カスタム コンテナーを構成する
- App Service と Azure Functions のマネージド ID を使用する方法
- Azure App Service のアプリケーション監視の概要
- Azure Monitor の概要
- カスタム ドメインと証明書を使用してセキュリティで保護する
- アプリを Azure 仮想ネットワークと統合する
- App Service アプリにプライベート エンドポイントを使用する
- Private Link で Azure Container Registry を使用する
- Azure の Windows コンテナーに移行する
- Azure Pipelines を使用してコンテナーをデプロイする
- GitHub Actions を使用してコンテナーをデプロイする
Azure App Service には、IIS で実行される、ASP.NET や Node.jsなど、Windows 上に定義済みのアプリケーション スタックが用意されています。 構成済みのアプリケーション スタックによって オペレーティング システムがロックダウンされ、低レベルのアクセスが防止されます。 カスタムの Windows コンテナーには、これらの制限はありません。 開発者はコンテナーを完全にカスタマイズし、コンテナー化されたアプリケーションに Windows 機能へのフル アクセスを与えることができます。
このクイック スタートでは、 Microsoft Artifact Registry から Azure App Service に Windows イメージに ASP.NET アプリをデプロイする方法について説明します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 アカウントを無料で作成します。
- Azure CLI
Azure に接続する
az login コマンドを使用して、プロンプトに従って Azure アカウントにサインインします。
az login
リソース グループを作成する
az group create
コマンドでリソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
次の例では、 myResourceGroup という名前のリソース グループを eastus の場所に作成します。 App Service でサポートされているすべての場所を表示するには、 az appservice list-locations コマンドを実行します。
az group create --name myResourceGroup --___location eastus
App Service プランを作成する
az appservice plan create
コマンドを使用して、リソース グループに App Service プランを作成します。
次の例では、myAppServicePlan
価格レベル () の --sku P1V3
という名前の App Service プランを作成します。
az appservice plan create --resource-group myResourceGroup --___location eastus --name myAppServicePlan --hyper-v --sku p1v3
注意
エラーが発生した場合、 このコマンドの動作は、appservice-kube という拡張機能によって変更されました。 appservice-kube
拡張機能を削除します。
Web アプリを作成する
az webapp create コマンドを使用して、myAppServicePlan
App Service プランにカスタム コンテナー Web アプリを作成します。
myContainerApp は一意のアプリ名に置き換えてください (有効な文字はa-z
、0-9
、-
)。
az webapp create --name myContainerApp --plan myAppServicePlan --resource-group myResourceGroup --deployment-container-image-name mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
- Name パラメーターは、Web アプリ名を指定します。
- AppServicePlan パラメーターは、App Service プラン名を指定します。
- Location パラメーターは、場所を指定します。
- ResourceGroupName パラメーターは、リソース グループの名前を指定します。
- deployment-container-image-name パラメーターは、コンテナー イメージ名と省略可能なタグを指定します。
アプリを参照する
URL http://<app-name>.azurewebsites.net
を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。
リソースをクリーンアップする
az group delete コマンドを使用してリソース グループを削除します。
az group delete --no-wait --name <resource_group>
関連コンテンツ
おめでとうございます。このクイックスタートを正常に完了できました。
App Service アプリでは、起動のたびにコンテナー レジストリからプルされます。 イメージをリビルドする場合は、コンテナー レジストリにプッシュするだけです。 アプリが再起動すると、更新されたイメージがプルされます。 更新されたイメージをすぐにプルするようにアプリに指示するには、アプリを再起動します。
- カスタム コンテナーを構成する
- App Service と Azure Functions のマネージド ID を使用する方法
- Azure App Service のアプリケーション監視の概要
- Azure Monitor の概要
- カスタム ドメインと証明書を使用してセキュリティで保護する
- アプリを Azure 仮想ネットワークと統合する
- App Service アプリにプライベート エンドポイントを使用する
- Private Link で Azure Container Registry を使用する
- Azure の Windows コンテナーに移行する
- Azure Pipelines を使用してコンテナーをデプロイする
- GitHub Actions を使用してコンテナーをデプロイする