Help Center/ CodeArts Deploy/ API Reference/ APIs/ Managing Applications/ Creating an Application Using a Template
Updated on 2025-08-18 GMT+08:00

Creating an Application Using a Template

Function

This API is used to create an application using a template. This API will not be maintained after September 30, 2024. You can use the CreateApp API instead.

Calling Method

For details, see Calling APIs.

URI

POST /v2/tasks/template-task

Request Parameters

Table 1 Request header parameters

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

Definition:

Type (or format) of the message body.

Constraints:

N/A.

Value range:

N/A.

Default value:

N/A.

X-Auth-Token

Yes

String

Definition:

User token. Obtain a token (the value of the X-Subject-Token response header) by calling the IAM API used forObtaining a User Token.

Constraints:

N/A.

Value range:

String. Max. 20,000 characters.

Default value:

N/A.

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition:

Project ID. For details, see Obtaining a Project ID.

Constraints:

N/A.

Value range:

32 characters, including letters and digits.

Default value:

N/A.

project_name

Yes

String

Definition:

Project name.

Constraints:

N/A.

Value range:

3 to 128 characters, including letters and digits.

Default value:

N/A.

template_id

Yes

String

Definition:

Deployment template ID.

Constraints:

N/A.

Value range:

32 characters, including letters and digits.

Default value:

N/A.

task_name

Yes

String

Definition:

Application name.

Constraints:

N/A.

Value range:

3 to 128 characters, including letters, digits, underscores (_), and hyphens (-).

Default value:

N/A.

slave_cluster_id

No

String

Definition:

Slave cluster ID. It is empty by default. When it is empty, the default agent pool is used.

Constraints:

N/A.

Value range:

32 characters, including letters and digits.

Default value:

N/A.

configs

No

Array of ConfigInfoDO objects

Deployment parameter type

Table 3 ConfigInfoDO

Parameter

Mandatory

Type

Description

name

No

String

Definition:

Custom deployment parameter name.

Constraints:

N/A.

Value range:

Max. 128 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).

Default value:

N/A.

type

No

String

Definition:

Deployment parameter type.

Constraints:

If name is set, type is mandatory.

Value range:

  • text: String.

  • host_group: Environment.

  • enum: Enumeration.

  • encrypt: Private parameter.

Default value:

The default value is text.

description

No

String

Definition:

Description.

Constraints:

N/A.

Value range:

Max. 1,024 characters.

Default value:

N/A.

value

No

String

Definition:

Deployment parameter value.

Constraints:

N/A.

Value range:

