Azure Service Fabric CLI (sfctl) を使用した Azure Service Fabric アプリケーションの管理
Azure Service Fabric クラスターで実行されているアプリケーションを作成および削除する方法について説明します。
前提条件
Service Fabric CLI をインストールします。 次に、Service Fabric クラスターを選択します。 詳しくは、Service Fabric CLI の概要に関する記事をご覧ください。
Service Fabric アプリケーション パッケージをデプロイできるように準備します。 アプリケーションを作成してパッケージ化する方法について詳しくは、Service Fabric アプリケーション モデルに関する記事をご覧ください。
概要
新しいアプリケーションをデプロイするには、次の手順を実行します。
- アプリケーション パッケージを Service Fabric イメージ ストアにアップロードします。
- アプリケーションの種類をプロビジョニングします。
- イメージ ストアのコンテンツを削除します。
- アプリケーションを指定して作成します。
- サービスを指定して作成します。
既存のアプリケーションを削除するには、次の手順を実行します。
- アプリケーションを削除します。
- 関連付けられているアプリケーションの種類のプロビジョニングを解除します。
新しいアプリケーションのデプロイ
新しいアプリケーションをデプロイするには、次のタスクを実行します。
新しいアプリケーション パッケージをイメージ ストアにアップロードする
アプリケーションを作成する前に、アプリケーション パッケージを 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
を使用してアップグレードをロールバックできます。