Partager via


Créer le service

Permet de créer le service Service Fabric spécifié.

Cette API permet de créer un service Service Fabric sans état ou avec état sous une application Service Fabric spécifiée. La description de la création du service inclut des informations de partitionnement et des propriétés facultatives pour le placement et l’équilibrage de charge. Certaines des propriétés peuvent être modifiées ultérieurement à l’aide de l’API UpdateService .

Requête

Méthode URI de demande
POST /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout}

Paramètres

Nom Type Obligatoire Emplacement
applicationId string Oui Chemin d’accès
api-version string Oui Requête
timeout entier (int64) Non Requête
ServiceDescription ServiceDescription Oui body

applicationId

Type : chaîne
Obligatoire : Oui

Identité de l’application. Il s’agit généralement du nom complet de l’application, sans « fabric ». Schéma d’URI. Depuis la version 6.0, les noms hiérarchiques sont séparés par le caractère « ~ ». Par exemple, si une application est nommée « fabric://mon_app/app1 », son identité est « mon_app~app1 » dans les versions 6.0 et supérieures, et « mon_app/app1 » dans les versions précédentes.


api-version

Type : chaîne
Obligatoire : Oui
Par défaut : 6.0

Version de l’API. Ce paramètre est obligatoire et sa valeur doit être « 6.0 ».

La version de l’API REST Service Fabric est basée sur la version du runtime dans laquelle l’API a été introduite ou a été modifiée. Le runtime Service Fabric prend en charge plusieurs versions de l’API. Il s’agit de la dernière version prise en charge de l’API. Si une version d’API inférieure est transmise, la réponse retournée peut être différente de celle documentée dans cette spécification.

En outre, le runtime accepte toute version supérieure à la dernière version prise en charge jusqu’à la version actuelle du runtime. Par conséquent, si la dernière version de l’API est 6.0, mais si le runtime est 6.1, afin de faciliter l’écriture des clients, le runtime accepte la version 6.1 pour cette API. Toutefois, le comportement de l’API sera en fonction de la version 6.0 documentée.


timeout

Type : integer (int64)
Obligatoire : Non
Par défaut : 60
InclusiveMaximum : 4294967295
InclusiveMinimum : 1

Délai d’attente du serveur pour l’exécution de l’opération en secondes. Il spécifie la durée pendant laquelle le client attend la fin de l’opération demandée. La valeur par défaut de ce paramètre est de 60 secondes.


ServiceDescription

Type : ServiceDescription
Obligatoire : Oui

Informations nécessaires pour créer un service.

Réponses

Code d’état HTTP Description Schéma de réponse
202 (accepté) Une opération réussie retourne le code 202 status.
Tous les autres codes status Réponse d’erreur détaillée.
FabricError

Exemples

Service sans état de base

Cet exemple montre comment créer un service Service Fabric sans état de base.

Requête

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

Réponse 202

Corps

Le corps de la réponse est vide.

Service avec état de base

Cet exemple montre comment créer un service Service Fabric avec état de base.

Requête

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

Réponse 202

Corps

Le corps de la réponse est vide.

Service sans état avec nom dns et mise à l’échelle automatique

Cet exemple montre comment créer un service Service Fabric sans état avec un nom dns défini et une mise à l’échelle automatique en fonction de l’utilisation du processeur.

Requête

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

Réponse 202

Corps

Le corps de la réponse est vide.

Service avec état avec partitions nommées et mise à l’échelle automatique

Cet exemple montre comment créer un service Service Fabric avec état avec des partitions nommées et une mise à l’échelle activées en fonction de l’utilisation de la mémoire.

Requête

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

Réponse 202

Corps

Le corps de la réponse est vide.