你当前正在访问 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 integer (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)
必需:否
默认
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 响应

Body
{
  "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 响应

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