Создать службу
Создает указанную службу Service Fabric.
Этот API позволяет создать новую службу Service Fabric без отслеживания состояния или службу с отслеживанием состояния в указанном приложении Service Fabric. Описание создания службы включает сведения о секционировании и необязательные свойства для размещения и балансировки нагрузки. Некоторые свойства можно позже изменить с помощью UpdateService
API.
Запрос
Метод | Универсальный код ресурса (URI) запроса |
---|---|
POST | /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout} |
Параметры
Имя | Тип | Обязательно | Расположение |
---|---|---|---|
applicationId |
строка | Да | Путь |
api-version |
строка | Да | Запрос |
timeout |
integer (int64) | Нет | Запрос |
ServiceDescription |
ServiceDescription | да | Текст |
applicationId
Тип: string
Обязательный: да
Идентификатор приложения. Обычно это полное имя приложения без схемы универсального кода ресурса (URI) "fabric:".
Начиная с версии 6.0, иерархические имена разделяются знаком "~".
Например, если имя приложения — "fabric:/myapp/app1", то в версии 6.0 и более поздних версиях идентификатором приложения будет "myapp~app1", а в предыдущих версиях идентификатором был бы "myapp/app1".
api-version
Тип: string
Обязательный: да
По умолчанию: 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 секунд.
ServiceDescription
Тип: ServiceDescription
Обязательный: да
Сведения, необходимые для создания службы.
Ответы
Код состояния HTTP | Описание | схеме ответа. |
---|---|---|
202 Accepted (принято). | После успешной операции возвращается код состояния 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-именем и автоматическим масштабированием на основе использования ЦП.
Запрос
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
Текст
Текст ответа пуст.