创建模板
功能介绍
创建模板(CreateTemplate)
此API用于创建一个带有版本的模板
请求中必须包括template_uri或是template_body。前者为模板内容obs链接,后者为模板内容
模板管理名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板
模板创建时,会自动生成模板版本号为V1的模板版本
模板必须存在一个或多个模板版本,即不存在没有模板版本的模板
URI
POST /v1/{project_id}/templates
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 项目ID,可以从调用API处获取,也可以从控制台获取。 最小长度:3 最大长度:64 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
Client-Request-Id | 是 | String | 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
version_description | 否 | String | 模板版本的描述。可用于客户识别自己的模板版本 最小长度:0 最大长度:1024 |
template_body | 否 | String | HCL模板,描述了模板中使用的资源 template_body 和 template_uri 有且仅有一个存在 |
template_uri | 否 | String | HCL模板的obs链接,该模板描述了资源的目标状态 对应的文件应该是纯tf文件或zip压缩包 纯tf文件需要以.tf或者.tf.json结尾,并遵守hcl语法 压缩包目前只支持zip格式,文件需要以".zip"结尾。解压后的文件不得包含".tfvars"文件 template_body 和 template_uri 有且仅有一个存在 最小长度:0 最大长度:2048 |
template_name | 是 | String | 模板(Template)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 |
template_description | 否 | String | 模板的描述。可用于客户识别自己的模板 最小长度:0 最大长度:1024 |
响应参数
状态码:200
参数 | 参数类型 | 描述 |
|---|---|---|
template_id | String | 模板的唯一ID,由模板服务随机生成 最小长度:36 最大长度:36 |
version_id | String | 模板模板版本ID 最小长度:2 最大长度:11 |
状态码:400
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:401
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:403
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:409
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:429
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
状态码:500
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述 |
encoded_authorization_message | String | 包含有关未经授权请求的信息。 |
details | Array of Detail objects | 权限拒绝时服务返回的详细错误信息。 |
请求示例
通过template_body传入Terraform模板创建模板
POST https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates { "template_name" : "huaweicloud_vpc_template", "template_body" : "terraform {\n required_providers {\n huaweicloud = {\n source = \"huawei.com/provider/huaweicloud\"\n version = \"1.41.0\"\n }\n }\n}\n\nprovider \"huaweicloud\" {\n insecure = true\n cloud = \"{cloud_name}\"\n region = \"{region}\"\n endpoints = {\n iam = \"{iam_endpoint}\"\n }\n}\n\nresource \"huaweicloud_vpc\" \"vpc\" {\n cidr = \"172.16.0.0/16\"\n name = \"my_vpc\"\n}" }通过template_uri引用华为云OBS存储的模板文件创建模板
POST https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates { "template_name" : "huaweicloud_vpc_template_obs", "template_uri" : "https://{bucket_name}.{region}.myhuaweicloud.com/terraform-templates/vpc-base.tf" }
响应示例
状态码:200
创建模板成功
{
"template_id" : "69f8d5ea-eaa4-4a3b-a96d-bae9230e97c8",
"version_id" : "V1"
} 状态码
状态码 | 描述 |
|---|---|
200 | 创建模板成功 |
400 | 用户请求非法 |
401 | 用户身份认证失败 |
403 | 用户无权限调用此API |
409 | 创建冲突,同名的模板已经存在 |
429 | 请求数量过多 |
500 | 服务器内部错误 |