Max. 8,192 characters. The following special characters are not supported: {{, {%, and {#

Default value:

N/A.

task_id

No

String

Definition:

Deployment task ID, which is automatically generated when an application is created.

Constraints:

N/A.

Value range:

32 characters, including letters and digits.

Default value:

N/A.

static_status

No

Integer

Definition:

Static parameter or not.

Constraints:

N/A.

Value range:

  • 0: Parameters cannot be changed during deployment.

  • 1: Parameters can be changed during deployment and reported to the pipeline.

Default value:

The default value is 1.

limits

No

Array of ParamTypeLimits objects

When the parameter type is enum, the optional value must be entered.

Table 4 ParamTypeLimits

Parameter

Mandatory

Type

Description

name

No

String

Definition:

Enumerated value optional parameter.

Constraints:

N/A.

Value range:

1 to 128 characters, including letters, digits, hyphens (-), underscores (_), and periods (.).

Default value:

N/A.

Response Parameters

Status code: 200

Table 5 Response body parameters

Parameter

Type

Description

task_name

String

Definition:

Application name.

Value range:

3 to 128 characters, including letters, digits, underscores (_), and hyphens (-).

task_id

String

Definition:

Deployment task ID.

Value range:

32 characters, including letters and digits.

Status code: 400

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Error code

error_msg

String

Error description

Status code: 403

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Error code

error_msg

String

Error description

Example Requests

This API is used to create an application using the Deploy a Spring Boot Application template in a specified project.

https://{endpoint}/v2/tasks/template-task

{
  "project_id" : "6039d4480efc4dddb178abff98719913",
  "project_name" : "Deploy",
  "template_id" : "6efb0b24e2e9489eb0e53ee12904a19e",
  "task_name" : "Deploytest",
  "configs" : [ {
    "name" : "serviceName",
    "type" : "text",
    "description" : "Service name",
    "value" : "SpringBoot-Demo"
  }, {
    "name" : "releaseVersion",
    "type" : "text",
    "description" : "Version number",
    "value" : "1.1.1"
  }, {
    "name" : "jdk_path",
    "type" : "text",
    "description" : "",
    "value" : "/usr/local/jdk"
  }, {
    "name" : "package_url",
    "type" : "text",
    "description" : "",
    "value" : "/${serviceName}/${releaseVersion}/${serviceName}.jar"
  }, {
    "name" : "spring_path",
    "type" : "text",
    "description" : "",
    "value" : "/usr/local/${serviceName}.jar"
  }, {
    "name" : "download_path",
    "type" : "text",
    "description" : "",
    "value" : "/usr/local/"
  }, {
    "name" : "service_port",
    "type" : "text",
    "description" : "",
    "value" : "<%= service_port%>"
  }, {
    "name" : "host_group",
    "type" : "host_group",
    "description" : "",
    "value" : "<%= host_group%>"
  }, {
    "name" : "component_name",
    "type" : "text",
    "description" : "",
    "value" : "aom-${serviceName}"
  }, {
    "name" : "log_path",
    "type" : "text",
    "description" : "",
    "value" : "/usr/local/*.log"
  } ]
}

Example Responses

Status code: 200

OK: The request is successful.

{
  "task_name" : "Deploytest",
  "task_id" : "140ca97e701d4c4c93c59ffd5bdb32ec"
}

Status code: 400

Bad Request

{
  "error_code" : "Deploy.00015002",
  "error_msg" : "Invalid request parameter."
}

Status code: 403

Forbidden

{
  "error_code" : "Deploy.00011154",
  "error_msg" : "You do not have permissions to perform this operation."
}

SDK Sample Code

The SDK sample code is as follows.

Java

This API is used to create an application using the Deploy a Spring Boot Application template in a specified project.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.codeartsdeploy.v2.region.CodeArtsDeployRegion;
import com.huaweicloud.sdk.codeartsdeploy.v2.*;
import com.huaweicloud.sdk.codeartsdeploy.v2.model.*;

import java.util.List;
import java.util.ArrayList;

public class CreateDeployTaskByTemplateSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        CodeArtsDeployClient client = CodeArtsDeployClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsDeployRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateDeployTaskByTemplateRequest request = new CreateDeployTaskByTemplateRequest();
        TemplateTaskRequestBody body = new TemplateTaskRequestBody();
        List<ConfigInfoDO> listbodyConfigs = new ArrayList<>();
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("serviceName")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("Service name")
                .withValue("SpringBoot-Demo")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("releaseVersion")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("Version number")
                .withValue("1.1.1")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("jdk_path")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("")
                .withValue("/usr/local/jdk")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("package_url")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("")
                .withValue("/${serviceName}/${releaseVersion}/${serviceName}.jar")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("spring_path")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("")
                .withValue("/usr/local/${serviceName}.jar")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("download_path")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("")
                .withValue("/usr/local/")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("service_port")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("")
                .withValue("<%= service_port%>")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("host_group")
                .withType(ConfigInfoDO.TypeEnum.fromValue("host_group"))
                .withDescription("")
                .withValue("<%= host_group%>")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("component_name")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("")
                .withValue("aom-${serviceName}")
        );
        listbodyConfigs.add(
            new ConfigInfoDO()
                .withName("log_path")
                .withType(ConfigInfoDO.TypeEnum.fromValue("text"))
                .withDescription("")
                .withValue("/usr/local/*.log")
        );
        body.withConfigs(listbodyConfigs);
        body.withTaskName("Deploytest");
        body.withTemplateId("6efb0b24e2e9489eb0e53ee12904a19e");
        body.withProjectName("Deploy");
        body.withProjectId("6039d4480efc4dddb178abff98719913");
        request.withBody(body);
        try {
            CreateDeployTaskByTemplateResponse response = client.createDeployTaskByTemplate(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

This API is used to create an application using the Deploy a Spring Boot Application template in a specified project.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartsdeploy.v2.region.codeartsdeploy_region import CodeArtsDeployRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartsdeploy.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]

    credentials = BasicCredentials(ak, sk)

    client = CodeArtsDeployClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CodeArtsDeployRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = CreateDeployTaskByTemplateRequest()
        listConfigsbody = [
            ConfigInfoDO(
                name="serviceName",
                type="text",
                description="Service name",
                value="SpringBoot-Demo"
            ),
            ConfigInfoDO(
                name="releaseVersion",
                type="text",
                description="Version number",
                value="1.1.1"
            ),
            ConfigInfoDO(
                name="jdk_path",
                type="text",
                description="",
                value="/usr/local/jdk"
            ),
            ConfigInfoDO(
                name="package_url",
                type="text",
                description="",
                value="/${serviceName}/${releaseVersion}/${serviceName}.jar"
            ),
            ConfigInfoDO(
                name="spring_path",
                type="text",
                description="",
                value="/usr/local/${serviceName}.jar"
            ),
            ConfigInfoDO(
                name="download_path",
                type="text",
                description="",
                value="/usr/local/"
            ),
            ConfigInfoDO(
                name="service_port",
                type="text",
                description="",
                value="<%= service_port%>"
            ),
            ConfigInfoDO(
                name="host_group",
                type="host_group",
                description="",
                value="<%= host_group%>"
            ),
            ConfigInfoDO(
                name="component_name",
                type="text",
                description="",
                value="aom-${serviceName}"
            ),
            ConfigInfoDO(
                name="log_path",
                type="text",
                description="",
                value="/usr/local/*.log"
            )
        ]
        request.body = TemplateTaskRequestBody(
            configs=listConfigsbody,
            task_name="Deploytest",
            template_id="6efb0b24e2e9489eb0e53ee12904a19e",
            project_name="Deploy",
            project_id="6039d4480efc4dddb178abff98719913"
        )
        response = client.create_deploy_task_by_template(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

This API is used to create an application using the Deploy a Spring Boot Application template in a specified project.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartsdeploy "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsdeploy/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsdeploy/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsdeploy/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := codeartsdeploy.NewCodeArtsDeployClient(
        codeartsdeploy.CodeArtsDeployClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.CreateDeployTaskByTemplateRequest{}
	nameConfigs:= "serviceName"
	typeConfigs:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs:= "Service name"
	valueConfigs:= "SpringBoot-Demo"
	nameConfigs1:= "releaseVersion"
	typeConfigs1:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs1:= "Version number"
	valueConfigs1:= "1.1.1"
	nameConfigs2:= "jdk_path"
	typeConfigs2:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs2:= ""
	valueConfigs2:= "/usr/local/jdk"
	nameConfigs3:= "package_url"
	typeConfigs3:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs3:= ""
	valueConfigs3:= "/${serviceName}/${releaseVersion}/${serviceName}.jar"
	nameConfigs4:= "spring_path"
	typeConfigs4:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs4:= ""
	valueConfigs4:= "/usr/local/${serviceName}.jar"
	nameConfigs5:= "download_path"
	typeConfigs5:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs5:= ""
	valueConfigs5:= "/usr/local/"
	nameConfigs6:= "service_port"
	typeConfigs6:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs6:= ""
	valueConfigs6:= "<%= service_port%>"
	nameConfigs7:= "host_group"
	typeConfigs7:= model.GetConfigInfoDoTypeEnum().HOST_GROUP
	descriptionConfigs7:= ""
	valueConfigs7:= "<%= host_group%>"
	nameConfigs8:= "component_name"
	typeConfigs8:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs8:= ""
	valueConfigs8:= "aom-${serviceName}"
	nameConfigs9:= "log_path"
	typeConfigs9:= model.GetConfigInfoDoTypeEnum().TEXT
	descriptionConfigs9:= ""
	valueConfigs9:= "/usr/local/*.log"
	var listConfigsbody = []model.ConfigInfoDo{
        {
            Name: &nameConfigs,
            Type: &typeConfigs,
            Description: &descriptionConfigs,
            Value: &valueConfigs,
        },
        {
            Name: &nameConfigs1,
            Type: &typeConfigs1,
            Description: &descriptionConfigs1,
            Value: &valueConfigs1,
        },
        {
            Name: &nameConfigs2,
            Type: &typeConfigs2,
            Description: &descriptionConfigs2,
            Value: &valueConfigs2,
        },
        {
            Name: &nameConfigs3,
            Type: &typeConfigs3,
            Description: &descriptionConfigs3,
            Value: &valueConfigs3,
        },
        {
            Name: &nameConfigs4,
            Type: &typeConfigs4,
            Description: &descriptionConfigs4,
            Value: &valueConfigs4,
        },
        {
            Name: &nameConfigs5,
            Type: &typeConfigs5,
            Description: &descriptionConfigs5,
            Value: &valueConfigs5,
        },
        {
            Name: &nameConfigs6,
            Type: &typeConfigs6,
            Description: &descriptionConfigs6,
            Value: &valueConfigs6,
        },
        {
            Name: &nameConfigs7,
            Type: &typeConfigs7,
            Description: &descriptionConfigs7,
            Value: &valueConfigs7,
        },
        {
            Name: &nameConfigs8,
            Type: &typeConfigs8,
            Description: &descriptionConfigs8,
            Value: &valueConfigs8,
        },
        {
            Name: &nameConfigs9,
            Type: &typeConfigs9,
            Description: &descriptionConfigs9,
            Value: &valueConfigs9,
        },
    }
	request.Body = &model.TemplateTaskRequestBody{
		Configs: &listConfigsbody,
		TaskName: "Deploytest",
		TemplateId: "6efb0b24e2e9489eb0e53ee12904a19e",
		ProjectName: "Deploy",
		ProjectId: "6039d4480efc4dddb178abff98719913",
	}
	response, err := client.CreateDeployTaskByTemplate(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

More

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

OK: The request is successful.

400

Bad Request

403

Forbidden

Error Codes

See Error Codes.