Condividi tramite


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 Percorso
api-version string Query
timeout integer (int64) No Query
ServiceDescription ServiceDescription 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.