更新服務
使用指定的更新描述更新 Service Fabric 服務。
此 API 允許更新執行中 Service Fabric 服務的屬性。 可以更新的屬性集是建立服務時所指定的屬性子集。 您可以使用 API 取得 GetServiceDescription
目前的一組屬性。 請注意,更新執行中服務的屬性與使用 StartApplicationUpgrade
API 升級應用程式不同。 升級是長時間執行的背景作業,涉及將應用程式從一個版本移至另一個版本,一次一個升級網域,而更新則會立即將新的屬性套用至服務。
要求
方法 | 要求 URI |
---|---|
POST | /Services/{serviceId}/$/Update?api-version=6.0&timeout={timeout} |
參數
名稱 | 類型 | 必要 | Location |
---|---|---|---|
serviceId |
字串 | 是 | 路徑 |
api-version |
字串 | 是 | 查詢 |
timeout |
整數 (int64) | No | 查詢 |
ServiceUpdateDescription |
ServiceUpdateDescription | 是 | body |
serviceId
類型:字串
必要:是
服務的身分識別。 此識別碼通常是不含 'fabric:' URI 配置的服務完整名稱。
從 6.0 版開始,階層的名稱會以 "~" 字元分隔。
例如,如果服務名稱是 "fabric:/myapp/app1/svc1",那麼在 6.0 以上的版本中,服務識別為 "myapp~app1~svc1",在舊版中則為 "myapp/app1/svc1"。
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
InclusiveMaximum: 4294967295
InclusiveMinimum: 1
用來執行作業的伺服器逾時 (以秒為單位)。 此逾時指定了用戶端願意等候要求作業完成的持續時間。 這個參數的預設值是 60 秒。
ServiceUpdateDescription
類型: ServiceUpdateDescription
必要:是
更新服務所需的資訊。
回應
HTTP 狀態碼 | 描述 | 回應結構描述 |
---|---|---|
200 (確定) | 成功的作業會傳回 202 狀態碼。 |
|
所有其他狀態碼 | 詳細的錯誤回應。 |
FabricError |
範例
無狀態服務
此範例示範如何更新無狀態 Service Fabric 服務之放置和負載平衡相關設定。
要求
POST http://localhost:19080/Services/test~test1/$/Update?api-version=6.0
主體
{
"ServiceKind": "Stateless",
"Flags": "1568",
"PlacementConstraints": "Color==Red",
"DefaultMoveCost": "High",
"ScalingPolicies": [
{
"ScalingTrigger": {
"Kind": "AveragePartitionLoad",
"MetricName": "servicefabric:/_CpuCores",
"LowerLoadThreshold": "0.500000",
"UpperLoadThreshold": "0.800000",
"ScaleIntervalInSeconds": "900"
},
"ScalingMechanism": {
"Kind": "PartitionInstanceCount",
"MinInstanceCount": "4",
"MaxInstanceCount": "6",
"ScaleIncrement": "2"
}
}
]
}
200 回應
主體
回應主體是空的。
具狀態服務
此範例示範如何更新具狀態 Service Fabric 服務的放置和負載平衡相關設定。
要求
POST http://localhost:19080/Services/test~test2/$/Update?api-version=6.0
主體
{
"ServiceKind": "Stateful",
"Flags": "40",
"PlacementConstraints": "Color==Green",
"StandByReplicaKeepDurationSeconds": "1000"
}
200 回應
主體
回應主體是空的。