クイックスタート: ASP.NET Web アプリをデプロイする

このクイックスタートでは、初めての ASP.NET Web アプリを作成し、Azure App Service にデプロイする方法について説明します。 App Service はさまざまなバージョンの .NET アプリをサポートし、高度にスケーラブルな自己適用型の Web ホスティング サービスを提供します。 ASP.NET Web アプリはクロスプラットフォームであり、Linux でも Windows でもホストすることができます。 完了すると、App Service ホスティング プランと、デプロイされた Web アプリケーションを含む App Service とで構成される、Azure リソース グループを作成できます。

または、App Service の Windows または Linux コンテナーの一部として、ASP.NET Web アプリをデプロイすることもできます。

前提条件

既に Visual Studio 2022 がインストール済みである場合:

  1. [ヘルプ]>[更新プログラムの確認] の順に選択して、Visual Studio に最新の更新プログラムをインストールします。
  2. [ツール]>[ツールと機能を取得] の順に選択し、ワークロードを追加します。
最新の .NET 6.0 SDK をインストールします。
最新の .NET 6.0 SDK をインストールします。
最新の .NET 6.0 SDK をインストールします。

ASP.NET Web アプリを作成する

  1. Visual Studio を開き、 [新しいプロジェクトの作成] を選択します。

  2. [新しいプロジェクトの作成] で、[ASP.NET Core Web アプリ] を検索して選択し、[次へ] を選択します。

  3. [新しいプロジェクトの構成] で、アプリケーションに MyFirstAzureWebApp という名前を付け、 [次へ] を選択します。

    Visual Studio - ASP.NET 6.0 Web アプリを構成する画面のスクリーンショット。

  4. [.NET 6.0 (Long-term support)](.NET 6.0 (長期サポート)) を選択します。

  5. [認証の種類][なし] に設定されていることを確認します。 [作成] を選択します

    Visual Studio - .NET 6.0 を選択する際の追加情報のスクリーンショット。

  6. Visual Studio のメニューから [デバッグ]>[デバッグなしで開始] の順に選択して、Web アプリをローカルで実行します。

    Visual Studio - ASP.NET Core 6.0 をローカルで実行している画面のスクリーンショット。

  1. ターミナル ウィンドウで MyFirstAzureWebApp という名前の新しいフォルダーを作成し、Visual Studio Code で開きます。

    mkdir MyFirstAzureWebApp
    code MyFirstAzureWebApp
    
  2. Visual Studio Code で、「Ctrl + `」と入力してターミナル ウィンドウを開きます。

  3. Visual Studio Code ターミナルで、dotnet new webapp コマンドを使用して新しい .NET Web アプリを作成します。

    dotnet new webapp -f net6.0
    
  4. Visual Studio Code のターミナルから dotnet run コマンドを使用し、アプリケーションをローカルで実行します。

    dotnet run --urls=https://localhost:5001/
    
  5. Web ブラウザーを開き、https://localhost:5001 のアプリに移動します。

    テンプレート ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    Visual Studio Code - .NET 6.0 をブラウザーからローカルで実行する画面のスクリーンショット。

  1. 自分のマシンでターミナル ウィンドウを開き、作業ディレクトリに移動します。 dotnet new webapp コマンドを使用して新しい .NET Web アプリを作成し、新しく作成したアプリのディレクトリに移動します。

    dotnet new webapp -n MyFirstAzureWebApp --framework net6.0
    cd MyFirstAzureWebApp
    
  2. 同じターミナル セッションから dotnet run コマンドを使用して、アプリケーションをローカルで実行します。

    dotnet run --urls=https://localhost:5001/
    
  3. Web ブラウザーを開き、https://localhost:5001 のアプリに移動します。

    テンプレート ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    Visual Studio Code - ローカル ブラウザーでの ASP.NET Core 6.0 のスクリーンショット。

この手順では、デプロイするデモ プロジェクトをフォークします。

  • .NET 6.0 サンプル アプリに移動します。
  • GitHub のページの右上にある [フォーク] ボタンを選択します。
  • [所有者] を選択し、[リポジトリ名] を既定のままにします。
  • [Create fork] (フォークの作成) を選択します。

Web アプリを公開する

Web アプリを発行するには、まず、アプリの発行先となる新しい App Service を作成して構成する必要があります。

App Service の設定の一環として、次のものを作成します。

App Service リソースを作成してプロジェクトを発行するには、次の手順に従います。

  1. ソリューション エクスプローラーMyFirstAzureWebApp プロジェクトを右クリックし、 [公開] を選択します。

  2. [公開][Azure] を選択し、 [次へ] を選択します。

    Visual Studio - Web アプリを発行し、Azure をターゲットにする画面のスクリーンショット。

  3. [特定のターゲット] で、 [Azure App Service (Linux)] または [Azure App Service (Windows)] を選択します。 次に、 [次へ] を選択します。

    重要

    ASP.NET Framework 4.8 をターゲットにする場合は、 [Azure App Service (Windows)] を使用します。

  4. 表示されるオプションは、既に Azure にサインインしているかどうかや、Visual Studio アカウントが Azure アカウントとリンクされているかどうかによって異なります。 [アカウントの追加] または [サインイン] を選択して Azure サブスクリプションにサインインします。 既にサインインしている場合は、目的のアカウントを選択します。

    Visual Studio - Azure へのサインインを選択するためのダイアログのスクリーンショット。

  5. [App Service インスタンス] の右側にある [+] を選択します。

    Visual Studio - App Service アプリの新規作成ダイアログのスクリーンショット。

  6. [サブスクリプション] で、リストされているサブスクリプションを受け入れるか、ドロップダウン リストから新しいサブスクリプションを選択します。

  7. [リソース グループ] で、 [新規] を選択します。 [新しいリソース グループ名] に「myResourceGroup」と入力し、 [OK] を選択します。

  8. [ホスティング プラン] で、 [新規] を選択します。

  9. ホスティング プランの [新規作成] ダイアログで、次の表で指定されている値を使用します。

    設定 推奨値 説明
    ホスティング プラン MyFirstAzureWebAppPlan App Service プランの名前です。
    場所 "西ヨーロッパ" Web アプリがホストされているデータ センターです。
    [サイズ] Free 価格レベルによって、ホスティング機能が決まります。

    Azure portal のホスティング プランの新規作成画面のスクリーンショット。

  10. [名前] に、有効な文字 (a-zA-Z0-9-) のみから成る一意のアプリ名を入力します。 自動的に生成される一意の名前をそのまま使用してもかまいません。 Web アプリの URL は http://<app-name>.azurewebsites.net です。<app-name> には自分のアプリの名前を指定します。

  11. [作成] を選択して、Azure リソースを作成します。

    Visual Studio - アプリ リソースの作成ダイアログのスクリーンショット。

    ウィザードが完了すると、Azure リソースが作成され、ASP.NET Core プロジェクトを発行する準備が整います。

  12. [公開] ダイアログの [App Service インスタンス] で新しい App Service アプリが選択されていることを確認し、[完了] を選択します。 選択した App Service アプリの発行プロファイルが自動的に作成されます。

  13. [公開] ページで [公開] を選択します。 警告メッセージが表示される場合は、[続行] を選択します。

    Visual Studio によってアプリのビルド、パッケージ化、および Azure への発行が行われた後、既定のブラウザーでアプリが起動されます。

    ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    Visual Studio - Azure での ASP.NET Core 6.0 Web アプリのスクリーンショット。

  1. Visual Studio Code でコマンド パレットを開き、Ctrl+Shift+P キーを押します。

  2. [Azure App Service: Web アプリにデプロイ] を検索して選択します。

  3. プロンプトに次のように応答します。

    1. デプロイするフォルダーとして [MyFirstAzureWebApp] を選択します。
    2. 確認を求められたら [構成の追加] を選択します。
    3. メッセージに従って Azure アカウントにサインインします。
    4. サブスクリプションを選択します。
    5. [Create new Web App](新しい Web アプリの作成)、[詳細設定] の順に選択します。
    6. [Enter a globally unique name](グローバルに一意の名前を入力する) には、Azure 全体で一意の名前を使用します ("有効な文字は a-z0-9- です")。 会社名とアプリ識別子を組み合わせて使用すると、適切なパターンになります。
    7. [新しいリソース グループの作成] を選択して、myResourceGroup のような名前を指定します。
    8. "ランタイム スタックを選択してください" という確認を求められたら、次の操作を行います。
    • [.NET 6.0] の場合は、 [.NET 6] を選択します
    • [.NET Framework 4.8] の場合は、 [ASP.NET V4.8] を選択します
    1. オペレーティング システム (Windows または Linux) を選択します。
      • .NET Framework 4.8 の場合は、暗黙的に Windows が選択されます。
    2. お近くの場所を選択します。
    3. [新しい App Service プランの作成] を選択し、名前を指定して、[F1 Free]価格レベルを選択します。
    4. Application Insights リソースに対して [Skip for now](今はしない) を選択します。
  4. ポップアップ [ワークスペース "MyFirstAzureWebApp" を常に "<app-name>"にデプロイする] で、[はい] を選択して、そのワークスペースにいるときには毎回同じ App Service アプリに Visual Studio Code がデプロイされるようにします。

  5. 発行が完了したら、通知の [Web サイトの参照] を選択し、確認を求められたら [開く] を選択します。

    ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    Visual Studio Code - Azure での ASP.NET Core 6.0 Web アプリのスクリーンショット。

  1. az login コマンドを使用し、プロンプトに従って Azure アカウントにサインインします。

    az login
    
  2. az webapp up コマンドを使用して、ローカルの MyFirstAzureWebApp ディレクトリにコードをデプロイします。

    az webapp up --sku F1 --name <app-name> --os-type <os>
    
    • az コマンドが認識されない場合は、「前提条件」の説明に従って Azure CLI がインストールされていることを確認してください。
    • <app-name> を Azure 全体で一意の名前で置き換えます ("<app-name>")。 会社名とアプリ識別子を組み合わせて使用すると、適切なパターンになります。
    • --sku F1 引数を使用すると、Free価格レベルで Web アプリが作成されます。 この引数を省略するとより高速な Premium レベルが使用されるため、時間単位のコストが発生します。
    • <os>linux または windows に置き換えます。 ASP.NET Framework 4.8 をターゲットにする場合は、windows を使用する必要があります。
    • 必要に応じて、引数 --location <location-name> を含めることができます。ここで、<location-name> は利用可能な Azure リージョンです。 az account list-locations コマンドを実行すると、お使いの Azure アカウントで使用可能なリージョンの一覧を取得できます。

    このコマンドは、完了するまで数分かかることがあります。 実行中には、リソース グループ、App Service プラン、およびホスティング アプリの作成、ログ記録の構成、ZIP デプロイの実行に関するメッセージが表示されます。 その後、アプリの URL を含むメッセージが表示されます。

    You can launch the app at http://<app-name>.azurewebsites.net
    
  3. Web ブラウザーを開き、URL に移動します。

    ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    CLI - Azure での ASP.NET Core 6.0 Web アプリのスクリーンショット。

Note

Azure PowerShell は、Windows ホスティング プラットフォームでアプリを作成する場合に推奨されます。 Linux でアプリを作成するには、Azure CLI など、別のツールを使用します。

  1. Connect-AzAccount コマンドを使用し、プロンプトに従って Azure アカウントにサインインします。

    Connect-AzAccount
    
  1. New-AzWebApp コマンドを使用して新しいアプリを作成します。

    New-AzWebApp -Name <app-name> -Location westeurope
    
    • <app-name> を Azure 全体で一意の名前で置き換えます ("有効な文字は、a-z0-9、および - です")。 会社名とアプリ識別子の組み合わせは、適切なパターンです。
    • 必要に応じて、-Location <location-name> パラメーターを含めることができます。ここで、<location-name> は利用可能な Azure リージョンです。 Get-AzLocation コマンドを実行すると、お使いの Azure アカウントで使用可能なリージョンの一覧を取得できます。

    このコマンドは、完了するまで数分かかることがあります。 実行中、リソース グループ、App Service プラン、App Service リソースが作成されます。

  2. アプリケーション ルート フォルダーから dotnet publish コマンドを使用して MyFirstAzureWebApp アプリケーションのデプロイを準備します。

    dotnet publish --configuration Release
    
  3. リリース ディレクトリに移動し、コンテンツから zip ファイルを作成します。

    cd bin\Release\net6.0\publish
    Compress-Archive -Path * -DestinationPath deploy.zip
    
  4. Publish-AzWebApp コマンドを使用し、Azure アプリに zip ファイルを発行します。

    Publish-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -ArchivePath (Get-Item .\deploy.zip).FullName -Force
    

    Note

    -ArchivePath には、zip ファイルの完全なパスが必要です。

  5. Web ブラウザーを開き、URL に移動します。

    ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    CLI - Azure での ASP.NET Core 6.0 Web アプリのスクリーンショット。

  1. 検索に「app services」と入力します。 [サービス] で、[App Services] を選択します。

    Azure portal でのポータルの検索のスクリーンショット。

  2. [App Services] ページで、[+ Create](+ 作成) を選択します。

  3. [基本] タブの [プロジェクトの詳細] で、正しいサブスクリプションが選択されていることを確認した後、リソース グループの [新規作成] を選びます。 名前として「myResourceGroup」と入力します。

    Azure サブスクリプションと Web アプリのリソース グループを選択する場所を示す [プロジェクトの詳細] セクションのスクリーンショット。

  4. [インスタンスの詳細] で、以下の操作を行います。

    • [名前] で、グローバルに一意の Web アプリ名を入力します。
    • [発行][コード] を選択します。
    • [ランタイム スタック][.NET 6 (LTS)] を選択します。
    • [オペレーティング システム] と、アプリの提供元である [リージョン] を選択します。

    .NET 6 ランタイムに関する App Service の [インスタンスの詳細] のスクリーンショット。

  5. [App Service プラン] で、App Service プランの [新規作成] を選びます。 名前に「myAppServicePlan」と入力します。 Free レベルに変更するには、[サイズの変更] を選び、[Dev/Test] タブを選んで、[F1] を選び、ページの下部にある [適用] ボタンを選びます。

    管理者のユーザー名とパスワードを入力する [管理者アカウント] セクションのスクリーンショット。

  6. ページの下部にある [Next: Deployment >](次へ: デプロイ >) ボタンを選択します。

  7. [デプロイ] タブの [GitHub Actions の設定] で、[継続的デプロイ][有効] になっていることを確認します。

  8. [GitHub Actions の詳細] で、GitHub アカウントで認証し、次のオプションを選択します。

    • [組織] で、デモ プロジェクトをフォークした組織を選択します。
    • [リポジトリ] では、[dotnetcore-docs-hello-world] プロジェクトを選択します。
    • [ブランチ] では、[マスター] を選択します。

    .NET 6 ランタイムを使用したアプリのデプロイ オプションのスクリーンショット。

  9. ページの下部にある [確認と作成] ボタンを選択します。

    ページの下部にある [確認と作成] ボタンのスクリーンショット。

  10. 検証の実行後、ページの下部にある [作成] ボタンを選択します。

  11. デプロイが完了したら、 [リソースに移動] を選択します。

    リソースへの移動の次の手順を示すスクリーンショット。

  12. URL http://<app-name>.azurewebsites.net を使って、お使いの Web ブラウザーでデプロイされたアプリケーションを参照します。

アプリを更新して再デプロイする

Web アプリを更新して再デプロイするには、次の手順に従います。

  1. ソリューション エクスプローラーで、対象プロジェクトの [Index.cshtml] を開きます。

  2. 最初の <div> 要素を次のコードに置き換えます。

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    

    変更内容を保存します。

  3. Azure に再デプロイするには、ソリューション エクスプローラーMyFirstAzureWebApp プロジェクトを右クリックし、 [公開] を選択します。

  4. 公開の概要ページで [公開] を選択します。

    発行が完了すると、Visual Studio で Web アプリの URL のブラウザーが起動されます。

    更新された ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    Visual Studio - Azure での更新済み ASP.NET Core 6.0 Web アプリのスクリーンショット。

  1. Index.cshtml を開きます。

  2. 最初の <div> 要素を次のコードに置き換えます。

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    

    変更内容を保存します。

  3. Visual Studio Code でコマンド パレットを開き、Ctrl+Shift+P キーを押します。

  4. [Azure App Service: Web アプリにデプロイ] を検索して選択します。

  5. 確認を求められたら [デプロイ] を選択します。

  6. 発行が完了したら、通知の [Web サイトの参照] を選択し、確認を求められたら [開く] を選択します。

    更新された ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    Visual Studio Code - Azure での更新済み ASP.NET Core 6.0 Web アプリのスクリーンショット。

ローカル ディレクトリの Index.cshtml ファイルを開きます。 最初の <div> 要素を置き換えます。

<div class="jumbotron">
    <h1>.NET 💜 Azure</h1>
    <p class="lead">Example .NET app to Azure App Service.</p>
</div>

変更を保存してから、もう一度 az webapp up コマンドを使用してアプリを再デプロイします。

ASP.NET Core 6.0 はクロスプラットフォームです。前のデプロイに基づいて、<os>linux または windows に置き換えてください。

az webapp up --os-type <os>

このコマンドでは、 .azure/config ファイルにローカルでキャッシュされている値 (アプリ名、リソース グループ、App Service プランなど) を使用します。

デプロイが完了したら、「アプリの参照」の手順で開いた元のブラウザー ウィンドウに切り替えて、更新をクリックします。

更新された ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

CLI - Azure での更新済み ASP.NET Core 6.0 Web アプリのスクリーンショット。

  1. ローカル ディレクトリの Index.cshtml ファイルを開きます。 最初の <div> 要素を置き換えます。

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    
  2. アプリケーション ルート フォルダーから dotnet publish コマンドを使用して MyFirstAzureWebApp アプリケーションのデプロイを準備します。

    dotnet publish --configuration Release
    
  3. リリース ディレクトリに移動し、コンテンツから zip ファイルを作成します。

    cd bin\Release\net6.0\publish
    Compress-Archive -Path * -DestinationPath deploy.zip
    
  4. Publish-AzWebApp コマンドを使用し、Azure アプリに zip ファイルを発行します。

    Publish-AzWebApp -ResourceGroupName myResourceGroup -Name <app-name> -ArchivePath (Get-Item .\deploy.zip).FullName -Force
    

    Note

    -ArchivePath には、zip ファイルの完全なパスが必要です。

  5. デプロイが完了したら、「アプリの参照」の手順で開いた元のブラウザー ウィンドウに切り替えて、更新をクリックします。

    更新された ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    CLI - Azure での更新済み ASP.NET Core 6.0 Web アプリのスクリーンショット。

  1. サンプル コードの GitHub フォークを参照します。

  2. リポジトリ ページで、. を押してブラウザー内で Visual Studio コードを開始します。

    注意

    URL は GitHub.com から GitHub.dev に変更されます。 この機能は、ファイルがあるリポジトリでのみ機能します。 これは空のリポジトリでは機能しません。

  3. Index.cshtml を開きます。

    Index.cshtml は Pages フォルダーにあります。

    ブラウザーからアクセスした Visual Studio Code の Explorer ウィンドウのスクリーンショット。dotnetcore-docs-hello-world リポジトリの Index.cshtml が強調表示されています。

  4. 最初の <div> 要素を次のコードに置き換えます。

    <div class="jumbotron">
        <h1>.NET 💜 Azure</h1>
        <p class="lead">Example .NET app to Azure App Service.</p>
    </div>
    

    変更内容を保存します。

  5. [ソース管理] メニューの [ステージの変更] ボタンを選択して、変更をステージングします。

  6. We love Azure のようなコミット メッセージを入力します。 次に、[コミットしてプッシュ] を選択します。

  7. デプロイが完了したら、「アプリの参照」の手順で開いたブラウザー ウィンドウに戻り、ページを更新します。

    更新された ASP.NET Core 6.0 Web アプリがページに表示されていることがわかります。

    CLI - Azure での更新済み ASP.NET Core 6.0 Web アプリのスクリーンショット。

Azure アプリの管理

Web アプリを管理するには、Azure portal に移動し、 [App Services] を検索して選択します。

Azure portal - [App Services] オプションを選択する画面のスクリーンショット。

[App Services] ページで、Web アプリの名前を選択します。

Azure portal - [App Services] ページのスクリーンショット。サンプル Web アプリが選択されています。

Web アプリの [概要] ページには、参照、停止、開始、再起動、削除などの基本的な管理のためのオプションが含まれています。 左側のメニューは、アプリを構成するためのさらなるページを示しています。

Azure portal - [App Service の概要] ページのスクリーンショット。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。

  1. Azure Portal の Web アプリの [概要] ページで、[リソース グループ] の下の myResourceGroup リンクを選択します。
  2. リソース グループ ページで、リストされたリソースが削除対象であることを確認します。
  3. [削除] を選択し、テキスト ボックスに「myResourceGroup」と入力してから、 [削除] を選びます。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。

  1. Azure Portal の Web アプリの [概要] ページで、[リソース グループ] の下の myResourceGroup リンクを選択します。
  2. リソース グループ ページで、リストされたリソースが削除対象であることを確認します。
  3. [削除] を選択し、テキスト ボックスに「myResourceGroup」と入力してから、 [削除] を選びます。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると想定していない場合、Cloud Shell で次のコマンドを実行して、リソース グループを削除します。

az group delete --name myResourceGroup

このコマンドの実行には、少し時間がかかる場合があります。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、次の PowerShell コマンドを実行してリソース グループを削除します。

Remove-AzResourceGroup -Name myResourceGroup

このコマンドの実行には、少し時間がかかる場合があります。

リソースをクリーンアップする

前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると思わない場合は、リソース グループを削除してリソースを削除できます。

  1. Azure Portal の Web アプリの [概要] ページで、[リソース グループ] の下の myResourceGroup リンクを選択します。
  2. リソース グループ ページで、リストされたリソースが削除対象であることを確認します。
  3. [削除] を選択し、テキスト ボックスに「myResourceGroup」と入力してから、 [削除] を選びます。

次の手順

このクイックスタートでは、ASP.NET Web アプリを作成して Azure App Service にデプロイしました。

次の記事に進み、.NET Core アプリを作成して SQL Database に接続する方法を学習してください。