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.