叫用容器 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
InclusiveMaximum: 4294967295
InclusiveMinimum: 1
用來執行作業的伺服器逾時 (以秒為單位)。 此逾時指定了用戶端願意等候要求作業完成的持續時間。 這個參數的預設值是 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"
}
}