Azure Service Fabric での Node.js アプリケーションのホストHost a Node.js application on Azure Service Fabric

このクイックスタートを読むと、Azure で実行中の Service Fabric クラスターに既存のアプリケーション (この例では Node.js) をデプロイできるようになります。This quickstart helps you deploy an existing application (Node.js in this example) to a Service Fabric cluster running on Azure.

前提条件Prerequisites

作業を開始する前に、 開発環境がセットアップされていることを確認してください。Before you get started, make sure that you have set up your development environment. これには、Service Fabric SDK と Visual Studio 2019 または 2015 のインストールが含まれます。Which includes installing the Service Fabric SDK and Visual Studio 2019 or 2015.

また、デプロイ用の Node.js アプリケーションも用意しておく必要があります。You also need to have an existing Node.js application for deployment. このクイックスタートでは、こちらでダウンロードできる単純な Node.js Web サイトを使用します。This quickstart uses a simple Node.js website that can be downloaded here. 次の手順でプロジェクトを作成した後、このファイルを <path-to-project>\ApplicationPackageRoot\<package-name>\Code\ フォルダーに抽出します。Extract this file to your <path-to-project>\ApplicationPackageRoot\<package-name>\Code\ folder after you create the project in the next step.

Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。If you don't have an Azure subscription, create a free account.

サービスの作成Create the service

Visual Studio を管理者として起動します。Launch Visual Studio as an administrator.

CTRL + SHIFT + N キーを押して、プロジェクトを作成します。Create a project with CTRL+SHIFT+N

[新しいプロジェクト] ダイアログで、 [クラウド]、[Service Fabric アプリケーション] の順に選択します。In the New Project dialog, choose Cloud > Service Fabric Application.

アプリケーションに MyGuestApp という名前を付けて、 [OK] をクリックします。Name the application MyGuestApp and press OK.

重要

Node.js では、Windows のパスの上限である 260 文字を超過しやすいため、Node.js can easily break the 260 character limit for paths that windows has. プロジェクト自体に短いパスを使用してください (例: c:\code\svc1)。Use a short path for the project itself such as c:\code\svc1. Windows 10 では、 こちらの手順 に従い、必要に応じて長いファイル パスを有効にすることができます。Optionally, you can follow these instructions to enable long file paths in Windows 10.

Visual Studio の [新しいプロジェクト] ダイアログ

次のダイアログで、任意の種類の Service Fabric サービスを作成できます。You can create any type of Service Fabric service from the next dialog. このクイックスタートでは、 [ゲストの実行可能ファイル] を選択します。For this quickstart, choose Guest Executable.

サービスに MyGuestService という名前を付けて、右側のオプションを次の値に設定します。Name the service MyGuestService and set the options on the right to the following values:

SettingSetting Value
コード パッケージ フォルダーCode Package Folder <Node.js アプリが含まれているフォルダー><the folder with your Node.js app>
コード パッケージの動作Code Package Behavior フォルダーの内容をプロジェクトにコピーするCopy folder contents to project
プログラムProgram node.exenode.exe
引数Arguments server.jsserver.js
作業フォルダーWorking Folder CodePackageCodePackage

[OK] をクリックします。Press OK.

Visual Studio の [新しいサービス] ダイアログ

Visual Studio によって、アプリケーション プロジェクトとアクター サービス プロジェクトが作成され、ソリューション エクスプローラーに表示されます。Visual Studio creates the application project and the actor service project and displays them in Solution Explorer.

アプリケーション プロジェクト (MyGuestApp) にはコードが直接には含まれていません。The application project (MyGuestApp) doesn't contain any code directly. このプロジェクトは、一連のサービス プロジェクトを参照します。The project references a set of service projects. また、次の 3 つの他の種類のコンテンツも含まれています。Also, it contains three other types of content:

  • 発行プロファイルPublish profiles
    さまざまな環境に合わせてツールの基本設定を管理するために使用します。Tooling preferences for different environments.

  • スクリプトScripts
    アプリケーションをデプロイ/アップグレードするための PowerShell スクリプトです。PowerShell script for deploying/upgrading your application.

  • アプリケーション定義Application definition
    ApplicationPackageRoot にアプリケーション マニフェストが含まれます。Includes the application manifest under ApplicationPackageRoot. 関連するアプリケーション パラメーター ファイルは ApplicationParameters に格納され、ここでアプリケーションが定義されます。特定の環境向けに細かくアプリケーションを構成することができます。Associated application parameter files are under ApplicationParameters, which define the application and allow you to configure it specifically for a given environment.

サービス プロジェクトのコンテンツの概要については、「 Service Fabric の Reliable Services の概要」を参照してください。For an overview of the contents of the service project, see Getting started with Reliable Services.

