チュートリアル:Azure App Service での ASP.NET Core および Azure SQL Database アプリの作成

Azure App Service は、Azure での高度にスケーラブルな自己適用型の Web ホスティング サービスを提供します。 このチュートリアルでは、.NET Core アプリを作成して SQL Database に接続する方法について説明します。 完了すると、.NET Core MVC アプリが App Service on Windows で実行されます。

Azure App Service は、Linux オペレーティング システムを使用する、高度にスケーラブルな自己適用型の Web ホスティング サービスを提供します。 このチュートリアルでは、.NET Core アプリを作成して SQL Database に接続する方法について説明します。 完了すると、.NET Core MVC アプリが App Service on Linux で実行されます。

App Service で実行されるアプリ

このチュートリアルでは、以下の内容を学習します。

  • Azure で SQL データベースを作成する
  • .NET Core アプリを SQL Database に接続する
  • Azure にアプリケーションをデプロイする
  • データ モデルを更新し、アプリを再デプロイする
  • Azure から診断ログをストリーミングする
  • Azure Portal でアプリを管理する

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

前提条件

このチュートリアルを完了するには、以下が必要です。

  • Azure Cloud Shell で Bash 環境を使用します。

    新しいウィンドウで Cloud Shell を起動する

  • 必要に応じて、Azure CLI をインストールして、CLI リファレンス コマンドを実行します。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

ローカル .NET Core アプリを作成する

この手順では、ローカル .NET Core プロジェクトを設定します。

サンプル アプリケーションの複製

ターミナル ウィンドウから、cd コマンドで作業ディレクトリに移動します。

次のコマンドを実行してサンプル リポジトリを複製し、ルートに移動します。

git clone https://github.com/azure-samples/dotnetcore-sqldb-tutorial
cd dotnetcore-sqldb-tutorial

サンプル プロジェクトには、Entity Framework Core を使用した基本的な CRUD (作成、読み取り、更新、削除) アプリが含まれています。

アプリケーションの実行

次のコマンドを実行して、必要なパッケージをインストールし、データベースの移行を実行し、アプリケーションを起動します。

dotnet tool install -g dotnet-ef
dotnet ef database update
dotnet run

ブラウザーで http://localhost:5000 にアクセスします。 [新規作成] リンクを選択し、いくつかの To Do アイテムを作成します。

SQL Database に正常に接続

任意のタイミングで .NET Core を停止するには、ターミナルで Ctrl+C キーを押します。

運用 SQL Database を作成する

この手順では、Azure に SQL Database を作成します。 アプリを Azure にデプロイすると、このクラウド データベースがアプリで使用されます。

SQL Database については、このチュートリアルでは Azure SQL Database を使用します。

リソース グループを作成する

リソース グループとは、Web アプリ、データベース、ストレージ アカウントなどの Azure リソースのデプロイと管理に使用する論理コンテナーです。 たとえば、後から簡単な手順で一度にリソース グループ全体を削除することもできます。

Cloud Shell で az group create コマンドを使用して、リソース グループを作成します。 次の例では、myResourceGroup という名前のリソース グループを "西ヨーロッパ" の場所に作成します。 Free レベルの App Service がサポートされているすべての場所を表示するには、az appservice list-locations --sku FREE コマンドを実行します。

az group create --name myResourceGroup --location "West Europe"

通常は、現在地付近の地域にリソース グループおよびリソースを作成します。

コマンドが完了すると、リソース グループのプロパティが JSON 出力に表示されます。

SQL Database 論理サーバーを作成する

Cloud Shell で、az sql server create コマンドを使用して SQL Database 論理サーバーを作成します。

<server-name> プレースホルダーは、"一意の" SQL Database 名に置き換えてください。 この名前は、グローバルに一意の SQL Database エンドポイント <server-name>.database.windows.net の一部として使用されます。 有効な文字は a-z0-9- です。 また、 <db-username><db-password> は、選択したユーザー名とパスワードに置き換えます。

az sql server create --name <server-name> --resource-group myResourceGroup --location "West Europe" --admin-user <db-username> --admin-password <db-password>

SQL Database 論理サーバーが作成されると、Azure CLI によって、次の例のような情報が表示されます。

{
  "administratorLogin": "<db-username>",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "<server-name>.database.windows.net",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Sql/servers/<server-name>",
  "identity": null,
  "kind": "v12.0",
  "location": "westeurope",
  "name": "<server-name>",
  "resourceGroup": "myResourceGroup",
  "state": "Ready",
  "tags": null,
  "type": "Microsoft.Sql/servers",
  "version": "12.0"
}

