Udostępnij za pośrednictwem


Wywoływanie interfejsu API kontenera

Wywoływanie interfejsu API kontenera w kontenerze wdrożonym w węźle usługi Service Fabric.

Wywołaj interfejs API kontenera w kontenerze wdrożonym w węźle usługi Service Fabric dla danego pakietu kodu.

Żądanie

Metoda Identyfikator URI żądania
POST /Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName={ServiceManifestName}&CodePackageName={CodePackageName}&CodePackageInstanceId={CodePackageInstanceId}&timeout={timeout}

Parametry

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

nodeName

Typ: ciąg
Wymagane: Tak

Nazwa węzła.


applicationId

Typ: ciąg
Wymagane: Tak

Tożsamość aplikacji. Jest to zazwyczaj 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.2

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

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. Ta wersja jest najnowszą obsługiwaną wersją 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 każdą wersję, która jest wyższa niż najnowsza obsługiwana wersja do bieżącej wersji środowiska uruchomieniowego. Jeśli więc najnowsza wersja interfejsu API to 6.0, a środowisko uruchomieniowe to 6.1, środowisko uruchomieniowe zaakceptuje wersję 6.1 dla tego interfejsu API. Jednak zachowanie interfejsu API będzie zgodnie z udokumentowaną wersją 6.0.


ServiceManifestName

Typ: ciąg
Wymagane: Tak

Nazwa manifestu usługi zarejestrowanego w ramach typu aplikacji w klastrze usługi Service Fabric.


CodePackageName

Typ: ciąg
Wymagane: Tak

Nazwa pakietu kodu określonego w manifeście usługi zarejestrowana jako część typu aplikacji w klastrze usługi Service Fabric.


CodePackageInstanceId

Typ: ciąg
Wymagane: Tak

Identyfikator, który jednoznacznie identyfikuje wystąpienie pakietu kodu wdrożone w węźle usługi Service Fabric.


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.


ContainerApiRequestBody

Typ: ContainerApiRequestBody
Wymagane: Tak

Parametry tworzenia wywołania interfejsu API kontenera

Odpowiedzi

Kod stanu HTTP Opis Response Schema
200 (OK) Pomyślna operacja zwróci kod stanu 200 i odpowiedź interfejsu API kontenera dla kontenera wdrożonego w węźle usługi Service Fabric dla danego pakietu kodu.
ContainerApiResponse
Wszystkie inne kody stanu Szczegółowa odpowiedź na błąd.
FabricError

Przykłady

Pobieranie dzienników kontenerów

W tym przykładzie pokazano, jak wywołać interfejs API kontenera przy użyciu metody HTTP GET dla pakietu kodu wdrożonego w węźle.

Żądanie

POST http://localhost:19080/Nodes/Node01/$/GetApplications/samples/winnodejs/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName=NodeServicePackage&CodePackageName=NodeService.Code&CodePackageInstanceId=131668159770315380
Treść
{
  "UriPath": "/containers/{id}/logs?stdout=true&stderr=true"
}

200 Odpowiedź

Treść
{
  "ContainerApiResult": {
    "Status": "200",
    "Content-Type": "text/plain; charset=utf-8",
    "Body": "vEthernet (Container NIC ec5c19b2) 172.17.201.44\n"
  }
}

Aktualizowanie kontenera

W tym przykładzie pokazano, jak wywołać interfejs API kontenera przy użyciu protokołu HTTP POST dla pakietu kodu wdrożonego w węźle.

Żądanie

POST http://localhost:19080/Nodes/N0020/$/GetApplications/samples/nodejs1/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName=NodeOnSF&CodePackageName=Code&CodePackageInstanceId=131673596679688285
Treść
{
  "HttpVerb": "POST",
  "UriPath": "/containers/{id}/update",
  "Body": "{ \"CpuShares\": 512}"
}

Odpowiedź 200

Treść
{
  "ContainerApiResult": {
    "Status": "200",
    "Content-Type": "application/json",
    "Body": "{\"Warnings\":null}\n"
  }
}