1. 接口描述
接口请求域名: tsf.tencentcloudapi.com 。
部署容器应用-更新
默认接口请求频率限制:20次/秒。
推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:DeployContainerApplication。 |
Version | 是 | String | 公共参数,本接口取值:2018-03-26。 |
Region | 是 | String | 公共参数,详见产品支持的 地域列表。 |
ApplicationId | 是 | String | 应用ID 示例值:application-9yn765ea |
ObservabilityConfig | 否 | ContainerGroupObservabilityConfig | 可观测配置 |
ClusterId | 否 | String | 集群ID 示例值:cls-23iwxs1y |
GroupId | 否 | String | 部署组ID,分组唯一标识 示例值:group-zvwpn3wy |
Envs.N | 否 | Array of Env | 业务容器的环境变量参数 |
VolumeMountInfoList.N | 否 | Array of VolumeMountInfo | 业务容器的挂载信息 |
LifeCycleHookList.N | 否 | Array of LifeCycleHook | 业务主容器生命周期钩子列表 |
AdditionalContainerList.N | 否 | Array of ContainerInfo | 附属容器列表 |
VolumeInfoList.N | 否 | Array of VolumeInfo | 容器卷信息 |
ServiceSettingList.N | 否 | Array of ServiceSetting | Service访问配置列表 |
Alias | 否 | String | 备注 示例值:consumer app |
GroupName | 否 | String | 部署组名称 示例值:consumer-app |
Tags.N | 否 | Array of Tag | 标签列表 |
ContainerKind | 否 | String | 容器类型 示例值:Deployment |
Server | 否 | String | 业务容器的 镜像Server ccr.ccs.tencentyun.com 示例值:ccr.ccs.tencentyun.com |
RepoName | 否 | String | 业务容器的镜像名 示例值:tsf_700001025656/test-sts-1 |
RepoType | 否 | String | 仓库类型 示例值:personal |
TcrRepoInfo | 否 | TcrRepoInfo | TCR仓库信息 |
SecretName | 否 | String | 容器访问凭证名称 示例值:qcloudregistry |
TagName | 否 | String | 业务容器的镜像版本号 示例值:v1 |
HealthCheckSettings | 否 | HealthCheckSettings | 健康检查 |
CpuRequest | 否 | String | 业务容器的 cpu request 示例值:0.1 |
CpuLimit | 否 | String | 业务容器的 cpu limit 示例值:0.5 |
MemRequest | 否 | String | 业务容器的 mem request 示例值:1024 |
MemLimit | 否 | String | 业务容器的 mem limit 示例值:200 |
JvmOpts | 否 | String | 业务容器的 jvm 参数 示例值:-Xms128m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m |
InitContainerEnable | 否 | Boolean | 是否为初始化容器 业务主容器不能为初始化容 示例值:false |
PrivilegeContainerEnable | 否 | Boolean | 业务主容器是否为特权容器 示例值:false |
RunCommand | 否 | String | 业务主容器运行命令(转base64) 示例值:/bin/sh |
RunArg | 否 | String | 业务主容器运行参数(转base64) 示例值:-c\nwhile true; do echo hello; sleep 10; done |
InstanceNum | 否 | Integer | 实例数量 示例值:1 |
SchedulingStrategy | 否 | SchedulingStrategy | 调度策略 |
RestartPolicy | 否 | String | 重启策略 示例值:Always |
ServiceSpecEncode | 否 | String | 服务治理配置 示例值:NULL |
IstioMemRequest | 否 | String | istio容器的 mem Request 示例值:200 |
IstioCpuRequest | 否 | String | istio容器的 cpu Request 示例值:0.4 |
IstioMemLimit | 否 | String | istio容器的 mem Limit 示例值:1024 |
IstioCpuLimit | 否 | String | istio容器的 cpu Limit 示例值:1 |
ServiceGovernanceConfig | 否 | ContainerGroupServiceGovernanceConfig | 服务治理配置 |
AgentMemRequest | 否 | String | agent容器的 mem Request 示例值:200 |
AgentCpuRequest | 否 | String | agent容器的 cpu Request 示例值:0.1 |
AgentMemLimit | 否 | String | agent容器的 mem Limit 示例值:200 |
AgentCpuLimit | 否 | String | agent容器的 cpu Limit 示例值:1 |
UpdateType | 否 | Integer | 发布策略(0表示快速更新,1表示滚动更新。默认值为0) 示例值:0 |
UpdateIvl | 否 | Integer | 更新间隔,单位秒 示例值:10 |
MaxSurge | 否 | String | 对应更新策略和策略配置参数 示例值:25% |
MaxUnavailable | 否 | String | 对应更新策略和策略配置参数 示例值:0 |
WarmupSetting | 否 | WarmupSetting | 预热参数配置 |
ConfigTemplateId | 否 | String | 配置模版ID 示例值:template-id |
ConfigTemplateVersion | 否 | Integer | 配置模版Version 示例值:0 |
VolumeClean | 否 | Boolean | 是否清除数据卷信息 示例值:false |
NamespaceId | 否 | String | 命名空间Id 示例值:namespace-xx |
DeployAgent | 否 | Boolean | 是否部署agent容器 示例值:true |
AgentProfileList.N | 否 | Array of AgentProfile | javaagent信息: SERVICE_AGENT/OT_AGENT |
ServiceClean | 否 | Boolean | 是否清除Service信息 示例值:false |
EnvClean | 否 | Boolean | 是否清除Env信息 示例值:false |
DeployDesc | 否 | String | 本次部署的描述信息 示例值:update image to v1 |
K8sNamespaceName | 否 | String | k8s命名空间名称 示例值:consumer |
StaticIpEnabled | 否 | Boolean | 是否启用静态IP 示例值:false |
PodManagementPolicyType | 否 | String | 启动策略[OrderedReady/Parallel] 示例值:OrderedReady |
Partition | 否 | Integer | 滚动更新分区序号 示例值:0 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
Result | DeployContainerApplicationResp | 部署容器应用是否成功。 true:成功。 false:失败。 注意:此字段可能返回 null,表示取不到有效值。 |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 部署容器应用
输入示例
POST / HTTP/1.1
Host: tsf.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: DeployContainerGroup
<公共请求参数>
{
"ApplicationId": "application-6ym5kebd",
"GroupName": "test-group-1",
"ClusterId": "cls-23iwxs1l",
"Alias": "app remark",
"NamespaceId": "namespace-by8mg4xs",
"Tags": [
{
"TagKey": "tke-clusterId",
"TagValue": "cls-23iwxs1l"
}
],
"ContainerKind": "Deployment",
"InstanceNum": 1,
"SchedulingStrategy": {
"Type": "NONE",
"NodeScheduleStrategyType": "Default",
"AvailableZoneScatterScheduleType": "None",
"PodScheduleStrategyType": "None",
"TolerateScheduleType": "None"
},
"ServiceSettingList": [
{
"LoadBalancingType": "Intranet",
"ExternalTrafficStrategy": "Local",
"ExternalTrafficPolicy": "Local",
"ServiceName": "test-svc-1",
"HeadlessService": true,
"AccessType": 1,
"SubnetId": "subnet-d15zonly",
"OpenSessionAffinity": false,
"SessionAffinityTimeoutSeconds": 10800,
"ProtocolPorts": [
{
"Protocol": "TCP",
"TargetPort": 80,
"Port": 80,
"Name": "svc-1"
}
]
}
],
"ServiceClean": false,
"EnvClean": true,
"RestartPolicy": "Always",
"CpuRequest": "0.25",
"MemRequest": "120",
"MemLimit": "1280",
"CpuLimit": "0.5",
"Server": "ccr.ccs.tencentyun.com",
"RepoName": "tsf_700001025656/test-sts-1",
"TagName": "nginx-v1",
"Envs": [
{
"ValueFrom": {
"FieldRef": {
"FieldPath": "metadata.name"
}
},
"Name": "env1"
},
{
"ValueFrom": {
"ResourceFieldRef": {
"Resource": "limits.memory"
}
},
"Name": "env2"
},
{
"ValueFrom": {
"ConfigMapKeyRef": {
"Name": "kube-root-ca.crt",
"Key": "ca.crt"
}
},
"Name": "env3"
},
{
"ValueFrom": {
"SecretKeyRef": {
"Name": "qcloudregistrykey",
"Key": ".dockercfg"
}
},
"Name": "env4"
}
],
"RepoType": "personal",
"PrivilegeContainerEnable": true,
"RunCommand": "/bin/sh",
"RunArg": "-c\nwhile true; do echo hello; sleep 10; done",
"InitContainerEnable": false,
"LifeCycleHookList": [
{
"HookType": "postStart",
"ExecMode": "httpGet",
"HttpGetOption": {
"Scheme": "HTTP",
"Host": "host.com",
"Path": "/tmp",
"Port": "7998"
}
},
{
"HookType": "preStop",
"ExecMode": "none",
"HttpGetOption": {
"Scheme": "HTTP"
}
}
],
"HealthCheckSettings": {
"LivenessProbe": {
"Type": "K8S_NATIVE",
"ActionType": "HTTP",
"InitialDelaySeconds": 0,
"TimeoutSeconds": 3,
"PeriodSeconds": 30,
"SuccessThreshold": 1,
"FailureThreshold": 3,
"Port": "30000",
"Scheme": "HTTP",
"Path": "/"
},
"ReadinessProbe": {
"Type": "TSF_DEFAULT"
}
},
"JvmOpts": "-Xms128m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m",
"VolumeMountInfoList": [
{
"VolumeMountPath": "/tmp",
"VolumeMountSubPath": "/",
"ReadOrWrite": "1",
"VolumeMountName": "test-data-emptydir"
}
],
"AgentCpuRequest": "0.1",
"AgentCpuLimit": "0.2",
"AgentMemRequest": "125",
"AgentMemLimit": "400",
"DeployAgent": true,
"AdditionalContainerList": [
{
"CpuRequest": "0.25",
"MemRequest": "120",
"MemLimit": "1280",
"CpuLimit": "0.5",
"Server": "ccr.ccs.tencentyun.com",
"RepoName": "tsf_700001025656/test-ns",
"TagName": "polaris-1",
"Envs": [],
"RepoType": "personal",
"PrivilegeContainerEnable": false,
"InitContainerEnable": false,
"LifeCycleHookList": [
{
"HookType": "postStart",
"ExecMode": "none",
"HttpGetOption": {
"Scheme": "HTTP"
}
},
{
"HookType": "preStop",
"ExecMode": "none",
"HttpGetOption": {
"Scheme": "HTTP"
}
}
],
"HealthCheckSettings": {},
"JvmOpts": "-Xms128m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m",
"VolumeMountInfoList": []
}
],
"VolumeInfoList": [
{
"VolumeName": "test-data-emptydir",
"VolumeType": "emptyDir",
"ConfigMapOptions": [],
"EmptyDirOption": {
"StorageCapacity": 1,
"StorageUnit": "Gi",
"EnableMemory": true
}
}
],
"VolumeClean": true,
"ServiceGovernanceConfig": {
"GovernanceType": "SHARE",
"EnableGovernance": true
},
"ObservabilityConfig": {
"BusinessLogConfigIdList": [
"apm-busi-log-cfg-lba2povk",
"apm-busi-log-cfg-2vz5nm9v"
],
"BusinessLogDeliveryConfigIdList": []
},
"WarmupSetting": {
"Enabled": true,
"WarmupTime": 60,
"Curvature": 2,
"EnabledProtection": true
},
"AgentProfileList": [
{
"AgentType": "OT_AGENT",
"AgentVersion": ""
}
],
"UpdateType": 1,
"UpdateIvl": 10,
"MaxSurge": "25%",
"MaxUnavailable": "0"
}
输出示例
{
"Response": {
"Result": {
"GroupId": "group-oydjq4my",
"TaskId": "task-2.0-gvko6ona"
},
"RequestId": "a187dea0-773a-4076-a06b-ac6482f6f679"
}
}
5. 开发者资源
腾讯云 API 平台
腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。
API Inspector
用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。
SDK
云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。
- Tencent Cloud SDK 3.0 for Python: GitHub, Gitee
- Tencent Cloud SDK 3.0 for Java: GitHub, Gitee
- Tencent Cloud SDK 3.0 for PHP: GitHub, Gitee
- Tencent Cloud SDK 3.0 for Go: GitHub, Gitee
- Tencent Cloud SDK 3.0 for Node.js: GitHub, Gitee
- Tencent Cloud SDK 3.0 for .NET: GitHub, Gitee
- Tencent Cloud SDK 3.0 for C++: GitHub, Gitee
- Tencent Cloud SDK 3.0 for Ruby: GitHub, Gitee
命令行工具
6. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
FailedOperation.ClusterQueryFailed | 查询集群失败。 |
FailedOperation.ContainergroupKuberneteApiInvokeError | 调用 kube-api-server 失败。 |
FailedOperation.ContainergroupKubernetesApiInvokeError | 调用 kube-api-server 失败。 |
FailedOperation.ContainergroupKubernetesConnectError | 调用 kube-api-server 失败。 |
FailedOperation.TokenQueryFailed | TOKEN查询失败。 |
FailedOperation.TsfPrivilegeError | TSF权限模块异常,请联系系统管理员。 |
FailedOperation.UnhandledException | 模块未处理异常。 |
InternalError.ContainergroupKuberneteApiInvokeError | 访问TKE服务失败。 |
InternalError.ContainergroupKuberneteConnectError | 连接TKE服务失败。 |
InternalError.ContainergroupSqlFailed | 容器应用SQL错误。 |
InternalError.UnhandledException | 模块未处理异常。 |
InvalidParameter.BadRequest | 示例:serviceId模块接口action请求不正确(400 BAD REQUEST)。 |
InvalidParameter.KubernetesParamError | 参数错误。 |
InvalidParameter.ParamError | 参数错误。 |
InvalidParameterValue.ContainergroupAccesstypeNull | 服务访问方式不能为空。 |
InvalidParameterValue.ContainergroupCpulimitOver | 集群 CPU 资源不足。 |
InvalidParameterValue.ContainergroupEnvValueNotSet | 容器 Env 的 Value 和 ValueFrom 至少要有一个。 |
InvalidParameterValue.ContainergroupGroupidNull | 部署组ID不能为空。 |
InvalidParameterValue.ContainergroupInvalidCpuInfo | CPU limit 和 request 不能同时为空。 |
InvalidParameterValue.ContainergroupInvalidMemInfo | 内存 limit 和 request 不能同时为空。 |
InvalidParameterValue.ContainergroupMemlimitOver | 集群内存资源不足。 |
InvalidParameterValue.ContainergroupNodePortInvalid | 主机端口值非法。 |
InvalidParameterValue.ContainergroupPortNull | 服务端口不能为空。 |
InvalidParameterValue.ContainergroupPortsRepeat | 服务端口不允许重复映射。 |
InvalidParameterValue.ContainergroupProtocolInvalid | 协议值非法,限定:TCP/UDP。 |
InvalidParameterValue.ContainergroupProtocolMixError | 公网访问方式下,协议需要一致。 |
InvalidParameterValue.ContainergroupProtocolNull | 协议不能为空。 |
InvalidParameterValue.ContainergroupProtocolPortsNull | 协议端口不能为空。 |
InvalidParameterValue.ContainergroupReponameInvalid | 镜像仓库名与应用名不匹配。 |
InvalidParameterValue.ContainergroupResourceAgentValueInvalid | 示例:agent 容器资源值非法 , cpu。 |
InvalidParameterValue.ContainergroupServiceNameValidError | service名称校验失败。 |
InvalidParameterValue.ContainergroupTargetPortsRepeat | 容器端口不允许重复映射。 |
InvalidParameterValue.ContainergroupTargetportNull | 容器端口不能为空。 |
InvalidParameterValue.ContainergroupUpdateivlInvalid | 更新间隔不能为空或者数值非法。 |
InvalidParameterValue.ContainergroupUpdatetypeInvalid | updateType参数不合法,值必须为0、1。 |
InvalidParameterValue.ContainergroupYamlUserContainerNotFound | 找不到业务容器。 |
InvalidParameterValue.ImagerepoRepoNameNull | 镜像仓库名不能为空。 |
InvalidParameterValue.ImagerepoReponameInvalid | 镜像仓库名不合法,示例:tsf-repo/nginx。 |
InvalidParameterValue.ImagerepoTagnameNull | imageTags不能为空。 |
InvalidParameterValue.WrongDontStartValue | 仅有停止状态下的部署组才可以不启动。 |
MissingParameter.SystemParameterRequired | 示例:未指定language。 |
ResourceNotFound.ClusterNotExist | 无法获取命名空间所属集群。 |
ResourceNotFound.ContainergroupGroupNotFound | 无法找到该部署组。 |
ResourceNotFound.MicroserviceOffline | 目标微服务已离线。 |
UnauthorizedOperation.NoPrivilege | 用户无权限访问该接口。 |