既存の .NET アプリを Service Fabric Mesh 用にコンテナー化する

重要

Azure Service Fabric Mesh のプレビューは廃止されました。 Service Fabric Mesh API を介した新しいデプロイは許可されなくなります。 既存のデプロイのサポートは、2021 年 4 月 28 日まで継続されます。

詳細については、Azure Service Fabric Mesh のプレビューの廃止に関する記事を参照してください。

この記事では、既存の .NET アプリに Service Fabric Mesh のコンテナー オーケストレーションサポートを追加する方法について説明します。

Visual Studio 2017 では、完全な .NET Framework を使用する ASP.NET および Console プロジェクトに、コンテナー化のサポートを追加できます。

Note

.NET Core プロジェクトは、現時点でサポートされません。

前提条件

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

  • 開発環境がセットアップされていることを確認してください。 これには、Service Fabric ランタイム、SDK、Docker、Visual Studio 2017 のインストールと、ローカル クラスターの作成が含まれます。

既存の .NET アプリを開きます

コンテナー オーケストレーションのサポートを追加するアプリを開きます。

サンプルを使用する場合は、eShop のコード サンプルを使用できます。 この記事では、このプロジェクトを使用する前提で説明をしていきますが、他のプロジェクトにも同じ手順を使用できます。

eShop プロジェクトのコピーを入手します。

git clone https://github.com/MikkelHegn/ContainersSFLab.git

ダウンロードが完了したら、Visual Studio 2017 で ContainersSFLab\eShopLegacyWebFormsSolution\eShopLegacyWebForms.sln を開きます。

コンテナー サポートを追加する

Service Fabric Mesh ツールを使用して、既存の ASP.NET または Console プロジェクトにコンテナー オーケストレーション サポートを追加します。手順は次のとおりです。

Visual Studio のソリューション エクスプ ローラーで、プロジェクト名 (この例では eShopLegacyWebForms) を右クリックし、 [追加]>[コンテナー オーケストレーター サポート] を選択します。 [コンテナー オーケストレーター サポートの追加] ダイアログが表示されます。

Visual Studio の [コンテナー オーケストレーター サポートの追加] ダイアログ

ドロップダウン リストから [Service Fabric Mesh] を選択し、 [OK] をクリックします。

注意

2020 年 11 月 2 日より、Docker の無料プラン アカウントから Docker Hub に対する匿名と認証済みの要求にダウンロード レート制限が適用されるようになり、IP アドレスによって実施されます。 詳細については、「Docker Hub での認証」を参照してください。

レートが制限されないようにするには、Dockerfile の既定の FROM microsoft/aspnet:4.7.2-windowsservercore-1803 AS baseFROM mcr.microsoft.com/dotnet/framework/aspnet:4.7.2-windowsservercore-1803 AS base に置き換えられていることを確認します

ツールによって Docker がインストールされ、プロジェクトに Dockerfile が追加されて、プロジェクト用の docker イメージがプルダウンされます。
Service Fabric Mesh のアプリケーション プロジェクトがソリューションに追加されます。 これには、Mesh の発行プロファイルと構成ファイルが含まれています。 プロジェクトの名前は、ご使用のプロジェクト名の末尾に "Application" を連結したものになります (例: eShopLegacyWebFormsApplication)。

新しい Mesh プロジェクトに、次の 2 つのフォルダーが表示されていることを確認してください。

  • App Resources: 追加の Mesh リソース (ネットワークなど) を記述した YAML ファイルが含まれています。
  • Service Resources: デプロイ時のアプリの実行方法について記述した service.yaml ファイルが含まれています。

コンテナー オーケストレーション サポートがアプリに追加された後、F5 キーを押すと、ローカルの Service Fabric Mesh クラスター上で .NET アプリをデバッグできます。 次に示すのは、Service Fabric Mesh クラスターで実行されている eShop ASP.NET アプリです。

eShop アプリ

これで、Azure Service Fabric Mesh にアプリを発行できるようになりました。

次のステップ

Service Fabric Mesh にアプリを発行する方法について学習しましょう: チュートリアル - Service Fabric mesh アプリケーションをデプロイする