Help Center> ServiceStage> API Reference> Application Management V3 APIs> Component> Modifying Component Information by Component ID
Updated on 2024-06-14 GMT+08:00

Modifying Component Information by Component ID

Function

This API is used to modify component information by component ID.

URI

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

Table 1 Path parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Tenant's project ID. See Obtaining a Project ID.

application_id

Yes

String

Application ID. See Obtaining All Applications.

component_id

Yes

String

Component ID. See Obtaining All Components of an Application.

Request

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

Message body type or format.

X-Auth-Token

Yes

String

API calling can be authenticated using a token or AK/SK. If you use a token, this parameter is mandatory and must be set to the token. For details about how to obtain a token, see Obtaining a User Token.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Application component name. This value cannot be modified.

The value contains 2 to 64 characters consisting of letters, digits, hyphens (-), and underscores (_). It starts with a letter and ends with a letter or digit.

labels

No

Array of objects

Label. For container-based deployment, you can query a workload by label. For VM-based deployment, you can configure a label of the corresponding microservice name to use graceful startup and shutdown. See Table 4.

runtime_stack

Yes

Object

Runtime. This value cannot be modified. See Table 30. The value can be obtained from the response of the API for Querying a Runtime System Stack.

description

No

String

Description.

The value can contain up to 128 characters.

source

Yes

Object

Source of the code or software package. See Table 31.

build

No

Object

Component build. See Table 32.

limit_cpu

No

Number

Maximum CPU limit. Unit: core.

limit_memory

No

Number

Maximum memory size. Unit: GiB.

request_cpu

No

Number

CPU resources in application. Unit: core.

request_memory

No

Number

Applied memory. Unit: GiB.

version

Yes

String

Component version number. The value can contain up to 32 characters. It needs to meet the following rule:

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

envs

No

Array of objects

Environment variable list. See Table 28.

replica

Yes

Integer

Number of instances. This parameter can be modified only when the scaling function is used.

storages

No

Array of objects

Storage. See Table 5.

deploy_strategy

No

Object

Component deployment. See Table 8.

command

No

Object

Startup command. See Table 11.

post_start

No

Object

Post-start processing. See Table 12.

pre_stop

No

Object

Pre-stop processing. See Table 12.

mesher

No

Object

Multi-language access service mesh. This parameter is mandatory when Node.js is selected for the technology stack and the CSE engine is bound. See Table 13.

timezone

No

String

Time zone where the component runs. Example: Asia/Shanghai.

jvm_opts

No

String

JVM parameter. Example: -Xms256m -Xmx1024m. If there are multiple parameters, separate them by spaces. If the parameter is left blank, the default value is used.

tomcat_opts

No

Object

Tomcat parameter. This parameter is valid when you use the Tomcat technology stack. See Table 14.

logs

No

Array of objects

Log collection. See Table 20.

custom_metric

No

Object

Custom metrics. See Table 21.

affinity

No

Object

Affinity. See Table 22.

anti_affinity

No

Object

Anti-affinity. See Table 22.

liveness_probe

No

Object

Component liveness probe. See Table 25.

readiness_probe

No

Object

Component service probe. See Table 25.

refer_resources

No

Array of objects

Associated resource. See Table 26.

external_accesses

No

Array of objects

External access. See Table 34.

Table 4 labels parameters

Parameter

Mandatory

Type

Description

key

Yes

String

Label name.

value

Yes

String

Label value.

Table 5 storages parameters

Parameter

Mandatory

Type

Description

type

Yes

String

Data storage type.

  • HostPath: host path for local disk mounting.
  • EmptyDir: temporary directory for local disk mounting.
  • ConfigMap: configuration item for local disk mounting.
  • Secret: secrets for local disk mounting.
  • PersistentVolumeClaim: cloud storage mounting.

name

Yes

String

Name of the storage disk.

parameters

Yes

Object

For details about the parameters of each data storage type, see Table 6.

mounts

Yes

Array of objects

Mount path of data storage. See Table 7.

Table 6 component_storage_parameters parameters

Parameter

Mandatory

Type

Description

path

No

String

Host path. This parameter is applicable to the HostPath storage type. This parameter is mandatory when type is set to HostPath.

name

No

String

Name of a configuration item, secret, or PVC, which is applicable to ConfigMap, Secret, or PersistentVolumeClaim storage, respectively. This parameter is mandatory when type is set to ConfigMap, Secret, or PersistentVolumeClaim.

default_mode

No

Integer

Mounting permission. The value is in decimal format. Example: 384. This parameter is applicable to ConfigMap and secret storage.

medium

No

String

This parameter is applicable to EmptyDir storage. If it is not specified, the default disk medium is used. If it is set to memory, memory storage is enabled.

Table 7 mounts parameters

Parameter

Mandatory

Type

Description

path

Yes

String

Mount path.

sub_path

Yes

String

Subpath of the mount path.

read_only

Yes

Boolean

Read only or not.

Table 8 deploy_strategy parameters

Parameter

Mandatory

Type

Description

type

Yes

String

Deployment type.

  • OneBatchRelease: single-batch upgrade.
  • RollingRelease: rolling deployment and upgrade.
  • GrayRelease: dark launch upgrade.

