更新时间:2024-12-16 GMT+08:00

根据组件ID获取组件信息

功能介绍

此API用于通过组件ID获取组件信息。

URI

GET /v3/{project_id}/cas/applications/{application_id}/components/{component_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目ID。获取方法,请参考获取项目ID

application_id

String

应用ID。获取方法,请参考获取所有应用

component_id

String

组件ID。获取方法,请参考获取应用所有组件

表2 查询参数

参数

是否必选

参数类型

描述

version

String

组件版本号。获取方法,请参考获取应用所有组件

请求消息

表3 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

消息体的类型(格式),默认取值为“application/json;charset=utf8”。

X-Auth-Token

String

调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token

响应消息

表4 响应参数

参数

参数类型

描述

name

String

应用组件名称。

由英文字母、数字、中划线(-)、下划线(_)组成,并以英文字母开头,英文字母或者数字结尾,不区分英文字母大小写,长度为2~64个字符。

workload_name

String

工作负载名称。

labels

Array of objects

标签。容器部署可通过标签查询对应工作负载,虚机部署可配置对应的微服务名称的标签来使用优雅上下线功能,请参考表5

runtime_stack

Object

运行时,请参考表31,可通过查询查询运行时栈接口返回的信息获取。

environment_id

String

环境ID。

application_id

String

应用ID。

description

String

描述。

最大长度为128个字符。

source

Object

代码/软件包来源,请参考表32

build

Object

组件构建,请参考表33

limit_cpu

Number

最大CPU限制,单位为Core。

limit_memory

Number

最大内存限制,单位为GiB。

request_cpu

Number

申请CPU资源,单位为Core。

request_memory

Number

申请内存资源,单位为GiB。

version

String

组件版本号,最大长度32个字符,规则为:

^([0-9]+)(.[0-9]+){2,3}$

envs

Array of objects

环境变量列表,请参考表29

replica

Integer

实例数。

storages

Array of objects

存储,请参考表6

deploy_strategy

Object

组件部署,请参考表9

command

Object

启动命令,请参考表13

post_start

Object

启动后处理,请参考表14

pre_stop

Object

停止前处理,请参考表14

mesher

Object

多语言接入服务网格,当技术栈选择Nodejs且绑定cse引擎时为必选,请参考表15

timezone

String

指定组件运行的时区,比如Asia/Shanghai。

jvm_opts

String

jvm参数,例如-Xms256m -Xmx1024m,多个参数以空格间隔,不填则使用默认值。

tomcat_opts

Object

tomcat参数,技术栈选择tomcat时生效,请参考表16

host_aliases

Array of objects

主机别名,请参考表17

dns_policy

String

DNS策略。

  • Default,继承pod所在节点域名解析配置。
  • ClusterFirst,追加域名解析配置。
  • ClusterFirstWithHostNet,仅对以hostNetWork方式运行的pod生效。
  • None,替换域名解析策略。

dns_config

Object

DNS配置,请参考表18

workload_kind

String

工作负载类型。

  • deployment,无状态工作负载。
  • statefulset,有状态工作负载。

security_context

Object

安全策略,请参考表20

logs

Array of objects

日志采集,请参考表22

custom_metric

Object

自定义指标监控,请参考表23

affinity

Array of objects

亲和性,请参考表24

anti_affinity

Array of objects

反亲和性,请参考表24

liveness_probe

Array of objects

组件存活探针,请参考表26

readiness_probe

Object

组件业务探针,请参考表26

refer_resources

Array of objects

关联资源,请参考表27

status

Object

组件状态,请参考表35

表5 labels

参数

参数类型

描述

key

String

标签名称

value

String

标签值

表6 storages

参数

参数类型

描述

type

String

数据存储类型。

  • HostPath,本地磁盘主机路径挂载。
  • EmptyDir,本地磁盘临时路径挂载。
  • ConfigMap,本地磁盘配置项挂载。
  • Secret,本地磁盘密钥挂载。
  • PersistentVolumeClaim,云存储挂载。

name

String

存储盘名称。

parameters

Object

对应各种数据存储类型的信息参数,请参考表7

mounts

Array of objects

数据存储挂载路径,请参考表8

表7 component_storage_parameters

参数

参数类型

描述

path

String

主机路径, 适用于HostPath的存储类型。

name

String

配置项、密钥或者PVC的名字, 适用于ConfigMap、Secret和PersistentVolumeClaim的存储类型。

default_mode

Integer

挂载的权限,十进制格式,例如:384。适用于ConfigMap和Secret的存储类型。

medium

String

适用于EmptyDir类型的存储,例如:memory。

表8 mounts

参数

参数类型

描述

path

String

挂载路径

sub_path

String

挂载路径的子路径

read_only

Boolean

是否只读

表9 deploy_strategy

参数

参数类型

描述

type

String

部署类型。

  • OneBatchRelease,单批升级。
  • RollingRelease,滚动部署升级。
  • GrayRelease,灰度发布升级。

rolling_release

Object

滚动部署参数,请参考表10

gray_release

Object

灰度发布升级,请参考表11

表10 rolling_release

参数

参数类型

描述

batches

Integer

分批部署批次。

表11 gray_release

参数

参数类型

描述

type

String

灰度策略。

  • weight, 按灰度流量进行升级。
  • content,按内容进行灰度。

first_batch_weight

Integer

首批灰度流量比例,灰度策略为weight时有效。

first_batch_replica

Integer

首批灰度实例数量,灰度策略为weight时有效。

remaining_batch

Integer

剩余实例部署批次,首批灰度发布成功之后,剩余实例滚动升级分多少批次完成。

例如:剩余实例数是5,剩余部署批次是3,那么升级剩余实例会按照2:2:1个实例分批升级。

灰度策略为weight时有效。

deployment_mode

Integer

部署模型。

  • 1,上游是微服务网关。
  • 3,上游是微服务。
  • 4,上游是ELB。

replica_surge_mode

String

灰度实例新增模式,灰度策略为content时有效。

  • mirror,蓝绿。
  • extra,金丝雀(先增后减)。
  • no_surge,金丝雀(先减后増)。

rule_match_mode

String

灰度规则生效方式,灰度策略为content时有效。

  • all,满足所有条件。
  • any,满足任一条件。

rules

Object

灰度规则,灰度策略为content时有效,请参考表12

表12 gray_rules

参数

参数类型

描述

type

String

匹配类型。

当前仅支持:header,请求头。

key

String

参数名称。

value

String

条件值。

condition

String

条件类型。

  • equal,相等。
  • match,匹配。
  • in,枚举。
表13 command

参数

参数类型

描述

command

Array of String

运行命令,控制容器运行的输入命令。

args

Array of String

运行参数,控制容器运行命令的输入参数。例如:-port=8080,多条参数以换行分隔。

表14 component_lifecycle

参数

参数类型

描述

type

String

处理方式。

  • http,http请求方式。
  • command,命令行方式。

scheme

String

http请求类型参数:HTTP、HTTPS。type为http类型时生效。

host

String

默认为POD的IP,可以指定自定义的IP。type为http类型时生效。

port

Integer

端口号,type为http类型时生效。

path

String

请求路径,type为http类型时生效。

command

Array of String

命令列表,type为command类型时生效。

表15 mesher

参数

参数类型

描述

port

Integer

进程监听端口。

表16 tomcat_opt

参数

参数类型

描述

server_xml

String

  1. 监听端口以server.xml配置的为准,如果之前在公网访问配置了监听端口,请保持一致。
  2. 自定义的Tomcat配置可能存在端口冲突,请检查自定义的端口是否被占用。
表17 host_aliases

参数

参数类型

描述

ip

String

IP地址

hostname

Array of String

主机别名

表18 dns_config

参数

参数类型

描述

nameservers

Array of String

Pod的DNS服务器的IP地址列表。

searches

Array of String

用于在Pod中查找主机名的DNS搜索域的列表。

options

Array of objects

可选的对象列表,其中每个对象可能具有name属性(必需)和value属性(可选)。 此属性中的内容将合并到从指定的DNS策略生成的选项。重复的条目将被删除。请参考表19

表19 options

参数

参数类型

描述

name

String

操作名称

value

String

操作值

表20 security_context

参数

参数类型

描述

run_as_user

Integer

运行用户,容器以当前用户权限运行,如以root权限运行则填写root用户ID 0。

run_as_group

Integer

运行属组,指定所有容器中的进程都以属组运行。

capabilities

Object

能力集,请参考表21

表21 capabilities

参数

参数类型

描述

add

Array of String

为运行用户添加Linux权限。

drop

Array of String

移除运行用户Linux权限。

表22 logs

参数

参数类型

描述

log_path

String

容器中日志路径。

rotate

String

日志转储周期。

host_path

String

挂载的主机路径。

host_extend_path

String

主机扩展路径,通过扩展主机路径,实现同一个主机路径下区分来自不同容器的挂载:

  • None,不使用扩展路径。
  • PodUID,通过POD的ID扩展主机路径。
  • PodName,通过POD的名称扩展主机路径。
  • PodUID/ContainerName,通过POD的ID和容器名称扩展主机路径。
  • PodName/ContainerName,通过POD的名称和容器名称扩展主机路径。
表23 custom_metric

参数

参数类型

描述

path

String

采集路径,例如:/metrics。

port

Integer

采集端口,例如:9090。

dimensions

String

监控维度,例如:"cpu_usage,mem_usage"。

表24 component_affinity

参数

参数类型

描述

condition

String

是否必须满足。

  • required,必须满足。
  • preferred,尽量满足。

kind

String

亲和类型。

  • node,节点亲和。
  • pod,pod亲和。

weight

Integer

亲和权重,取值范围0~100。

match_expressions

String

匹配条件,请参考表25

表25 match_expressions

参数

参数类型

描述

key

String

匹配标签key值。

operation

String

匹配条件。

value

String

匹配标签value值。

表26 component_probe

参数

参数类型

描述

type

String

类型:http、tcp、command。

delay

Integer

启动后多久开始探测。

timeout

Integer

探测超时时间

scheme

String

请求类型:HTTP、HTTPS,type为http类型时生效。

host

String

默认为POD的IP,可以指定自定义的IP。type为http类型时生效。

port

Integer

端口号,type为http和tcp类型时生效。

path

String

请求路径,type为http类型时生效。

command

Array of String

命令列表,type为command类型时生效。

表27 refer_resources

参数

参数类型

描述

id

String

资源id

type

String

资源类型。

  • vpc:虚拟私有云
  • eip:弹性公网IP
  • elb:弹性负载均衡
  • cce:云容器引擎
  • ecs:弹性云服务器
  • as: 弹性伸缩组
  • cse:微服务引擎
  • dcs:分布式缓存服务
  • rds:云数据库

parameters

Object

资源参数,请参考表28

表28 refer_resource_parameter

参数

参数类型

描述

namespace

String

命名空间

表29 env

参数

参数类型

描述

name

String

变量名。

value

String

变量值。

value_from

Object

变量引用,请参考表30

表30 value_from

参数

参数类型

描述

reference_type

String

引用类型。

  • configMapKey,配置项导入。
  • secretKey,密钥导入。

name

String

配置项或密钥的名称。

key

String

配置项或密钥的键值。

optional

Boolean

配置项或密钥的key是否必须存在。

表31 runtime_stack

参数

参数类型

描述

name

String

技术栈名称

type

String

技术栈类型,支持Java、Tomcat、Nodejs、Php、Docker、Python。

当部署模式为虚机部署时,仅支持Java、Tomcat、Nodejs;容器部署上述类型都支持。

version

String

技术栈版本。

deploy_mode

String

部署模式。

  • container,容器部署。
  • virtualmachine,虚机部署。
表32 source

参数

参数类型

描述

kind

String

组件来源类型。

  • code,源码。
  • package,软件包。
  • image,镜像包。

version

String

版本号。

url

String

包地址,类型为package和image时需要添加。

storage

String

存储方式,支持镜像仓库swr、软件仓库swr、软件开发生产线codearts和对象存储obs。类型为package和image时需要添加。

auth

String

认证方式,支持iam、none,默认是iam。

repo_auth

String

授权名称,在授权列表获取。

repo_namespace

String

代码仓库命名空间。

repo_ref

String

代码分支或者Tag,默认是master。

repo_type

String

代码仓类型,支持GitHub、BitBucket、GitLab。

web_url

String

代码跳转链接,例如:https://github.com/example/demo.git。

repo_url

String

代码仓url,例如:https://github.com/example/demo.git。

commit_id

String

代码仓库中,commit id是每次提交的唯一标识符,用于识别和引用特定的提交。

长度为8到40个字符,以小写字母或数字开头。

请求消息包含表2时才返回该字段。

表33 build

参数

参数类型

描述

parameters

Map<String, Object>

只在没有ID,新创建构建时提供。请参考表34

表34 parameters

参数

参数类型

描述

build_cmd

String

编译命令。默认:

  1. 根目录存在build.sh:./build.sh
  2. 根据运行系统,示例如下:
    • Java和Tomcat:mvn clean package
    • Nodejs: npm build

dockerfile_path

String

dockerfile地址,默认是根目录./。

artifact_namespace

String

构建归档组织,默认cas_{project_id}。

cluster_id

String

指定构建集群的id。

node_label_selector

Map<String, String>

key是标签的键,value是标签的值。

environment_id

String

环境ID。

表35 status

参数

参数类型

描述

component_status

String

组件状态。

  • INITIALIZING,初始化。
  • UPGRADING,升级中。
  • FAILED,失败。
  • RUNNING,运行中。
  • DOWN,下线。
  • DELETING,删除中。
  • DELETED,已删除。
  • RESERVED,保留。
  • STARTING,启动中。
  • STOPPING,停止中。
  • STOPPED,停止。
  • RESTARTING,重启中。
  • PENDING,未就绪
  • UNKNOWN,未知。
  • PARTIALLY_FAILED,部分失败。

available_replica

Integer

可用实例。

replica

Integer

总实例。

fail_detail

String

失败原因。

  • cluster_deleted,集群被删除。
  • cluster_unavailable,集群不可用。
  • cluster_inaccessible,集群无法访问。
  • namespace_deleted,命名空间被删除。
  • namespace_unavailable,命名空间不可用。
  • namespace_inaccessible,命名空间无法访问。
  • resource_deleted,资源已删除。
  • create_failed,创建组件失败。
  • delete_failed,删除组件失败。

last_job_id

String

最后执行任务ID。

create_time

Integer

创建时间。

update_time

Integer

更新时间。

creator

String

创建人。

artifact

Object

组件构建信息,请参考表36

表36 artifact

参数

参数类型

描述

type

String

组件来源类型。

  • 虚拟机部署支持软件包package。
  • 容器部署支持软件包package、镜像包image。

url

String

软件包/镜像地址。

请求示例

响应示例

{
    "name": "test-component",
    "description": "",
    "labels": [],
    "runtime_stack": {

        "type": "Java",
        "name": "OpenJDK8",
        "deploy_mode": "virtualmachine",
        "version": "1.1.1"
    },
    "id": "b8702b0f-94d3-4822-98a1-56815632a0a0",
    "source": {
        "kind": "package",
        "url": "obs://bucket0001/weather-1.0.0.jar",
        "storage": "obs"
    },
    "environment_id": "4d084044-0b80-4641-963c-b9c9f4092a4f",
    "application_id": "fc092465-a5fb-4a52-bc65-b735f18366d8",
    "replica": 1,
    "version": "2023.0323.15181",
    "envs": [],
     "tomcat_opts": {
        "server_xml": "",
        "http_port": 0,
        "context_path": null
    },
    "refer_resources": [
        {
            "id": "Default",
            "type": "ecs",
            "parameters": {
                "hosts": [
                    "67835bb3-1235-4cc9-be71-becbb2b4ca0d"
                ]
            }
        }
    ],
    "status": {
        "component_status": "RUNNING",
        "available_replica": 1,
        "replica": 1,
        "fail_detail": null,
        "last_job_id": "JOB1c8e20ec-1b30-4ee4-9a36-35a18b5e8b7e",
        "creator": null,
        "create_time": 1679556221933,
        "update_time": 1679579448500,
    },
    "workload_kind": "deployment"
}

状态码

状态码

描述

200

操作成功

400

错误的请求

404

请求对象不存在

500

内部错误

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请参考ServiceStage错误码