共用方式為


叫用容器 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}

參數

名稱 類型 必要 Location
nodeName 字串 路徑
applicationId 字串 路徑
api-version 字串 查詢
ServiceManifestName string 查詢
CodePackageName string 查詢
CodePackageInstanceId string 查詢
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 Fabric REST 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

類型:整數 (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"
  }
}