rolling_release

No

Object

Rolling deployment parameter, which is mandatory when type is set to RollingRelease. For details, see Table 9.

gray_release

No

Object

Dark launch upgrade parameter, which is mandatory when type is set to GrayRelease. For details, see Table 10.

Table 9 rolling_release parameter

Parameter

Mandatory

Type

Description

batches

Yes

Integer

Deployment batches.

Table 10 gray_release parameters

Parameter

Mandatory

Type

Description

type

Yes

String

Dark launch policy. weight: The upgrade is performed based on dark launch traffic.

first_batch_weight

Yes

Integer

Proportion of first-batch dark launch traffic.

first_batch_replica

Yes

Integer

Number of first-batch dark launch instances.

remaining_batch

Yes

Integer

Number of batches for remaining instance deployment. After the first batch is completed, the remaining instances will be deployed in specified batches.

Example: If there are 5 instances remaining to be deployed in 3 batches, these 5 instances will be upgraded based on 2:2:1.

Table 11 Command parameters

Parameter

Mandatory

Type

Description

command

No

Array of String

Command for controlling container running.

args

No

Array of String

Parameter for controlling container running. Example: -port=8080. If there are multiple parameters, separate them by line breaks.

Table 12 component_lifecycle parameters

Parameter

Mandatory

Type

Description

type

Yes

String

Processing method.

  • http
  • command

scheme

No

String

HTTP request type. Value: HTTP or HTTPS. This parameter is valid only when type is set to http.

host

No

String

Custom IP address. If this parameter is left blank, the pod IP address is used. This parameter is valid only when type is set to http.

port

No

Integer

Port. This parameter is valid only when type is set to http.

path

No

String

Request path. This parameter is valid only when type is set to http.

command

No

Array of String

Command list. This parameter is valid only when type is set to command.

Table 13 mesher parameter

Parameter

Mandatory

Type

Description

port

Yes

Integer

Process listening port.

Table 14 tomcat_opt parameter

Parameter

Mandatory

Type

Description

server_xml

Yes

String

  1. Listening port in the server.xml file will take effect even if it has been configured in public network access.
  2. The custom Tomcat configuration may conflict with the existing port. Check whether the custom port is occupied.
Table 15 host_aliases parameters

Parameter

Mandatory

Type

Description

ip

Yes

String

IP address.

hostname

Yes

Array of String

Host alias.

Table 16 dns_config parameters

Parameter

Mandatory

Type

Description

nameservers

No

Array of String

IP address list of the DNS server of the pod.

searches

No

Array of String

(Optional) List of DNS search domains used to search for host names in the pod.

options

No

Array of objects

An optional list of objects where each object may have a name property (required) and a value property (optional). This property is merged into the options generated from the specified DNS policy. Duplicate entries will be deleted. See Table 17.

Table 17 options parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Operation name.

value

No

String

Operation value.

Table 18 security_context parameters

Parameter

Mandatory

Type

Description

run_as_user

No

Integer

User for running containers. For example, to run containers as user root, set the user ID to 0.

run_as_group

No

Integer

Owner group specified for running container processes.

capabilities

No

Object

Capability set. See Table 19.

Table 19 capabilities parameters

Parameter

Mandatory

Type

Description

add

No

Array of String

Grant the Linux permission to the running user.

drop

No

Array of String

Remove the Linux permission of the running user.

Table 20 logs parameters

Parameter

Mandatory

Type

Description

log_path

Yes

String

Container log path.

rotate

Yes

String

Interval for dumping logs.

host_path

Yes

String

Mounted host path.

host_extend_path

Yes

String

Host extension path. By extending the host path, you can distinguish mounting from different containers in the same host path.

  • None: the extended path is not used.
  • PodUID: extend the host path based on the pod ID.
  • PodName: extend the host path based on the pod name.
  • PodUID/ContainerName: extend the host path based on the pod ID and container name.
  • PodName/ContainerName: extend the host path based on the pod name and container name.
Table 21 custom_metric parameters

Parameter

Mandatory

Type

Description

path

Yes

String

Collection path. Example: /metrics.

port

Yes

Integer

Collection port. Example: 9090.

dimensions

Yes

String

Monitoring dimension. Example: cpu_usage,mem_usage.

Table 22 component_affinity parameters

Parameter

Mandatory

Type

Description

az

No

Array of String

List of AZs.

node

No

Array of String

Node list.

component

No

Array of objects

Component list. See Table 23.

Table 23 affinity_component parameters

Parameter

Mandatory

Type

Description

displayName

No

String

Workload name.

name

No

String

Component name.

Table 24 match_expressions parameters

Parameter

Mandatory

Type

Description

key

Yes

String

Condition key.

value

Yes

String

Condition value.

operation

Yes

String

Operation

Table 25 component_probe parameters

Parameter

Mandatory

Type

Description

type

Yes

String

Type. Value: http, tcp, or command.

delay

Yes

Integer

Interval between the startup and detection.

timeout

Yes

Integer

Detection timeout interval.

scheme

No

String

Request type, which is HTTP or HTTPS. This parameter is valid only when type is set to http.

