サービスの作成
指定された 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 応答
本文
応答本文は空です。