Creazione di un servizio
Crea il servizio di Service Fabric specificato.
Questa API consente di creare un nuovo servizio senza stato o senza stato di Service Fabric in un'applicazione di Service Fabric specificata. La descrizione per la creazione del servizio include informazioni di partizionamento e proprietà facoltative per il posizionamento e il bilanciamento del carico. Alcune delle proprietà possono essere modificate in un secondo momento usando UpdateService
l'API.
Richiesta
Metodo | URI richiesta |
---|---|
POST | /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout} |
Parametri
Nome | Tipo | Necessario | Posizione |
---|---|---|---|
applicationId |
string | Sì | Percorso |
api-version |
string | Sì | Query |
timeout |
integer (int64) | No | Query |
ServiceDescription |
ServiceDescription | sì | Corpo |
applicationId
Tipo: stringa
Obbligatorio: Sì
Identità dell'applicazione. Si tratta in genere del nome completo dell'applicazione senza lo schema URI "fabric:".
A partire dalla versione 6.0, i nomi gerarchici sono delimitati dal carattere "~".
Ad esempio, se il nome dell'applicazione è "fabric:/myapp/app1", l'identità dell'applicazione sarà "myapp~app1" nella versione 6.0 e successive e "myapp/app1" nelle versioni precedenti.
api-version
Tipo: stringa
Obbligatorio: Sì
Impostazione predefinita: 6.0
Versione dell'API. Questo parametro è obbligatorio e il relativo valore deve essere '6.0'.
La versione dell'API REST di Service Fabric è basata sulla versione di runtime in cui è stata introdotta o modificata l'API. Il runtime di Service Fabric supporta più versioni dell'API. Questa è la versione più recente supportata dell'API. Se viene passata una versione api inferiore, la risposta restituita può essere diversa da quella documentata in questa specifica.
Inoltre, il runtime accetta qualsiasi versione superiore alla versione supportata più recente fino alla versione corrente del runtime. Quindi, se la versione dell'API più recente è 6.0, ma se il runtime è 6.1, per semplificare la scrittura dei client, il runtime accetterà la versione 6.1 per tale API. Tuttavia, il comportamento dell'API sarà in base alla versione 6.0 documentata.
timeout
Tipo: integer (int64)
Obbligatorio: No
Impostazione predefinita: 60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1
Timeout del server per l'esecuzione dell'operazione in secondi. Questo timeout specifica la durata del tempo che il client è disposto a attendere il completamento dell'operazione richiesta. Il valore predefinito per questo parametro è 60 secondi.
ServiceDescription
Tipo: ServiceDescription
Obbligatorio: Sì
Informazioni necessarie per creare un servizio.
Risposte
Codice di stato HTTP | Descrizione | Schema di risposta |
---|---|---|
202 (Accettato) | Un'operazione riuscita restituirà il codice di stato 202. |
|
Tutti gli altri codici di stato | Risposta dettagliata all'errore. |
FabricError |
Esempio
Servizio senza stato di base
In questo esempio viene illustrato come creare un servizio Service Fabric senza stato di base.
Richiesta
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"
}
Risposta 202
Corpo
Il corpo della risposta è vuoto.
Servizio con stato di base
In questo esempio viene illustrato come creare un servizio Service Fabric con stato di base.
Richiesta
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
}
Risposta 202
Corpo
Il corpo della risposta è vuoto.
Servizio senza stato con nome DNS e ridimensionamento automatico
In questo esempio viene illustrato come creare un servizio Service Fabric senza stato con un nome DNS definito e ridimensionamento automatico in base all'utilizzo della CPU.
Richiesta
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"
}
}
]
}
Risposta 202
Corpo
Il corpo della risposta è vuoto.
Servizio con stato con partizioni denominate e ridimensionamento automatico
In questo esempio viene illustrato come creare un servizio Service Fabric con stato con partizioni denominate e ridimensionamento abilitato in base all'utilizzo della memoria.
Richiesta
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"
}
}
]
}
Risposta 202
Corpo
Il corpo della risposta è vuoto.