サーバーのファイアウォール規則の構成

az sql server firewall createコマンドを使用して、Azure SQL Database のサーバー レベルのファイアウォール規則を作成します。 開始 IP と終了 IP の両方が 0.0.0.0 に設定されている場合、ファイアウォールは他の Azure リソースに対してのみ開かれます。

az sql server firewall-rule create --resource-group myResourceGroup --server <server-name> --name AllowAzureIps --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

ヒント

アプリで使用する送信 IP アドレスのみを使用することで、ファイアウォール規則による制限をさらに厳しくすることができます。

Cloud Shell 内で <your-ip-address>ローカル IPv4 IP アドレスに置き換えてコマンドを再び実行し、ローカル コンピューターからアクセスできるようにします。

az sql server firewall-rule create --name AllowLocalClient --server <server-name> --resource-group myResourceGroup --start-ip-address=<your-ip-address> --end-ip-address=<your-ip-address>

データベースを作成する

az sql db create コマンドで S0 パフォーマンス レベルのデータベースをサーバーに作成します。

az sql db create --resource-group myResourceGroup --server <server-name> --name coreDB --service-objective S0

接続文字列を取得する

az sql db show-connection-string コマンドを使用して、接続文字列を取得します。

az sql db show-connection-string --client ado.net --server <server-name> --name coreDB

コマンド出力の <username><password> は、前に使用したデータベース管理者の資格情報に置き換えてください。

これは .NET Core アプリの接続文字列です。 後で使用するためコピーします。

運用データベースに接続するようにアプリを構成する

ローカル リポジトリで、Startup.cs を開き、次のコードを検索します。

services.AddDbContext<MyDatabaseContext>(options =>
        options.UseSqlite("Data Source=localdatabase.db"));

これを次のコードに置き換えます。

services.AddDbContext<MyDatabaseContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("MyDbConnection")));

重要

スケールアウトする必要がある運用アプリの場合は、「運用環境で移行を適用する」のベスト プラクティスに従ってください。

運用データベースへのデータベースの移行を実行する

現在、対象のアプリはローカルの Sqlite データベースに接続しています。 Azure SQL Database を構成したので、これをターゲットとする最初の移行を再作成します。

リポジトリのルートから、次のコマンドを実行します。 <connection-string> は、先ほど作成した接続文字列で置き換えます。

# Delete old migrations
rm -r Migrations
# Recreate migrations
dotnet ef migrations add InitialCreate

# Set connection string to production database
# PowerShell
$env:ConnectionStrings:MyDbConnection="<connection-string>"
# CMD (no quotes)
set ConnectionStrings:MyDbConnection=<connection-string>
# Bash (no quotes)
export ConnectionStrings__MyDbConnection=<connection-string>

# Run migrations
dotnet ef database update

新しい構成でアプリを実行する

データベースの移行が運用データベースで実行されるようになったら、以下を実行してアプリをテストします。

dotnet run

ブラウザーで http://localhost:5000 にアクセスします。 [新規作成] リンクを選択し、いくつかの To Do アイテムを作成します。 これで、アプリは、運用データベースに対してデータの読み取りと書き込みを行うようになりました。

ローカルの変更をコミットし、それを Git リポジトリにコミットします。

git add .
git commit -m "connect to SQLDB in Azure"

これでコードをデプロイする準備が整いました。

アプリを Azure にデプロイする

この手順では、SQL Database に接続された .NET Core アプリケーションを App Service にデプロイします。

ローカル Git デプロイを構成する

FTP およびローカルの Git では、"デプロイ ユーザー" を使用して Azure Web アプリにデプロイできます。 デプロイ ユーザーを構成すると、すべての Azure デプロイでこのユーザーを使用できます。 アカウントレベルのデプロイのユーザー名とパスワードは、Azure サブスクリプションの資格情報とは異なります。

デプロイ ユーザーを構成するには、Azure Cloud Shell で az webapp deployment user set コマンドを実行します。 <username> と <password> を、デプロイ ユーザーのユーザー名とパスワードで置き換えます。

  • ユーザー名は、Azure 内で一意である必要があります。ローカル Git プッシュの場合、"@" 記号を含めることはできません。
  • パスワードは長さが 8 文字以上で、文字、数字、記号のうち 2 つを含む必要があります。
az webapp deployment user set --user-name <username> --password <password>

