サービスの作成

指定された Service Fabric サービスを作成します。

この API を使用すると、指定した Service Fabric アプリケーションで新しい Service Fabric ステートレスまたはステートフル サービスを作成できます。 サービスを作成するための説明には、配置と負荷分散のためのパーティション情報とオプションのプロパティが含まれます。 一部のプロパティは、後で API を使用して UpdateService 変更できます。

Request

Method 要求 URI
POST /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout}

パラメーター

名前 Type 必須 場所
applicationId string はい パス
api-version string はい クエリ
timeout integer (int64) いいえ クエリ
ServiceDescription ServiceDescription はい Body

applicationId

: string
必須: はい

アプリケーションの ID。 これは、通常は、'fabric:' URI スキームのないアプリケーションの完全な名前です。 バージョン 6.0 以降では、階層名は "~" 文字で区切られます。 たとえば、アプリケーション名が "fabric:/myapp/app1" の場合、6.0 以降ではアプリケーション ID は "myapp~app1" になり、前のバージョンでは "myapp/app1" になります。


api-version

: string
必須: はい
既定値:

API のバージョン。 このパラメーターは必須であり、その値は '6.0' である必要があります。

Service Fabric REST API のバージョンは、API が導入または変更されたランタイム バージョンに基づいています。 Service Fabric ランタイムでは、複数のバージョンの API がサポートされています。 これは、サポートされている API の最新バージョンです。 より低い API バージョンが渡された場合、返される応答は、この仕様に記載されている応答とは異なる場合があります。

さらに、ランタイムは、現在のバージョンのランタイムまで、サポートされている最新バージョンより高いバージョンを受け入れます。 したがって、最新の API バージョンが 6.0 ですが、ランタイムが 6.1 の場合、クライアントの記述を容易にするために、ランタイムはその API のバージョン 6.1 を受け入れます。 ただし、API の動作は、文書化されている 6.0 バージョンに従います。


timeout

: integer (int64)
必須: いいえ
既定値:
InclusiveMaximum: 4294967295
InclusiveMinimum: 1

操作を実行するためのサーバー タイムアウト (秒単位)。 このタイムアウトは、要求した操作が完了するまでクライアントが待機できる期間を指定します。 このパラメーターの既定値は 60 秒です。


ServiceDescription

種類: ServiceDescription
必須: はい

サービスを作成するために必要な情報。

応答

HTTP 状態コード 説明 応答スキーマ
202 (承認済み) 操作が成功すると、202 状態コードが返されます。
その他すべての状態コード 詳細なエラー応答。
FabricError

使用例

基本的なステートレス サービス

この例では、基本的なステートレス Service Fabric サービスを作成する方法を示します。

要求

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
本文
{
  "ServiceKind": "Stateless",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test1",
  "ServiceTypeName": "StatelessFrontendService",
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "InstanceCount": "4"
}

202 応答

本文

応答本文は空です。

基本的なステートフル サービス

この例では、基本的なステートフル Service Fabric サービスを作成する方法を示します。

要求

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
本文
{
  "ServiceKind": "Stateful",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test2",
  "ServiceTypeName": "StatefulBackendService",
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "TargetReplicaSetSize": "3",
  "MinReplicaSetSize": "2",
  "HasPersistedState": false
}

202 応答

本文

応答本文は空です。

DNS 名と自動スケーリングを使用したステートレス サービス

この例では、DNS 名が定義されたステートレス Service Fabric サービスを作成し、CPU 使用率に基づいて自動スケーリングする方法を示します。

要求

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
本文
{
  "ServiceKind": "Stateless",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test1",
  "ServiceTypeName": "StatelessFrontendService",
  "InitializationData": [],
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "InstanceCount": "2",
  "PlacementConstraints": "Color==Blue",
  "CorrelationScheme": [],
  "ServiceLoadMetrics": [],
  "ServicePlacementPolicies": [],
  "DefaultMoveCost": "Low",
  "IsDefaultMoveCostSpecified": true,
  "ServicePackageActivationMode": "ExclusiveProcess",
  "ServiceDnsName": "test1.test",
  "ScalingPolicies": [
    {
      "ScalingTrigger": {
        "Kind": "AveragePartitionLoad",
        "MetricName": "servicefabric:/_CpuCores",
        "LowerLoadThreshold": "0.300000",
        "UpperLoadThreshold": "0.800000",
        "ScaleIntervalInSeconds": "600"
      },
      "ScalingMechanism": {
        "Kind": "PartitionInstanceCount",
        "MinInstanceCount": "1",
        "MaxInstanceCount": "6",
        "ScaleIncrement": "2"
      }
    }
  ]
}

202 応答

本文

応答本文は空です。

名前付きパーティションと自動スケーリングを使用したステートフル サービス

この例では、名前付きパーティションを使用してステートフル Service Fabric サービスを作成し、メモリ使用量に基づいてスケーリングを有効にする方法を示します。

要求

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
本文
{
  "ServiceKind": "Stateful",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test2",
  "ServiceTypeName": "StatefulBackendService",
  "InitializationData": [],
  "PartitionDescription": {
    "PartitionScheme": "Named",
    "Count": "1",
    "Names": [
      "0"
    ]
  },
  "TargetReplicaSetSize": "3",
  "MinReplicaSetSize": "2",
  "HasPersistedState": true,
  "ServicePackageActivationMode": "ExclusiveProcess",
  "ScalingPolicies": [
    {
      "ScalingTrigger": {
        "Kind": "AverageServiceLoad",
        "MetricName": "servicefabric:/_MemoryInMB",
        "LowerLoadThreshold": "500",
        "UpperLoadThreshold": "900",
        "ScaleIntervalInSeconds": "600",
        "UseOnlyPrimaryLoad": false
      },
      "ScalingMechanism": {
        "Kind": "AddRemoveIncrementalNamedPartition",
        "MinPartitionCount": "1",
        "MaxPartitionCount": "3",
        "ScaleIncrement": "1"
      }
    }
  ]
}

202 応答

本文

応答本文は空です。