叫用容器 Api

在部署于 Service Fabric 節點上的容器上叫用容器 API。

針對指定程式碼封裝,叫用 Service Fabric 節點上所部署容器的容器 API。

要求

方法 要求 URI
POST /Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerApi?api-version=6.2&ServiceManifestName={ServiceManifestName}&CodePackageName={CodePackageName}&CodePackageInstanceId={CodePackageInstanceId}&timeout={timeout}

參數

名稱 類型 必要 位置
nodeName 字串 Path
applicationId 字串 Path
api-version 字串 查詢
ServiceManifestName 字串 查詢
CodePackageName 字串 查詢
CodePackageInstanceId 字串 查詢
timeout 整數 (int64) No 查詢
ContainerApiRequestBody ContainerApiRequestBody body

nodeName

類型:字串
必要:是

節點的名稱。


applicationId

類型:字串
必要:是

應用程式的身分識別。 這通常是沒有 'fabric:' URI 配置之應用程式的完整名稱。 從 6.0 版開始,階層的名稱會以 "~" 字元分隔。 例如,如果應用程式名稱是 "fabric:/myapp/app1",則應用程式識別在 6.0+ 中會是 "myapp~app1",而在舊版中會是 "myapp/app1"。


api-version

類型:字串
必要:是
預設值6.2

API 的版本。 此為必要參數,且其值必須為 ' 6.2 '。

Service FabricREST API 版本是以引入或變更 API 的執行階段版本為基礎。 Service Fabric 執行時間支援一個以上的 API 版本。 此版本是最新支援的 API 版本。 如果傳遞較低的 API 版本,則傳回的回應可能會與此規格中記載的不同。

此外,執行時間會接受高於最新支援版本的任何版本,直到執行時間的最新版本。 因此,如果最新的 API 版本為6.0,且執行時間為6.1,則執行時間會接受該 API 的版本6.1。 不過,API 的行為會依據記載的6.0 版本。


ServiceManifestName

類型:字串
必要:是

在 Service Fabric 叢集中,註冊為應用程式類型中一部分的服務資訊清單名稱。


CodePackageName

類型:字串
必要:是

服務資訊清單中所指定的程式碼套件名稱,此資訊清單已註冊為 Service Fabric 叢集中應用程式類型的一部分。


CodePackageInstanceId

類型:字串
必要:是

可唯一識別 Service Fabric 節點上所部署程式碼封裝執行個體的識別碼。


timeout

Type:整數 (int64)
必要:否
預設值60
InclusiveMaximum4294967295
InclusiveMinimum1

用來執行作業的伺服器超時(以秒為單位)。 此超時時間指定用戶端願意等候要求的作業完成的持續時間。 此參數的預設值為60秒。


ContainerApiRequestBody

類型ContainerApiRequestBody
必要:是

用於進行容器 API 呼叫的參數

回應

HTTP 狀態碼 描述 回應結構描述
200 (確定) 成功的作業會針對在指定程式碼套件的 Service Fabric 節點上部署的容器傳回200狀態碼和容器 API 回應。
ContainerApiResponse
所有其他狀態碼 詳細的錯誤回應。
FabricError

範例

取得容器記錄

此範例示範如何使用 HTTP GET 呼叫容器 API,以取得部署在節點上的程式碼套件。

要求

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

200回應

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

更新容器

此範例示範如何針對部署在節點上的程式碼套件,使用 HTTP POST 來呼叫容器 API。

要求

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

200回應

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