JSON 出力には、パスワードが null として表示されます。 'Conflict'. Details: 409 エラーが発生した場合は、ユーザー名を変更します。 'Bad Request'. Details: 400 エラーが発生した場合は、より強力なパスワードを使用します。

Web アプリのデプロイに使用するユーザー名とパスワードを記録します。

App Service プランを作成する

Cloud Shell で az appservice plan create コマンドを使用して、App Service プランを作成します。

次の例では、Free 価格レベルの myAppServicePlan という名前の App Service プランを作成します。

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

App Service プランが作成されると、Azure CLI によって、次の例のような情報が表示されます。

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Cloud Shell で az appservice plan create コマンドを使用して、App Service プランを作成します。

次の例では、Free 価格レベルの myAppServicePlan という名前の App Service プランを作成します。

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux

App Service プランが作成されると、Azure CLI によって、次の例のような情報が表示されます。

{ 
  "freeOfferExpirationTime": null,
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Web アプリを作成する

myAppServicePlan App Service プランで Web アプリを作成します。

Cloud Shell で、az webapp create コマンドを使用することができます。 次の例では、<app-name> をグローバルに一意のアプリ名に置き換えてください (有効な文字は a-z0-9-)。

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --deployment-local-git

Web アプリが作成されると、Azure CLI によって次の例のような出力が表示されます。

Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "clientCertExclusionPaths": null,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

注意

Git リモートの URL は deploymentLocalGitUrl プロパティに https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git 形式で出力されます。 この URL は後で必要になるので保存しておいてください。

myAppServicePlan App Service プランで Web アプリを作成します。

Cloud Shell で、az webapp create コマンドを使用することができます。 次の例では、<app-name> をグローバルに一意のアプリ名に置き換えてください (有効な文字は a-z0-9-)。 ランタイムは DOTNETCORE|3.1 に設定されています。 サポートされているすべてのランタイムを確認するには、az webapp list-runtimes --linux を実行します。

# Bash
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "DOTNETCORE|3.1" --deployment-local-git
# PowerShell
az --% webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "DOTNETCORE|3.1" --deployment-local-git

Web アプリが作成されると、Azure CLI によって次の例のような出力が表示されます。

Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app-name>.azurewebsites.net",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Git デプロイを有効にして、空の Web アプリを Linux コンテナーに作成しました。

注意

Git リモートの URL は deploymentLocalGitUrl プロパティに https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git 形式で出力されます。 この URL は後で必要になるので保存しておいてください。

接続文字列を構成する

Azure アプリの接続文字列を設定するには、Cloud Shell で az webapp config appsettings set コマンドを使用します。 次のコマンドの <app-name> および <connection-string> パラメーターは、先ほど作成した接続文字列に置き換えてください。

az webapp config connection-string set --resource-group myResourceGroup --name <app-name> --settings MyDbConnection="<connection-string>" --connection-string-type SQLAzure

ASP.NET Core では、appsettings.json で指定される接続文字列のように、標準パターンを使用して、この名前付き接続文字列 (MyDbConnection) を使用できます。 この場合、MyDbConnection は、appsettings.json でも定義されています。 App Service で実行する場合、App Service で定義された接続文字列は、appsettings.json で定義された接続文字列よりも優先されます。 コードは、ローカル開発中は appsettings.json 値を使用し、同じコードがデプロイ時には App Service 値を使用します。

コード内で接続文字列がどのように参照されるかについては、「運用データベースに接続するようにアプリを構成する」を参照してください。

Git から Azure へのプッシュ

ローカル ターミナル ウィンドウで、ローカル Git リポジトリに Azure リモートを追加します。 <deploymentLocalGitUrl-from-create-step> を、「Web アプリを作成する」で保存した Git リモートの URL で置き換えます。

git remote add azure <deploymentLocalGitUrl-from-create-step>

アプリをデプロイするために、次のコマンドで Azure リモートにプッシュします。 Git Credential Manager によって資格情報の入力を求めるメッセージが表示されたら、Azure portal へのサインインに使用する資格情報ではなく、「デプロイ ユーザーを構成する」で作成した資格情報を入力してください。

git push azure master

このコマンドの実行には、数分かかる場合があります。 実行中、次の例のような情報が表示されます。

Enumerating objects: 268, done.
Counting objects: 100% (268/268), done.
Compressing objects: 100% (171/171), done.
Writing objects: 100% (268/268), 1.18 MiB | 1.55 MiB/s, done.
Total 268 (delta 95), reused 251 (delta 87), pack-reused 0
remote: Resolving deltas: 100% (95/95), done.
remote: Updating branch 'main'.
remote: Updating submodules.
remote: Preparing deployment for commit id '64821c3558'.
remote: Generating deployment script.
remote: Project file path: .\DotNetCoreSqlDb.csproj
remote: Generating deployment script for ASP.NET MSBuild16 App
remote: Generated deployment script files
remote: Running deployment command...
remote: Handling ASP.NET Core Web Application deployment with MSBuild16.
remote: .
remote: .
remote: .
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Triggering recycle (preview mode disabled).
remote: App container will begin restart within 10 seconds.
To https://<app-name>.scm.azurewebsites.net/<app-name>.git
 * [new branch]      main -> main

ローカル ターミナル ウィンドウで、ローカル Git リポジトリに Azure リモートを追加します。 <deploymentLocalGitUrl-from-create-step> を、「Web アプリを作成する」で保存した Git リモートの URL で置き換えます。

git remote add azure <deploymentLocalGitUrl-from-create-step>

アプリをデプロイするために、次のコマンドで Azure リモートにプッシュします。 Git Credential Manager によって資格情報の入力を求めるメッセージが表示されたら、Azure portal へのサインインに使用する資格情報ではなく、「デプロイ ユーザーを構成する」で作成した資格情報を入力してください。

git push azure master

このコマンドの実行には、数分かかる場合があります。 実行中、次の例のような情報が表示されます。

Enumerating objects: 273, done.
Counting objects: 100% (273/273), done.
Delta compression using up to 4 threads
Compressing objects: 100% (175/175), done.
Writing objects: 100% (273/273), 1.19 MiB | 1.85 MiB/s, done.
Total 273 (delta 96), reused 259 (delta 88)
remote: Resolving deltas: 100% (96/96), done.
remote: Deploy Async
remote: Updating branch 'main'.
remote: Updating submodules.
remote: Preparing deployment for commit id 'cccecf86c5'.
remote: Repository path is /home/site/repository
remote: Running oryx build...
remote: Build orchestrated by Microsoft Oryx, https://github.com/Microsoft/Oryx
remote: You can report issues at https://github.com/Microsoft/Oryx/issues
remote: .
remote: .
remote: .
remote: Done.
remote: Running post deployment command(s)...
remote: Triggering recycle (preview mode disabled).
remote: Deployment successful.
remote: Deployment Logs : 'https://<app-name>.scm.azurewebsites.net/newui/jsonviewer?view_url=/api/deployments/cccecf86c56493ffa594e76ea1deb3abb3702d89/log'
To https://<app-name>.scm.azurewebsites.net/<app-name>.git
 * [new branch]      main -> main

Azure アプリを参照する

Web ブラウザーを使用して、デプロイされたアプリを参照します。

http://<app-name>.azurewebsites.net

いくつかの To Do アイテムを追加します。

App Service で実行されるアプリ

お疲れさまでした。 App Service でデータ主導型の .NET Core アプリが実行されています。

ローカルで更新して再デプロイする

この手順では、データベース スキーマに変更を加えて Azure に発行します。

データ モデルを更新する

コード エディターで Models/Todo.cs を開きます。 ToDo クラスに次のプロパティを追加します。

public bool Done { get; set; }

データベースの移行を再実行する

いくつかのコマンドを実行して、運用データベースを更新します。

dotnet ef migrations add AddProperty
dotnet ef database update

注意

新しいターミナル ウィンドウを開いた場合、「運用データベースへのデータベースの移行を実行する」で実行したのと同様の手順に従い、ターミナルで実稼働データベースへの接続文字列を設定する必要があります。

新しいプロパティを使用する

Done プロパティを使用するために、コードにいくつかの変更を加えます。 このチュートリアルでは、わかりやすくするために Index ビューと Create ビューのみを変更して、実際のプロパティを確認します。

Controllers/TodosController.cs を開きます。

Create([Bind("ID,Description,CreatedDate")] Todo todo) メソッドを探し、Bind 属性内のプロパティの一覧に Done を追加します。 完了すると、Create() メソッドのシグネチャは次のコードのようになります。

public async Task<IActionResult> Create([Bind("ID,Description,CreatedDate,Done")] Todo todo)

Views/Todos/Create.cshtml を開きます。

Razor コードに、Description<div class="form-group"> 要素と、CreatedDate の別の <div class="form-group"> 要素が表示されます。 この 2 つの要素の直後に、Done の別の <div class="form-group"> 要素を追加します。

<div class="form-group">
    <label asp-for="Done" class="col-md-2 control-label"></label>
    <div class="col-md-10">
        <input asp-for="Done" class="form-control" />
        <span asp-validation-for="Done" class="text-danger"></span>
    </div>
</div>

Views/Todos/Index.cshtml を開きます。

空の <th></th> 要素を探します。 この要素のすぐ上に、次の Razor コードを追加します。

<th>
    @Html.DisplayNameFor(model => model.Done)
</th>

asp-action タグ ヘルパーを含む <td> 要素を探します。 この要素のすぐ上に、次の Razor コードを追加します。

<td>
    @Html.DisplayFor(modelItem => item.Done)
</td>

これだけで、Index ビューと Create ビューの変更を確認できます。

変更をローカルでテストする

アプリをローカルで実行します。

dotnet run

注意

新しいターミナル ウィンドウを開いた場合、「運用データベースへのデータベースの移行を実行する」で実行したのと同様の手順に従い、ターミナルで実稼働データベースへの接続文字列を設定する必要があります。

ブラウザーで http://localhost:5000/ にアクセスします。 これで、To Do 項目を追加し、 [完了] チェック ボックスをオンにすることができるようになります。 そうすると、完了済みの項目としてホームページに表示されます。 Edit ビューを変更していないため、Edit ビューには Done フィールドが表示されないことに注意してください。

Azure に変更を発行する

git add .
git commit -m "added done field"
git push azure main

git push が完了したら、App Service アプリに移動し、To Do 項目を追加してみてから [完了] をオンにします。

Code First Migration の手順後の Azure アプリ

既存のすべての To Do 項目がまだ表示されています。 ASP.NET Core アプリを再発行しても、SQL Database 内の既存のデータは消失しません。 また、Entity Framework Core Migrations によって変更されるのはデータ スキーマのみであり、既存のデータはそのまま残されます。

診断ログをストリーミングする

Azure App Service で ASP.NET Core アプリが稼動している間、コンソールのログをパイプ処理で Cloud Shell に渡すことができます。 このようにすると、アプリケーション エラーのデバッグに役立つ同じ診断メッセージを取得できます。

サンプル プロジェクトは既に、Azure における ASP.NET Core のログ記録に関するページのガイダンスに従っています。ただし、次の 2 つの変更を構成に加えています。

  • DotNetCoreSqlDb.csprojMicrosoft.Extensions.Logging.AzureAppServices への参照を追加しています。
  • Program.cs 内の loggerFactory.AddAzureWebAppDiagnostics() を呼び出します。

App Service で ASP.NET Core のログ レベルを、既定のレベルである Error から Information に設定するには、Cloud Shell から az webapp log config コマンドを使用します。

az webapp log config --name <app-name> --resource-group myResourceGroup --application-logging filesystem --level information

注意

プロジェクトのログ レベルは、appsettings.json で、あらかじめ Information に設定されています。

ログのストリーミングを開始するには、Cloud Shell で az webapp log tail コマンドを使用します。

az webapp log tail --name <app-name> --resource-group myResourceGroup

ログのストリーミングが開始されたら、ブラウザーで Azure アプリを最新の情報に更新して、Web トラフィックを取得します。 ターミナルにパイプされたコンソール ログが表示されます。 コンソール ログがすぐに表示されない場合は、30 秒以内にもう一度確認します。

任意のタイミングでログのストリーミングを停止するには、Ctrl+C と入力します。

ASP.NET Core のログのカスタマイズの詳細については、「ASP.NET Core でのログ記録」を参照してください。

Azure アプリを管理する

作成したアプリを確認するには、Azure portal[App Services] を検索して選択します。

Azure portal で App Services を選択する

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

Azure アプリへのポータル ナビゲーション

既定では、ポータルにはアプリの [概要] ページが表示されます。 このページでは、アプリの動作状態を見ることができます。 ここでは、参照、停止、開始、再開、削除のような基本的な管理タスクも行うことができます。 ページの左側にあるタブは、開くことができるさまざまな構成ページを示しています。

Azure Portal の [App Service] ページ

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

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

az group delete --name myResourceGroup

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

次のステップ

ここで学習した内容は次のとおりです。

  • Azure で SQL データベースを作成する
  • .NET Core アプリを SQL Database に接続する
  • Azure にアプリケーションをデプロイする
  • データ モデルを更新し、アプリを再デプロイする
  • Azure からターミナルにログをストリーミングする
  • Azure Portal でアプリを管理する

次のチュートリアルに進んで、カスタム DNS 名をアプリにマップする方法を確認してください。

または、他のリソースを参照してください。