ネットワークの設定Set up networking

デプロイするサンプル Node.js アプリではポート 80 を使用するため、そのポートが公開されている必要があることを Service Fabric に指定する必要があります。The example Node.js app we're deploying uses port 80 and we need to tell Service Fabric that we need that port exposed.

プロジェクトの ServiceManifest.xml ファイルを開きます。Open the ServiceManifest.xml file in the project. マニフェストの下部に、エントリが既に定義された <Resources> \ <Endpoints> があります。At the bottom of the manifest, there's a <Resources> \ <Endpoints> with an entry already defined. このエントリを変更して PortProtocolType を追加します。Modify that entry to add Port, Protocol, and Type.

  <Resources>
    <Endpoints>
      <!-- This endpoint is used by the communication listener to obtain the port on which to 
           listen. Please note that if your service is partitioned, this port is shared with 
           replicas of different partitions that are placed in your code. -->
      <Endpoint Name="MyGuestAppServiceTypeEndpoint" Port="80" Protocol="http" Type="Input" />
    </Endpoints>
  </Resources>

Deploy to Azure (Azure へのデプロイ)Deploy to Azure

F5 を押してプロジェクトを実行すると、これはローカル クラスターにデプロイされます。If you press F5 and run the project, it's deployed to the local cluster. ただし、ここでは代わりに Azure にデプロイします。However, let's deploy to Azure instead.

プロジェクトを右クリックして [発行] を選択すると、Azure に発行するためのダイアログが開きます。Right-click on the project and choose Publish... which opens a dialog to publish to Azure.

Service Fabric サービスの Azure への発行ダイアログ

PublishProfiles\Cloud.xml ターゲット プロファイルを選択します。Select the PublishProfiles\Cloud.xml target profile.

前もって選択していない場合は、デプロイ先の Azure アカウントを選択します。If you haven't previously, choose an Azure account to deploy to. まだアカウントを持っていない場合は、サインアップしてください。If you don't have one yet, sign-up for one.

[接続のエンドポイント] で、デプロイ先の Service Fabric クラスターを選択します。Under Connection Endpoint, select the Service Fabric cluster to deploy to. それがない場合は、 <[新しいクラスターの作成...]> を選択します。それにより、Azure Portal に Web ブラウザー ウィンドウが開かれます。If you don't have one, select <Create New Cluster...> which opens up web browser window to the Azure portal. 詳細については、ポータルでのクラスターの作成に関するページを参照してください。For more information, see create a cluster in the portal.

Service Fabric クラスターを作成する際に、必ず [カスタム エンドポイント]80 に設定するようにしてください。When you create the Service Fabric cluster, make sure to set the Custom endpoints setting to 80.

カスタム エンドポイントによる Service Fabric のノード タイプの構成

新しい Service Fabric クラスターの作成の完了には、しばらく時間がかかります。Creating a new Service Fabric cluster takes some time to complete. 作成が完了したら、発行ダイアログに戻って [<更新>] を選択します。Once it has been created, go back to the publish dialog and select <Refresh>. 新しいクラスターがドロップダウン ボックスに表示されるので、選択します。The new cluster is listed in the drop-down box; select it.

[発行] をクリックして、デプロイが完了するまで待ちます。Press Publish and wait for the deployment to finish.

これには数分かかることがあります。This may take a few minutes. 完了した後、アプリケーションが完全に使用できるようになるまで、さらに数分かかる場合があります。After it completes, it may take a few more minutes for the application to be fully available.

Web サイトのテストTest the website

サービスを発行したら、Web ブラウザーでテストを行います。After your service has been published, test it in a web browser.

最初に、Azure Portal を開き、目的の Service Fabric サービスを探します。First, open the Azure portal and find your Service Fabric service.

サービス アドレスの概要ブレードを確認します。Check the overview blade of the service address. [Client connection endpoint](クライアントの接続エンドポイント) プロパティのドメイン名を使用します。Use the domain name from the Client connection endpoint property. たとえば、「 http://mysvcfab1.westus2.cloudapp.azure.com 」のように入力します。For example, http://mysvcfab1.westus2.cloudapp.azure.com.

Azure Portal の Service Fabric 概要ブレード

このアドレスに移動すると、HELLO WORLD という応答が表示されます。Navigate to this address where you'll see the HELLO WORLD response.

クラスターを削除するDelete the cluster

このクイック スタートで作成したリソースには課金されるため、それらのリソースをすべて忘れずに削除してください。Don't forget to delete all of the resources you've created for this quickstart, as you're charged for those resources.

次の手順Next steps

ゲスト実行可能ファイルの詳細を確認します。Read more about guest executables.