Служба обновления
Обновления службу Service Fabric, используя указанное описание обновления.
Этот API позволяет обновлять свойства работающей службы Service Fabric. Набор свойств, которые можно обновить, является подмножеством свойств, указанных во время создания службы. Текущий набор свойств можно получить с помощью GetServiceDescription
API. Обратите внимание, что обновление свойств работающей службы отличается от обновления приложения с помощью StartApplicationUpgrade
API. Обновление — это длительная фоновая операция, которая включает в себя перемещение приложения из одной версии в другую, один домен обновления за раз, в то время как обновление применяет новые свойства немедленно к службе.
Запрос
Метод | Универсальный код ресурса (URI) запроса |
---|---|
POST | /Services/{serviceId}/$/Update?api-version=6.0&timeout={timeout} |
Параметры
Имя | Тип | Обязательно | Расположение |
---|---|---|---|
serviceId |
строка | Да | Путь |
api-version |
строка | Да | Запрос |
timeout |
целое число (int64) | Нет | Запрос |
ServiceUpdateDescription |
ServiceUpdateDescription | да | Текст |
serviceId
Тип: строка
Обязательный: да
Идентификатор службы. Обычно он содержит полное имя службы из URI службы без указания схемы "fabric:".
Начиная с версии 6.0, иерархические имена разделяются знаком "~".
Например, если имя службы — "fabric:/myapp/app1/svc1", то в версии 6.0 и более поздних версиях идентификатором службы будет "myapp~app1~svc1", а в предыдущих версиях идентификатором был бы "myapp/app1/svc1".
api-version
Тип: строка
Обязательный: да
По умолчанию: 6.0
Версия API. Этот параметр является обязательным и его значение должно быть "6.0".
Версия REST API Service Fabric основана на версии среды выполнения, в которой api был представлен или изменен. Среда выполнения Service Fabric поддерживает несколько версий API. Это последняя поддерживаемая версия API. Если передается более ранжная версия API, возвращаемый ответ может отличаться от той, что описано в этой спецификации.
Кроме того, среда выполнения принимает любую версию, которая выше последней поддерживаемой версии, вплоть до текущей версии среды выполнения. Таким образом, если последняя версия API — 6.0, а среда выполнения — 6.1, чтобы упростить запись клиентов, среда выполнения примет версию 6.1 для этого API. Однако поведение API будет выполняться согласно описанной версии 6.0.
timeout
Тип: integer (int64)
Обязательный: нет
По умолчанию: 60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1
Время ожидания сервера до выполнения операции в секундах. Время ожидания — промежуток времени, в течение которого клиент готов ждать выполнения запрошенной операции. Значение по умолчанию для этого параметра — 60 секунд.
ServiceUpdateDescription
Тип: ServiceUpdateDescription
Обязательный: да
Сведения, необходимые для обновления службы.
Ответы
Код состояния HTTP | Описание | схеме ответа. |
---|---|---|
200 OK; | Успешная операция вернет код состояния 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
Текст
Текст ответа пуст.