Partilhar via


Criar Serviço

Cria o serviço do Service Fabric especificado.

Esta aPI permite criar um novo serviço sem estado ou com monitorização de estado do Service Fabric numa aplicação especificada do Service Fabric. A descrição para criar o serviço inclui informações de criação de partições e propriedades opcionais para posicionamento e balanceamento de carga. Algumas das propriedades podem ser modificadas posteriormente com a UpdateService API.

Pedir

Método URI do pedido
POST /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout}

Parâmetros

Nome Tipo Necessário Localização
applicationId string Yes Caminho
api-version string Yes Consulta
timeout número inteiro (int64) No Consulta
ServiceDescription DescriçãoDoServiço Yes Corpo

applicationId

Tipo: cadeia
Obrigatório: Sim

A identidade da aplicação. Normalmente, este é o nome completo da aplicação sem o esquema de URI "fabric:". A partir da versão 6.0, os nomes hierárquicos são delimitados com o caráter "~". Por exemplo, se o nome da aplicação for "fabric:/myapp/app1", a identidade da aplicação será "myapp~app1" na versão 6.0+ e "myapp/app1" em versões anteriores.


api-version

Tipo: cadeia
Obrigatório: Sim
Predefinição: 6.0

A versão da API. Este parâmetro é obrigatório e o respetivo valor tem de ser "6.0".

A versão da API REST do Service Fabric baseia-se na versão de runtime na qual a API foi introduzida ou alterada. O runtime do Service Fabric suporta mais do que uma versão da API. Esta é a versão suportada mais recente da API. Se for transmitida uma versão inferior da API, a resposta devolvida poderá ser diferente da documentada nesta especificação.

Além disso, o runtime aceita qualquer versão superior à versão suportada mais recente até à versão atual do runtime. Por isso, se a versão mais recente da API for a 6.0, mas se o runtime for 6.1, para facilitar a escrita 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 6.0 documentada.


timeout

Tipo: número inteiro (int64)
Obrigatório: Não
Predefinição: 60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1

O tempo limite do servidor para executar a operação em segundos. Este tempo limite especifica a duração de tempo que o cliente está disposto a aguardar que a operação pedida seja concluída. O valor predefinido para este parâmetro é 60 segundos.


ServiceDescription

Tipo: ServiceDescription
Obrigatório: Sim

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

Respostas

Código de Estado HTTP Description Esquema de Resposta
202 (Aceite) Uma operação bem-sucedida devolverá o código de estado 202.
Todos os outros códigos de estado A resposta detalhada ao erro.
FabricError

Exemplos

Serviço sem estado básico

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

Pedir

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 com monitorização de estado básico

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

Pedir

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 configurado e dimensionamento automático com base na utilização da cpu.

Pedir

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 monitorização de estado com partições nomeadas e dimensionamento ativado com base na utilização da memória.

Pedir

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.