Azure Service Fabric CLI (sfctl) を使用した Azure Service Fabric アプリケーションの管理

Azure Service Fabric クラスターで実行されているアプリケーションを作成および削除する方法について説明します。

前提条件

  • Service Fabric CLI をインストールします。 次に、Service Fabric クラスターを選択します。 詳しくは、Service Fabric CLI の概要に関する記事をご覧ください。

  • Service Fabric アプリケーション パッケージをデプロイできるように準備します。 アプリケーションを作成してパッケージ化する方法について詳しくは、Service Fabric アプリケーション モデルに関する記事をご覧ください。

概要

新しいアプリケーションをデプロイするには、次の手順を実行します。

  1. アプリケーション パッケージを Service Fabric イメージ ストアにアップロードします。
  2. アプリケーションの種類をプロビジョニングします。
  3. イメージ ストアのコンテンツを削除します。
  4. アプリケーションを指定して作成します。
  5. サービスを指定して作成します。

既存のアプリケーションを削除するには、次の手順を実行します。

  1. アプリケーションを削除します。
  2. 関連付けられているアプリケーションの種類のプロビジョニングを解除します。

新しいアプリケーションのデプロイ

新しいアプリケーションをデプロイするには、次のタスクを実行します。

新しいアプリケーション パッケージをイメージ ストアにアップロードする

アプリケーションを作成する前に、アプリケーション パッケージを Service Fabric イメージ ストアにアップロードします。

たとえば、アプリケーション パッケージが app_package_dir ディレクトリにある場合は、次のコマンドを使用してディレクトリをアップロードします。

sfctl application upload --path ~/app_package_dir

大規模なアプリケーション パッケージの場合は、--show-progress オプションを指定するとアップロードの進行状況を確認できます。

アプリケーションの種類をプロビジョニングする

アップロードが完了したら、アプリケーションをプロビジョニングします。 アプリケーションをプロビジョニングするには、次のコマンドを使用します。

sfctl application provision --application-type-build-path app_package_dir

application-type-build-path の値は、アプリケーション パッケージをアップロードしたディレクトリの名前です。

アプリケーション パッケージを削除する

アプリケーションが正常に登録されたら、アプリケーション パッケージを削除することをお勧めします。 イメージ ストアからアプリケーション パッケージを削除すると、システム リソースが解放されます。 使用されていないアプリケーション パッケージを保持すると、ディスク ストレージが消費され、アプリケーションのパフォーマンスの問題につながります。

アプリケーション パッケージをイメージ ストアから削除するには、次のコマンドを使用します。

sfctl store delete --content-path app_package_dir

content-path はアプリケーションを作成したときにアップロードしたディレクトリの名前である必要があります。

アプリケーションの種類からアプリケーションを作成する

アプリケーションがプロビジョニングされたら、次のコマンドを使用して、アプリケーションに名前を付けて作成できます。

sfctl application create --app-name fabric:/TestApp --app-type TestAppType --app-version 1.0

app-name はアプリケーション インスタンスに対して使用する名前です。 追加のパラメーターは、以前にプロビジョニングしたアプリケーション マニフェストから取得できます。

アプリケーション名の先頭にはプレフィックス fabric:/ が必要です。

新しいアプリケーションのサービスを作成する

アプリケーションを作成したら、そのアプリケーションからサービスを作成します。 次の例では、アプリケーションから新しいステートレス サービスを作成します。 アプリケーションから作成できるサービスは、プロビジョニング済みのアプリケーション パッケージ内のサービス マニフェストで定義されています。

sfctl service create --app-id TestApp --name fabric:/TestApp/TestSvc --service-type TestServiceType \
--stateless --instance-count 1 --singleton-scheme

アプリケーションのデプロイと正常性を確認する

すべてが正常な状態にあることを確認するには、次に示す正常性のコマンドを使用します。

sfctl application list
sfctl service list --application-id TestApp

サービスが正常な状態にあることを確認するには、同様のコマンドを使用して、サービスとアプリケーションの両方の正常性を取得します。

sfctl application health --application-id TestApp
sfctl service health --service-id TestApp/TestSvc

サービスとアプリケーションが正常な状態であれば、HealthState の値が Ok になっています。

既存のアプリケーションの削除

アプリケーションを削除するには、次のタスクを実行します。

アプリケーションを削除する

アプリケーションを削除するには、次のコマンドを使用します。

sfctl application delete --application-id TestEdApp

アプリケーションの種類のプロビジョニングを解除する

アプリケーションを削除したら、不要になったアプリケーションの種類のプロビジョニングを解除できます。 アプリケーションの種類のプロビジョニングを解除するには、次のコマンドを実行します。

sfctl application unprovision --application-type-name TestAppType --application-type-version 1.0

指定するアプリケーションの種類の名前とバージョンは、以前にプロビジョニングしたアプリケーション マニフェストにある名前およびバージョンと一致している必要があります。

アプリケーションのアップグレード

アプリケーションを作成した後で、同じ手順を繰り返すと、アプリケーションの 2 番目のバージョンをプロビジョニングできます。 次に、Service Fabric アプリケーションのアップグレードにより、アプリケーションの 2 番目のバージョンの実行に移ることができます。 詳しくは、「Service Fabric アプリケーションのアップグレード」をご覧ください。

アップグレードを実行するには、まず、前と同じコマンドを使用してアプリケーションの次のバージョンをプロビジョニングします。

sfctl application upload --path ~/app_package_dir_2
sfctl application provision --application-type-build-path app_package_dir_2
sfctl store delete --content-path app_package_dir_2

その後、監視付きの自動アップグレードを実行することをお勧めします。次のコマンドを実行してアップグレードを行います。

sfctl application upgrade --app-id TestApp --app-version 2.0.0 --parameters "{\"test\":\"value\"}" --mode Monitored

アップグレードでは、指定されているセットによって既存のパラメーターがオーバーライドされます。 必要な場合には、アプリケーション パラメーターを引数としてアップグレード コマンドに渡してください。 アプリケーション パラメーターは JSON オブジェクトとしてエンコードする必要があります。

以前指定したパラメーターを取得するには、sfctl application info コマンドを使用できます。

アプリケーションのアップグレードが進行しているときは、sfctl application upgrade-status コマンドを使用して状態を取得できます。

また、進行中のアップグレードをキャンセルする必要がある場合は、sfctl application upgrade-rollback を使用してアップグレードをロールバックできます。

次のステップ