Erstellen des Dienstes
Erstellt den angegebenen Service Fabric-Dienst.
Diese API ermöglicht das Erstellen eines neuen zustandslosen oder zustandsbehafteten Service Fabric-Diensts unter einer angegebenen Service Fabric-Anwendung. Die Beschreibung zum Erstellen des Diensts enthält Partitionierungsinformationen und optionale Eigenschaften für die Platzierung und den Lastenausgleich. Einige der Eigenschaften können später mithilfe UpdateService
der API geändert werden.
Anforderung
Methode | Anforderungs-URI |
---|---|
POST | /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout} |
Parameter
Name | type | Erforderlich | Standort |
---|---|---|---|
applicationId |
Zeichenfolge | Ja | Pfad |
api-version |
Zeichenfolge | Ja | Abfrage |
timeout |
ganze Zahl (int64) | Nein | Abfrage |
ServiceDescription |
ServiceDescription | Ja | Body |
applicationId
Typ: Zeichenfolge
Erforderlich: Ja
Die Identität (ID) der Anwendung. Dies ist üblicherweise der vollständige Name der Anwendung ohne das URI-Schema „fabric:“.
Ab Version 6.0 wird für hierarchische Namen das Zeichen „~“ als Trennzeichen verwendet.
Hat eine Anwendung beispielsweise den Namen „fabric://meineapp/app1“, hat die Anwendungsidentität in 6.0 und höher den Wert „meineapp~app1“ und in früheren Versionen den Wert „meineapp/app1“.
api-version
Typ: Zeichenfolge
Erforderlich: Ja
Standard:
Die Version der API. Dieser Parameter ist erforderlich, und sein Wert muss "6.0" sein.
Die Rest-API-Version von Service Fabric basiert auf der Laufzeitversion, in der die API eingeführt oder geändert wurde. Die Service Fabric-Runtime unterstützt mehrere Versionen der API. Dies ist die neueste unterstützte Version der API. Wenn eine niedrigere API-Version übergeben wird, unterscheidet sich die zurückgegebene Antwort möglicherweise von der in dieser Spezifikation dokumentierten.
Darüber hinaus akzeptiert die Runtime jede Version, die höher als die neueste unterstützte Version bis zur aktuellen Version der Runtime ist. Wenn also die neueste API-Version 6.0 ist, aber die Runtime 6.1 ist, akzeptiert die Runtime version 6.1 für diese API, um das Schreiben der Clients zu vereinfachen. Das Verhalten der API entspricht jedoch der dokumentierten Version 6.0.
timeout
Typ: integer (int64)
Erforderlich: Nein
Standard:
InclusiveMaximum: 4294967295
InklusiveMinimum: 1
Der Servertimeout für die Ausführung des Vorgangs in Sekunden. Dieser Timeout gibt die Zeitdauer an, die der Client bereit ist, auf den Abschluss des angeforderten Vorgangs zu warten. Der Standardwert für diesen Parameter ist 60 Sekunden.
ServiceDescription
Typ: ServiceDescription
Erforderlich: Ja
Die zum Erstellen eines Diensts erforderlichen Informationen.
Antworten
HTTP-Statuscode | BESCHREIBUNG | Antwortschema |
---|---|---|
202 (Akzeptiert) | Ein erfolgreicher Vorgang gibt 202 status Code zurück. |
|
Alle anderen status Codes | Die detaillierte Fehlerantwort. |
FabricError |
Beispiele
Grundlegender zustandsloser Dienst
In diesem Beispiel wird gezeigt, wie Sie einen einfachen zustandslosen Service Fabric-Dienst erstellen.
Anforderung
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Text
{
"ServiceKind": "Stateless",
"ApplicationName": "fabric:/test",
"ServiceName": "fabric:/test/test1",
"ServiceTypeName": "StatelessFrontendService",
"PartitionDescription": {
"PartitionScheme": "Singleton"
},
"InstanceCount": "4"
}
Antwort 202
Text
Der Antworttext ist leer.
Grundlegender zustandsbehafteter Dienst
In diesem Beispiel wird gezeigt, wie Sie einen einfachen zustandsbehafteten Service Fabric-Dienst erstellen.
Anforderung
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Text
{
"ServiceKind": "Stateful",
"ApplicationName": "fabric:/test",
"ServiceName": "fabric:/test/test2",
"ServiceTypeName": "StatefulBackendService",
"PartitionDescription": {
"PartitionScheme": "Singleton"
},
"TargetReplicaSetSize": "3",
"MinReplicaSetSize": "2",
"HasPersistedState": false
}
Antwort 202
Text
Der Antworttext ist leer.
Zustandsloser Dienst mit DNS-Namen und automatischer Skalierung
In diesem Beispiel wird gezeigt, wie Sie einen zustandslosen Service Fabric-Dienst mit einem definieden DNS-Namen und einer automatischen Skalierung basierend auf der CPU-Auslastung erstellen.
Anforderung
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Text
{
"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"
}
}
]
}
Antwort 202
Text
Der Antworttext ist leer.
Zustandsbehafteter Dienst mit benannten Partitionen und automatischer Skalierung
In diesem Beispiel wird gezeigt, wie Sie einen zustandsbehafteten Service Fabric-Dienst mit benannten Partitionen und aktivierter Skalierung basierend auf der Speicherauslastung erstellen.
Anforderung
POST http://localhost:19080/Applications/test/$/GetServices/$/Create?api-version=6.0
Text
{
"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"
}
}
]
}
Antwort 202
Text
Der Antworttext ist leer.