クイック スタート:Azure Dev Spaces を使用して Kubernetes 上で Visual Studio と .NET Core でデバッグと反復処理を行うQuickstart: Debug and iterate with Visual Studio and .NET Core on Kubernetes with Azure Dev Spaces

このガイドでは、以下の方法について説明します。In this guide, you will learn how to:

  • Azure でマネージド Kubernetes クラスターを使用して Azure Dev Spaces をセットアップする。Set up Azure Dev Spaces with a managed Kubernetes cluster in Azure.
  • Visual Studio を使用して、コンテナー内のコードを繰り返し開発する。Iteratively develop code in containers using Visual Studio.
  • Visual Studio を使用して、クラスターで実行されるコードをデバッグする。Debug code running in your cluster using Visual Studio.

前提条件Prerequisites

  • Azure サブスクリプション。An Azure subscription. アカウントがない場合は、無料アカウントを作成することができます。If you don't have one, you can create a free account.
  • Azure 開発ワークロードがインストールされている Windows 上の Visual Studio 2019。Visual Studio 2019 on Windows with the Azure Development workload installed. また、Web 開発ワークロードおよび Visual Studio Tools for Kubernetes がインストールされた、Windows 上の Visual Studio 2017 も使用できます。You can also use Visual Studio 2017 on Windows with the Web Development workload and Visual Studio Tools for Kubernetes installed. Visual Studio をインストールしていない場合は、ここからダウンロードします。If you don't have Visual Studio installed, download it here.

Azure Kubernetes Service クラスターを作成するCreate an Azure Kubernetes Service cluster

サポートされているリージョンで AKS クラスターを作成する必要があります。You must create an AKS cluster in a supported region. クラスターを作成するには:To create a cluster:

  1. Azure ポータルSign in to the Azure portal

  2. + [リソースの作成]、[Kubernetes サービス] の順に選択します。Select + Create a resource > Kubernetes Service.

  3. [サブスクリプション][リソース グループ][Kubernetes クラスター名][リージョン][Kubernetes バージョン][DNS 名のプレフィックス] の入力を行います。Enter the Subscription, Resource Group, Kubernetes cluster name, Region, Kubernetes version, and DNS name prefix.

    Azure portal での AKS の作成

  4. [Review + create](レビュー + 作成) をクリックします。Click Review + create.

  5. Create をクリックしてください。Click Create.

AKS クラスターで Azure Dev Spaces を有効にするEnable Azure Dev Spaces on your AKS cluster

Azure portal でご自分の AKS クラスターに移動して、 [Dev Spaces] をクリックします。Navigate to your AKS cluster in the Azure portal and click Dev Spaces. [Dev Spaces を有効にする][はい] に変更して [保存] をクリックします。Change Enable Dev Spaces to Yes and click Save.

Azure portal での Dev Spaces の有効化

新しい ASP.NET Web アプリを作成するCreate a new ASP.NET web app

  1. Visual Studio を開きます。Open Visual Studio.
  2. 新しいプロジェクトを作成する。Create a new project.
  3. [ASP.NET Core Web アプリケーション] を選択し、プロジェクトに webfrontend という名前を付けます。Choose ASP.NET Core Web Application and name your project webfrontend.
  4. Click OK.Click OK.
  5. 要求されたら、 [Web アプリケーション (モデル ビュー コントローラー)] をテンプレートに選択します。When prompted, choose Web Application (Model-View-Controller) for the template.
  6. 上部にある [.NET Core][ASP.NET Core 2.0] を選択します。Select .NET Core and ASP.NET Core 2.0 at the top.
  7. Click OK.Click OK.

プロジェクトを開発空間に接続するConnect your project to your dev space

ご自分のプロジェクトで、次の図のように、起動設定のドロップダウンから [Azure Dev Spaces] を選択します。In your project, select Azure Dev Spaces from the launch settings dropdown as shown below.

[Azure Dev Spaces] ダイアログで、ご自分の "サブスクリプション" と "Azure Kubernetes クラスター" を選択します。In the Azure Dev Spaces dialog, select your Subscription and Azure Kubernetes Cluster. [空間][default] に設定しておいて、 [公的にアクセス可能] チェック ボックスをオンします。Leave Space set to default and enable the Publicly Accessible checkbox. Click OK.Click OK.

このプロセスによって、パブリックにアクセスできる URL を備えた default 開発空間にお客様のサービスがデプロイされます。This process deploys your service to the default dev space with a publicly accessible URL. Azure Dev Spaces と共に動作するように構成されていないクラスターを選択すると、クラスターを構成するかどうかをたずねるメッセージが表示されます。If you choose a cluster that hasn't been configured to work with Azure Dev Spaces, you'll see a message asking if you want to configure it. Click OK.Click OK.

