最初の Azure Service Fabric アプリケーションを作成する

Service Fabric では、.NET Core と Java の両方で Linux 上のサービスを構築するための SDK を提供しています。 このチュートリアルでは Linux 用アプリケーションを作成し、.NET Core 2.0 で C# を使用してサービスを構築する方法について説明します。

前提条件

作業を開始する前に、 Linux 開発環境がセットアップされていることを確認してください。 Mac OS X を使用している場合は、 Vagrant を使用して仮想マシンに Linux ワンボックス環境を設定します。

また、Service Fabric CLI をインストールしてください。

C# のジェネレーターのインストールとセットアップ

Service Fabric には、ターミナルから Yeoman テンプレート ジェネレーターを使って Service Fabric アプリケーションを作成できるスキャフォールディング ツールが用意されています。 次の手順に従って、C# の Service Fabric Yeoman テンプレート ジェネレーターを設定します。

  1. マシンに nodejs と NPM をインストールします。

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash 
    nvm install node 
    
  2. NPM からマシンに Yeoman テンプレート ジェネレーターをインストールします。

    npm install -g yo
    
  3. NPM から Service Fabric Yeoman C# アプリケーション ジェネレーターをインストールします。

    npm install -g generator-azuresfcsharp
    

アプリケーションを作成する

Service Fabric のアプリケーションには、アプリケーションの機能を提供する際にそれぞれ特定の役割を果たすサービスを 1 つ以上含めることができます。 直前の手順でインストールした C# 用の Service Fabric Yeoman ジェネレーターを使用すると、初めてサービスを作成したり、後で追加したりする作業が簡単になります。 Yeoman を使用して、単一のサービスを持つアプリケーションを作成しましょう。

  1. ターミナルで、コマンド「yo azuresfcsharp」を入力してスキャフォールディングの構築を開始します。

  2. アプリケーションに名前を付けます。

  3. 最初のサービスの種類を選択し、名前を付けます。 このチュートリアルでは、"Reliable Actor Service" を選択します。

    C# 用の Service Fabric Yeoman ジェネレーター

Note

オプションの詳細については、「 Service Fabric プログラミング モデルの概要」を参照してください。

アプリケーションのビルド

Service Fabric Yeoman テンプレートには、ビルド スクリプトが含まれています。(アプリケーションのフォルダーへの移動後に) これを使用してターミナルからアプリをビルドできます。

cd myapp
./build.sh

アプリケーションの配置

ビルドしたアプリケーションは、ローカル クラスターにデプロイできます。

  1. ローカルの Service Fabric クラスターに接続します。

    sfctl cluster select --endpoint http://localhost:19080
    
  2. テンプレートに用意されているインストール スクリプトを実行してクラスターのイメージ ストアにアプリケーション パッケージをコピーし、アプリケーションの種類を登録して、アプリケーションのインスタンスを作成します。

    ./install.sh
    

ビルドしたアプリケーションは、他のすべての Service Fabric アプリケーションと同じようにデプロイできます。 詳細な手順については、Service Fabric CLI を使用した Service Fabric アプリケーションの管理についてのドキュメントを参照してください。

これらのコマンドのパラメーターは、アプリケーション パッケージ内の生成されたマニフェストで確認できます。

アプリケーションのデプロイ後、ブラウザーを開いて http://localhost:19080/ExplorerService Fabric Explorer に移動します。 次に、Applications ノードを展開し、アプリケーションの種類のエントリと、その種類の最初のインスタンスのエントリができたことを確認してください。

重要

アプリケーションを Azure 内のセキュアな Linux クラスターにデプロイするには、Service Fabric ランタイムを使用してアプリケーションを検証するように証明書を構成する必要があります。 これにより、Reliable Services サービスが基盤の Service Fabric ランタイム API と通信できるようになります。 詳しくは、「Reliable Services アプリを Linux クラスター上で実行するように構成する」をご覧ください。

テスト クライアントの起動と、フェールオーバーの実行

アクター プロジェクトは、それ自体では何も行いません。 これにメッセージを送信する別のサービスまたはクライアントが必要です。 アクター テンプレートには、アクター サービスとの対話に使用できる簡単なテスト スクリプトが含まれています。

  1. ウォッチ ユーティリティを使用してスクリプトを実行し、アクター サービスの出力を確認します。

    MAC OS X の場合は、次の追加コマンドを実行して、myactorsvcTestClient フォルダーをコンテナー内の同じ場所にコピーする必要があります。

    docker cp  [first-four-digits-of-container-ID]:/home
    docker exec -it [first-four-digits-of-container-ID] /bin/bash
    cd /home
    
    cd myactorsvcTestClient
    watch -n 1 ./testclient.sh
    
  2. Service Fabric Explorer で、アクター サービスのプライマリ レプリカをホストしているノードを見つけます。 次のスクリーンショットでは、ノード 3 です。

    Finding the primary replica in Service Fabric Explorer

  3. 前の手順で見つけたノードをクリックし、[アクション] メニューの [非アクティブにする (再起動)] を選択します。 このアクションによって、ローカル クラスターのノードのいずれかが再起動され、別のノードで実行されているセカンダリ レプリカに強制的にフェールオーバーされます。 このアクションを行うときは、テスト クライアントからの出力に注意してください。また、フェールオーバーにかかわらず、カウンターが増加していることに注意してください。

既存アプリケーションへのサービスの追加

yo を使用して作成したアプリケーションにサービスを追加するには、次の手順を実行します。

  1. ディレクトリを既存アプリケーションのルートに変更します。 たとえば、Yeoman で作成したアプリケーションが MyApplication の場合は、cd ~/YeomanSamples/MyApplication です。
  2. yo azuresfcsharp:AddService を実行します。

次のステップ