Create Service

建立指定的 Service Fabric 服務。

此 API 允許在指定的 Service Fabric 應用程式下建立新的 Service Fabric 無狀態或具狀態服務。 建立服務的描述包括資料分割資訊和放置和負載平衡的選擇性屬性。 稍後可以使用 API 修改 UpdateService 部分屬性。

要求

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

參數

名稱 類型 必要 Location
applicationId 字串 路徑
api-version 字串 查詢
timeout 整數 (int64) No 查詢
ServiceDescription ServiceDescription body

applicationId

類型:字串
必要:是

應用程式的身分識別。 這通常是沒有 'fabric:' URI 配置之應用程式的完整名稱。 從 6.0 版開始,階層的名稱會以 "~" 字元分隔。 例如,如果應用程式名稱是 "fabric:/myapp/app1",則應用程式識別在 6.0+ 中會是 "myapp~app1",而在舊版中會是 "myapp/app1"。


api-version

類型:字串
必要:是
預設6.0

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

類型:整數 (int64)
必要:否
預設60
InclusiveMaximum4294967295
InclusiveMinimum1

用來執行作業的伺服器逾時 (以秒為單位)。 此逾時指定了用戶端願意等候要求作業完成的持續時間。 這個參數的預設值是 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 名稱和自動調整的無狀態服務

此範例示範如何建立無狀態 Service Fabric 服務,其 DNS 名稱已定義,並根據 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 回應

主體

回應主體是空的。