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"
}
}