default 開発空間で稼働するサービスのパブリック URL が、 [出力] ウィンドウに表示されます。The public URL for the service running in the default dev space is displayed in the Output window:

Starting warmup for project 'webfrontend'.
Waiting for namespace to be provisioned.
Using dev space 'default' with target 'MyAKS'
...
Successfully built 1234567890ab
Successfully tagged webfrontend:devspaces-11122233344455566
Built container image in 39s
Waiting for container...
36s

Service 'webfrontend' port 'http' is available at http://webfrontend.1234567890abcdef1234.eus.azds.io/
Service 'webfrontend' port 80 (http) is available at http://localhost:62266
Completed warmup for project 'webfrontend' in 125 seconds.

上記の例では、パブリック URL は http://webfrontend.1234567890abcdef1234.eus.azds.io/ です。In the above example, the public URL is http://webfrontend.1234567890abcdef1234.eus.azds.io/. ご自分のサービスのパブリック URL に移動し、開発空間で稼働しているサービスを操作します。Navigate to your service's public URL and interact with the service running in your dev space.

このプロセスにより、サービスへのパブリック アクセスが無効になった可能性があります。This process may have disabled public access to your service. パブリック アクセスを有効にするには、values.yaml 内のイングレス値を更新することができます。To enable public access, you can update the ingress value in the values.yaml.

コードの更新Update code

Visual Studio がまだ開発空間に接続されている場合は、停止ボタンをクリックします。If Visual Studio is still connected to your dev space, click the stop button. Controllers/HomeController.cs の 20 行目を以下に変更します。Change line 20 in Controllers/HomeController.cs to:

ViewData["Message"] = "Your application description page in Azure.";

変更を保存し、起動設定のドロップダウンで [Azure Dev Spaces] を使用してサービスを開始します。Save your changes and start your service using Azure Dev Spaces from the launch settings dropdown. ブラウザーでご自分のサービスのパブリック URL を開き、 [詳細] をクリックします。Open the public URL of your service in a browser and click About. 更新されたメッセージが表示されることを確認します。Observe that your updated message appears.

Azure Dev Spaces では、コードが編集されるたびに新しいコンテナー イメージをリビルドして再デプロイするのではなく、既存のコンテナー内でコードの増分再コンパイルを実行して、編集とデバッグのループを高速化します。Instead of rebuilding and redeploying a new container image each time code edits are made, Azure Dev Spaces incrementally recompiles code within the existing container to provide a faster edit/debug loop.

デバッグ用のブレークポイントを設定して使用するSetting and using breakpoints for debugging

Visual Studio がまだ開発空間に接続されている場合は、停止ボタンをクリックします。If Visual Studio is still connected to your dev space, click the stop button. Controllers/HomeController.cs を開いて、20 行目のどこかをクリックし、そこにカーソルを置きます。Open Controllers/HomeController.cs and click somewhere on line 20 to put your cursor there. ブレークポイントを設定するには、F9 キーを押すか、 [デバッグ][ブレークポイントの設定/解除] の順にクリックします。To set a breakpoint hit F9 or click Debug then Toggle Breakpoint. 開発空間においてデバッグ モードでサービスを開始するには、F5 キーを押すか、または [デバッグ][デバッグの開始] の順にクリックします。To start your service in debugging mode in your dev space, hit F5 or click Debug then Start Debugging.

ブラウザーでサービスを開き、メッセージが表示されないことに注目します。Open your service in a browser and notice no message is displayed. Visual Studio に戻って、20 行目が強調表示されていることを確認します。Return to Visual Studio and observe line 20 is highlighted. 設定したブレークポイントによって、20 行目でサービスが一時停止されました。The breakpoint you set has paused the service at line 20. サービスを再開するには、F5 キーを押すか、 [デバッグ][続行] の順にクリックします。To resume the service, hit F5 or click Debug then Continue. ブラウザーに戻って、メッセージが表示されたことに注目します。Return to your browser and notice the message is now displayed.

デバッガーがアタッチされた状態で Kubernetes でサービスを稼働している間、デバッグ情報 (呼び出し履歴、ローカル変数、例外情報など) にフル アクセスできます。While running your service in Kubernetes with a debugger attached, you have full access to debug information such as the call stack, local variables, and exception information.

Controllers/HomeController.cs の 20 行目にカーソルを置いて F9 キーを押すことで、ブレークポイントを削除します。Remove the breakpoint by putting your cursor on line 20 in Controllers/HomeController.cs and hitting F9.

Azure リソースをクリーンアップするClean up your Azure resources

Azure portal でご自分のリソース グループに移動して、 [リソース グループの削除] をクリックします。Navigate to your resource group in the Azure portal and click Delete resource group. または、az aks delete コマンドを使用できます。Alternatively, you can use the az aks delete command:

az group delete --name MyResourceGroup --yes --no-wait

次の手順Next steps