你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
调用容器 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 |
string | 是 | 路径 |
applicationId |
字符串 | 是 | 路径 |
api-version |
字符串 | 是 | 查询 |
ServiceManifestName |
字符串 | 是 | 查询 |
CodePackageName |
字符串 | 是 | 查询 |
CodePackageInstanceId |
字符串 | 是 | 查询 |
timeout |
整数 (int64) | 否 | 查询 |
ContainerApiRequestBody |
ContainerApiRequestBody | “是” | Body |
nodeName
类型:字符串
必需:是
节点的名称。
applicationId
类型:字符串
必需:是
应用程序的标识。 这通常是不带“fabric:”URI 方案的应用程序全名。
从版本 6.0 开始,分层名称以“~”字符隔开。
例如,如果应用程序名称为“fabric:/myapp/app1”,则在 6.0 及更高版本中应用程序标识为“myapp~app1”,在以前的版本中为“myapp/app1”。
api-version
类型:字符串
必需:是
默认:
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 节点上部署的代码包实例的 ID。
timeout
类型:整数 (int64)
必需:否
默认:
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"
}
}