host

No

String

Custom IP address. If this parameter is left blank, the pod IP address is used. This parameter is valid only when type is set to http.

port

No

Integer

Port number. This parameter is valid only when type is set to http or tcp.

path

No

String

Request path. This parameter is valid only when type is set to http.

command

No

Array of String

Command list. This parameter is valid only when type is set to command.

Table 26 refer_resources parameters

Parameter

Mandatory

Type

Description

id

Yes

String

Resource ID.

type

Yes

String

Resource type.

  • vpc
  • eip
  • elb
  • cce
  • ecs
  • as
  • cse
  • dcs
  • rds

parameters

No

Object

Resource parameter, which is mandatory when type is cce. See Table 27.

Table 27 refer_resource_parameter parameter

Parameter

Mandatory

Type

Description

namespace

No

String

Namespace.

Table 28 env parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Variable name.

value

No

String

Variable value.

value_from

No

Object

Variable reference. See Table 29.

Table 29 value_from parameters

Parameter

Mandatory

Type

Description

reference_type

Yes

String

Reference type.

  • configMapKey
  • secretKey

name

Yes

String

Name of the configuration item or secret.

key

No

String

Key of the configuration item or secret.

optional

No

Boolean

Whether the key of the configuration item or secret is mandatory. Value: true and false.

Table 30 runtime_stack parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Technology stack name.

type

Yes

String

Technology stack type. Value: Java, Tomcat, Nodejs, Php, Docker, or Python.

When deploy_mode is set to virtualmachine, only Java, Tomcat, and Node.js are supported. When deploy_mode is set to container, all of the preceding types are supported.

version

Yes

String

Technology stack version.

deploy_mode

Yes

String

Deployment mode.

  • container
  • virtualmachine
Table 31 source parameters

Parameter

Mandatory

Type

Description

kind

Yes

String

Component source kind.

  • code
  • package
  • image

version

No

String

Version number.

url

No

String

Package address. This parameter is mandatory when kind is set to package or image.

storage

No

String

Storage mode. Value: swr (image), swr(software repository), codearts, or obs. This parameter is mandatory when kind is set to package or image.

auth

No

String

Authentication mode. Value: iam or none. Default value: iam.

repo_auth

No

String

Authorization name, which can be obtained from the authorization list.

repo_namespace

No

String

Namespace of the code repository.

repo_ref

No

String

Code branch or tag. Default value: master.

repo_type

No

String

Code repository type. Value: GitHub, BitBucket, or GitLab.

web_url

No

String

Code redirection URL. Example: https://github.com/example/demo.git.

repo_url

No

String

Code repository URL. Example: https://github.com/example/demo.git.

Table 32 build parameter

Parameter

Mandatory

Type

Description

parameters

No

Map<String, Object>

This parameter is provided only when no ID is available during build creation. See Table 33.

Table 33 parameters

Parameter

Mandatory

Type

Description

build_cmd

No

String

Compilation command. By default:

  1. When build.sh exists in the root directory, the command is ./build.sh.
  2. When build.sh does not exist in the root directory, the command varies depending on the OS. Example:
    • Java and Tomcat: mvn clean package
    • Nodejs: npm build

dockerfile_path

No

String

Address of the Docker file. By default, the Docker file is in the root directory (./).

artifact_namespace

No

String

Build archive organization. Default value: cas_{project_id}.

cluster_id

Yes

String

ID of the cluster to be built.

node_label_selector

No

Map<String, String>

key: key of the tag. value: value of the tag.

environment_id

No

String

Environment ID.

Table 34 external_accesses parameters

Parameter

Mandatory

Type

Description

protocol

No

String

External access type. Value: http or https.

address

No

String

External access address.

forward_port

No

Integer

External access port.

Response

Table 35 Response parameters

Parameter

Type

Description

job_id

String

Task ID.

Example Request

Modify the component named mycomponet. The component source is the weather-1.0.0.jar package stored in OBS bucket0001.

{
    "name": "mycomponet",
    "description": "",
    "labels": [
        {
            "key": "com-key",
            "value": "com-value"
        }
    ],
    "version": "2023.0323.15181",
    "runtime_stack": {
        "name": "OpenJDK8",
        "version": "1.1.1",
        "type": "Java",
        "deploy_mode": "virtualmachine"
    },
    "source": {
        "kind": "package",
        "url": "obs://bucket0001/weather-1.0.0.jar",
        "version": "",
        "storage": "obs"
    },
    "tomcat_opts": {
        "server_xml": ""
    },
    "refer_resources": [
        {
            "id": "67835bb3-1235-4cc9-be71-becbb2b4ca0d",
            "type": "ecs"
        }
    ],
    "replica": 1,
    "external_accesses": []
}

Example Response

{
    "job_id": "JOB1c8e20ec-1b30-4ee4-9a36-35a18b5e8b7e"
}

Status Code

Table 36 Status codes

HTTP Status Code

Description

200

OK

400

Bad Request

404

Not Found

500

Internal Server Error

Error Code

The error code format is SVCSTG.00100.[Error_ID], for example, SVCSTG.00100400. For details, see ServiceStage Error Codes.