Vyvolání rozhraní API kontejneru

Vyvolejte rozhraní API kontejneru u kontejneru nasazeného v uzlu Service Fabric.

Vyvolejte rozhraní API kontejneru v kontejneru nasazeného v uzlu Service Fabric pro daný balíček kódu.

Žádost

Metoda Identifikátor URI žádosti
POST /Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName={ServiceManifestName}&CodePackageName={CodePackageName}&CodePackageInstanceId={CodePackageInstanceId}&timeout={timeout}

Parametry

Název Typ Vyžadováno Umístění
nodeName řetězec Yes Cesta
applicationId řetězec Yes Cesta
api-version řetězec Ano Dotaz
ServiceManifestName řetězec Ano Dotaz
CodePackageName řetězec Yes Dotaz
CodePackageInstanceId řetězec Ano Dotaz
timeout integer (int64) No Dotaz
ContainerApiRequestBody ContainerApiRequestBody Ano Text

nodeName

Typ: řetězec
Povinné: Ano

Název uzlu


applicationId

Typ: řetězec
Povinné: Ano

Identita aplikace. Obvykle se jedná o úplný název aplikace bez schématu identifikátoru URI fabric:. Od verze 6.0 jsou hierarchické názvy oddělené znakem ~. Pokud je například název aplikace "fabric:/myapp/app1", identita aplikace bude ve verzi 6.0 nebo novější "myapp~app1" a v předchozích verzích "myapp/app1".


api-version

Typ: řetězec
Povinné: Ano
Výchozí:6.2

Verze rozhraní API. Tento parametr je povinný a jeho hodnota musí být 6.2.

Verze rozhraní REST API Service Fabric je založená na verzi modulu runtime, ve které bylo rozhraní API zavedeno nebo změněno. Modul runtime Service Fabric podporuje více než jednu verzi rozhraní API. Tato verze je nejnovější podporovanou verzí rozhraní API. Pokud se předá nižší verze rozhraní API, může se vrácená odpověď lišit od odpovědi popsané v této specifikaci.

Modul runtime navíc přijímá všechny verze, které jsou vyšší než nejnovější podporovaná verze až do aktuální verze modulu runtime. Pokud je tedy nejnovější verze rozhraní API 6.0 a modul runtime je 6.1, modul runtime pro toto rozhraní API přijme verzi 6.1. Chování rozhraní API však bude podle zdokumentované verze 6.0.


ServiceManifestName

Typ: řetězec
Povinné: Ano

Název manifestu služby zaregistrovaného jako součást typu aplikace v clusteru Service Fabric.


CodePackageName

Typ: řetězec
Povinné: Ano

Název balíčku kódu zadaný v manifestu služby zaregistrovaný jako součást typu aplikace v clusteru Service Fabric.


CodePackageInstanceId

Typ: řetězec
Povinné: Ano

ID, které jednoznačně identifikuje instanci balíčku kódu nasazenou v uzlu Service Fabric.


timeout

Typ: integer (int64)
Povinné: Ne
Výchozí:60
InclusiveMaximum: 4294967295
InclusiveMinimum: 1

Časový limit serveru pro provedení operace v sekundách. Tento časový limit určuje dobu, po kterou je klient ochoten čekat na dokončení požadované operace. Výchozí hodnota tohoto parametru je 60 sekund.


ContainerApiRequestBody

Typ: ContainerApiRequestBody
Povinné: Ano

Parametry pro volání rozhraní API kontejneru

Odpovědi

Stavový kód HTTP Description Schéma odpovědi
200 (OK) Úspěšná operace vrátí stavový kód 200 a odpověď rozhraní API kontejneru pro kontejner nasazený v uzlu Service Fabric pro daný balíček kódu.
ContainerApiResponse
Všechny ostatní stavové kódy Podrobná chybová odpověď.
Chyba infrastruktury

Příklady

Získání protokolů kontejneru

Tento příklad ukazuje, jak volat rozhraní API kontejneru pomocí HTTP GET pro balíček kódu nasazený na uzlu.

Žádost

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

Odpověď 200

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

Aktualizace kontejneru

Tento příklad ukazuje, jak volat rozhraní API kontejneru s protokolem HTTP POST pro balíček kódu nasazený na uzlu.

Žádost

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

Odpověď 200

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