チュートリアル:Visual Studio を使用して Service Fabric アプリケーションをアップグレードする方法を学習します

重要

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

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

このチュートリアルはシリーズの第 4 部です。ここでは、Azure Service Fabric Mesh アプリケーションを Visual Studio から直接アップグレードする方法について説明します。 アップグレードには、コードの更新と構成の更新の両方が含まれます。 Visual Studio 内からアップグレードする手順と発行する手順は同じであることがわかります。

このチュートリアルで学習する内容は次のとおりです。

  • Visual Studio を使用して Service Fabric Mesh サービスをアップグレードする

このチュートリアル シリーズで学習する内容は次のとおりです。

Service Fabric mesh は現在プレビューの段階です。 プレビュー版は、追加使用条件に同意することを条件に使用できます。 この機能の一部の側面は、一般公開 (GA) 前に変更される可能性があります。

前提条件

このチュートリアルを開始する前に

Visual Studio を使用して Service Fabric Mesh サービスをアップグレードする

この記事では、アプリケーション内でマイクロサービスをアップグレードする方法を示します。 この例では、WebFrontEnd サービスを変更し、タスク カテゴリを表示して、指定されている CPU の量を増やします。 その後、デプロイされているサービスをアップグレードします。

構成を変更する

Service Fabric Mesh アプリを作成するときに、Visual Studio で各デプロイ環境 (クラウドとローカル) の parameters.yaml ファイルが追加されます。 これらのファイルでは、パラメーターとその値を定義できます。これらは service.yaml または network.yaml などの Mesh *.yaml ファイルから参照できます。 Visual Studio では、サービスで使用できる CPU の量など、いくつかの変数が提供されます。

WebFrontEnd_cpu パラメーターを更新し、WebFrontEnd サービスの使用頻度がより高くなるアプリケーションで cpu リソースを 1.5 に更新します。

  1. todolistapp プロジェクトの [環境]>[クラウド] で、parameters.yaml ファイルを開きます。 WebFrontEnd_cpu の値を 1.5 に変更します。 さまざまなサービスに適用される、同じ名前のパラメーターと区別するためのベスト プラクティスとして、パラメーター名の前には WebFrontEnd_ というサービス名が付けられます。

    WebFrontEnd_cpu: 1.5
    
  2. [WebFrontEnd]>[サービスのリソース] で、WebFrontEnd プロジェクトの service.yaml ファイルを開きます。

    resources: セクションでは、cpu:"[parameters('WebFrontEnd_cpu')]" に設定されていることに注意してください。 クラウド用にプロジェクトが構築されている場合、'WebFrontEnd_cpu の値は [環境]>[クラウド]>parameters.yaml ファイルから取得され、1.5 になります。 ローカルで実行するためにプロジェクトが構築されている場合、値は [環境]>[ローカル]>parameters.yaml ファイルから取得され、'0.5' となります。

ヒント

既定では、profile.yaml ファイルのピアであるパラメーター ファイルが、その profile.yaml ファイルの値を指定するために使用されます。 たとえば、Environments > Cloud parameters.yaml は Environment > Cloud >> profile.yaml のパラメーター値を提供します。

profile.yaml ファイルに parametersFilePath=”relative or full path to the parameters file” を追加して、これをオーバーライドすることができます。たとえば、parametersFilePath=”C:\MeshParms\CustomParameters.yaml”parametersFilePath=”..\CommonParameters.yaml” のようにします。

モデルを変更する

コードの変更を導入するため、ToDoItem.cs ファイルで ToDoItem クラスに Category プロパティを追加します。

public class ToDoItem
{
    public string Category { get; set; }
    ...
}

そして、同じファイル内の Load() メソッドを更新し、カテゴリを既定の文字列に設定します。

public static ToDoItem Load(string description, int index, bool completed)
{
    ToDoItem newItem = new ToDoItem(description)
    {
        Index = index,
        Completed = completed, 
        Category = "none"    // <-- add this line
    };

    return newItem;
}

サービスを変更する

WebFrontEnd プロジェクトは、To-Do リスト項目を表示する Web ページを含む ASP.NET Core アプリケーションです。 WebFrontEnd プロジェクトで Index.cshtml を開き、タスクのカテゴリを表示するための次に示す 2 行を追加します。

<div>
    <table class="table-bordered">
        <thead>
            <tr>
                <th>Description</th>
                <th>Category</th>           @*add this line*@
                <th>Done?</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model.Items)
            {
                <tr>
                    <td>@item.Description</td>
                    <td>@item.Category</td>           @*add this line*@
                    <td>@item.Completed</td>
                </tr>
            }
        </tbody>
    </table>
</div>

アプリをビルドして実行し、タスクの一覧を示す新しいカテゴリ列が Web ページに表示されることを確認します。

Visual Studio からアプリをアップグレードする

コードのアップグレードと構成のアップグレードのどちらを行う場合でも (この例では両方を行う)、Azure 上の Service Fabric Mesh アプリをアップグレードするには、Visual Studio で todolistapp を右クリックして、 [発行] を選択します。

[Service Fabric アプリケーションの発行] ダイアログが表示されます。

[ターゲット プロファイル] ドロップダウンを使用して、このデプロイで使用する profile.yaml ファイルを選びます。 クラウド内のアプリをアップグレードするため、ドロップダウンでは cloud.yaml を選びます。そのファイルで定義されている 1.0 の WebFrontEnd_cpu 値が使用されます。

Visual Studio: Service Fabric mesh の発行ダイアログ

Azure アカウントとサブスクリプションを選択します。 [場所] は、最初に To-Do アプリを Azure に発行したときに使用した場所に設定します。 この記事では、 [米国東部] を使用しました。

[リソース グループ] は、最初に To-Do アプリを Azure に発行したときに使用したリソース グループに設定します。

[Azure Container Registry] は、最初に To-Do アプリを Azure に発行したときに作成した Azure コンテナー レジストリの名前に設定します。

発行ダイアログで、 [発行] ボタンをクリックして Azure 上の To-Do アプリをアップグレードします。

Visual Studio の [出力] ウィンドウで [Service Fabric Tools] ウィンドウを選択して、アップグレードの進行状況を監視します。

イメージがビルドされ、Azure Container Registry にプッシュされた後、出力に [For status]\(状態について\) リンクが表示されます。これをクリックすれば、Azure portal でデプロイを監視することができます。

アップグレードが完了すると、Service Fabric Tools の出力に、アプリケーションの IP アドレスとポートが URL の形式で表示されます。

The application was deployed successfully and it can be accessed at http://10.000.38.000:20000.

Web ブラウザーを開き、その URL に移動して、Azure で実行されている Web サイトを表示します。 カテゴリ列が含まれる Web ページが表示されるはずです。

次のステップ

チュートリアルのこの部分で学習した内容は次のとおりです。

  • Visual Studio を使用して Service Fabric Mesh アプリをアップグレードする方法

次のチュートリアルに進みます。