Udostępnij za pośrednictwem


Tworzenie usługi

Tworzy określoną usługę Service Fabric.

Ten interfejs API umożliwia utworzenie nowej bezstanowej lub stanowej usługi Service Fabric w ramach określonej aplikacji usługi Service Fabric. Opis tworzenia usługi obejmuje informacje o partycjonowaniu i opcjonalne właściwości umieszczania i równoważenia obciążenia. Niektóre właściwości można później modyfikować przy użyciu UpdateService interfejsu API.

Żądanie

Metoda Identyfikator URI żądania
POST /Applications/{applicationId}/$/GetServices/$/Create?api-version=6.0&timeout={timeout}

Parametry

Nazwa Typ Wymagane Lokalizacja
applicationId ciąg Tak Ścieżka
api-version ciąg Tak Zapytanie
timeout liczba całkowita (int64) Nie Zapytanie
ServiceDescription ServiceDescription Tak Treść

applicationId

Typ: ciąg
Wymagane: Tak

Tożsamość aplikacji. Zazwyczaj jest to pełna nazwa aplikacji bez schematu identyfikatora URI "fabric:". Począwszy od wersji 6.0, nazwy hierarchiczne są rozdzielane znakiem "~". Jeśli na przykład nazwa aplikacji to "fabric:/myapp/app1", tożsamość aplikacji będzie miała wartość "myapp~app1" w wersji 6.0+ i "myapp/app1" w poprzednich wersjach.


api-version

Typ: ciąg
Wymagane: Tak
Ustawienie domyślne: 6.0

Wersja interfejsu API. Ten parametr jest wymagany, a jego wartość musi mieć wartość "6.0".

Wersja interfejsu API REST usługi Service Fabric jest oparta na wersji środowiska uruchomieniowego, w której wprowadzono lub zmieniono interfejs API. Środowisko uruchomieniowe usługi Service Fabric obsługuje więcej niż jedną wersję interfejsu API. Jest to najnowsza obsługiwana wersja interfejsu API. Jeśli zostanie przekazana niższa wersja interfejsu API, zwrócona odpowiedź może być inna niż ta udokumentowana w tej specyfikacji.

Ponadto środowisko uruchomieniowe akceptuje wszystkie wersje wyższe niż najnowsza obsługiwana wersja do bieżącej wersji środowiska uruchomieniowego. Jeśli więc najnowsza wersja interfejsu API to 6.0, ale jeśli środowisko uruchomieniowe ma wartość 6.1, aby ułatwić pisanie klientów, środowisko uruchomieniowe zaakceptuje wersję 6.1 dla tego interfejsu API. Jednak zachowanie interfejsu API będzie zgodnie z udokumentowaną wersją 6.0.


timeout

Typ: liczba całkowita (int64)
Wymagane: Nie
Ustawienie domyślne: 60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1

Limit czasu serwera na potrzeby wykonywania operacji w sekundach. Ten limit czasu określa czas trwania, przez który klient chce poczekać na ukończenie żądanej operacji. Wartość domyślna tego parametru to 60 sekund.


ServiceDescription

Typ: ServiceDescription
Wymagane: Tak

Informacje niezbędne do utworzenia usługi.

Odpowiedzi

Kod stanu HTTP Opis Response Schema
202 (zaakceptowane) Pomyślna operacja zwróci kod stanu 202.
Wszystkie inne kody stanu Szczegółowa odpowiedź na błąd.
Błąd sieci szkieletowej

Przykłady

Podstawowa usługa bezstanowa

W tym przykładzie pokazano, jak utworzyć podstawową bezstanową usługę Service Fabric.

Żądanie

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

Odpowiedź z 202 r.

Treść

Treść odpowiedzi jest pusta.

Podstawowa usługa stanowa

W tym przykładzie pokazano, jak utworzyć podstawową stanową usługę Service Fabric.

Żądanie

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

Odpowiedź z 202 r.

Treść

Treść odpowiedzi jest pusta.

Bezstanowa usługa z nazwą DNS i skalowaniem automatycznym

W tym przykładzie pokazano, jak utworzyć bezstanową usługę Service Fabric z nazwą DNS definied i skalowaniem automatycznym na podstawie użycia procesora CPU.

Żądanie

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

Odpowiedź z 202 r.

Treść

Treść odpowiedzi jest pusta.

Usługa stanowa z nazwanymi partycjami i skalowaniem automatycznym

W tym przykładzie pokazano, jak utworzyć stanową usługę Service Fabric z nazwanymi partycjami i skalowaniem włączonym na podstawie użycia pamięci.

Żądanie

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

Odpowiedź z 202 r.

Treść

Treść odpowiedzi jest pusta.