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.