Поделиться через


Создать службу

Создает указанную службу 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

Текст

Текст ответа пуст.