Compartilhar via


Criar Serviço

Cria o serviço de malha do serviço especificado.

Essa api permite a criação de um novo serviço sem estado ou com estado do Service Fabric em um aplicativo do Service Fabric especificado. A descrição para criar o serviço inclui informações de particionamento e propriedades opcionais para posicionamento e balanceamento de carga. Algumas das propriedades podem ser modificadas posteriormente usando UpdateService a API.

Solicitação

Método URI da solicitação
POST /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout}

Parâmetros

Nome Type Obrigatório Location
applicationId string Sim Caminho
api-version string Sim Consulta
timeout inteiro (int64) Não Consulta
ServiceDescription ServiceDescription Sim Corpo

applicationId

Tipo: string
Obrigatório: sim

A identidade do aplicativo. Normalmente, este é o nome completo do aplicativo sem o esquema de URI "fabric:". A partir da versão 6.0, nomes hierárquicos são delimitados pelo caractere "~". Por exemplo, se o nome do aplicativo for "fabric:/meuaplicativo/aplicativo1", a identidade do aplicativo será "meuaplicativo~aplicativo1" na versão 6.0 e superiores, e "meuaplicativo/aplicativo1" nas versões anteriores.


api-version

Tipo: string
Obrigatório: sim
Padrão: 6.0

A versão da API. Esse parâmetro é necessário e seu valor deve ser '6.0'.

A versão da API REST do Service Fabric é baseada na versão de runtime na qual a API foi introduzida ou alterada. O runtime do Service Fabric dá suporte a mais de uma versão da API. Esta é a versão mais recente com suporte da API. Se uma versão inferior da API for passada, a resposta retornada poderá ser diferente daquela documentada nessa especificação.

Além disso, o runtime aceita qualquer versão maior do que a versão mais recente com suporte até a versão atual do runtime. Portanto, se a versão mais recente da API for 6.0, mas se o runtime for 6.1, para facilitar a gravação dos clientes, o runtime aceitará a versão 6.1 para essa API. No entanto, o comportamento da API será de acordo com a versão documentada 6.0.


timeout

Tipo: inteiro (int64)
Obrigatório: não
Padrão: 60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1

Tempo limite do servidor para executar a operação em segundos. Especifica o tempo que o cliente está disposto a esperar para que operação solicitada seja concluída. O valor padrão desse parâmetro é 60 segundos.


ServiceDescription

Tipo: ServiceDescription
Obrigatório: sim

As informações necessárias para criar um serviço.

Respostas

Código de status HTTP Descrição Esquema de Resposta
202 (Aceito) Uma operação bem-sucedida retornará 202 status código.
Todos os outros códigos status A resposta de erro detalhada.
FabricError

Exemplos

Serviço sem estado básico

Este exemplo mostra como criar um serviço básico do Service Fabric sem estado.

Solicitação

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Corpo
{
  "ServiceKind": "Stateless",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test1",
  "ServiceTypeName": "StatelessFrontendService",
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "InstanceCount": "4"
}

Resposta 202

Corpo

O corpo da resposta está vazio.

Serviço básico com estado

Este exemplo mostra como criar um serviço básico do Service Fabric com estado.

Solicitação

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Corpo
{
  "ServiceKind": "Stateful",
  "ApplicationName": "fabric:/test",
  "ServiceName": "fabric:/test/test2",
  "ServiceTypeName": "StatefulBackendService",
  "PartitionDescription": {
    "PartitionScheme": "Singleton"
  },
  "TargetReplicaSetSize": "3",
  "MinReplicaSetSize": "2",
  "HasPersistedState": false
}

Resposta 202

Corpo

O corpo da resposta está vazio.

Serviço sem estado com nome dns e dimensionamento automático

Este exemplo mostra como criar um serviço do Service Fabric sem estado com um nome dns definido e dimensionamento automático com base no uso da cpu.

Solicitação

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Corpo
{
  "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"
      }
    }
  ]
}

Resposta 202

Corpo

O corpo da resposta está vazio.

Serviço com estado com partições nomeadas e dimensionamento automático

Este exemplo mostra como criar um serviço do Service Fabric com estado com partições nomeadas e dimensionamento habilitado com base no uso de memória.

Solicitação

POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Corpo
{
  "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"
      }
    }
  ]
}

Resposta 202

Corpo

O corpo da resposta está vazio.