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

获取资源栈模板

功能介绍

获取资源栈模板(GetStackTemplate)

此API用于获取资源栈最近一次部署终态使用的模板。

注:

当资源栈状态处于非终态(即以IN_PROGRESS结尾,详细见下方)状态时,资源栈处于转变阶段,此API获取资源栈上一次部署使用的模板。

只有当资源栈状态处于终态(即以COMPLETEFAILED结尾,详细见下方)时,此API获取当前最新一次部署使用的模板。CREATION_COMPLETE除外,此时资源栈没有模板,返回404,并提示模板不存在

非终态状态包括但不限于以下状态:

  • 正在部署(DEPLOYMENT_IN_PROGRESS)

  • 正在回滚(ROLLBACK_IN_PROGRESS)

  • 正在删除(DELETION_IN_PROGRESS)

终态状态包括但不限于以下状态:

  • 生成空资源栈完成(CREATION_COMPLETE)

  • 部署失败(DEPLOYMENT_FAILED)

  • 部署完成(DEPLOYMENT_COMPLETE)

  • 回滚失败(ROLLBACK_FAILED)

  • 回滚完成(ROLLBACK_COMPLETE)

  • 删除失败(DELETION_FAILED)

如果获取成功,则以临时重定向形式返回模板下载链接(OBS Pre Signed地址,有效期为5分钟),大多数的客户端会进行自动重定向并下载模板;

如果未进行自动重定向,请参考HTTP的重定向规则获取模板下载链接,手动下载模板。

URI

GET /v1/{project_id}/stacks/{stack_name}/templates

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,可以从调用API处获取,也可以从控制台获取。

项目ID获取方式

stack_name

String

资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。

表2 Query参数

参数

是否必选

参数类型

描述

stack_id

String

资源栈(stack)的唯一Id。

此Id由资源编排服务在生成资源栈的时候生成,为UUID。

由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。

对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。

资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400

access_control_source_ips

Array of strings

允许访问资源栈模板的source ip列表,source ip应是具有CIDR表示法且带有子网掩码的IPv4地址。

access_control_source_vpc_ids

Array of strings

允许访问资源栈模板的source vpc id列表, source vpc id应仅包含小写字母、数字或中划线。

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

Client-Request-Id

String

用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID

响应参数

状态码: 307

表4 响应Header参数

参数

参数类型

描述

Location

String

HTTP重定向指定头域,客户端可通过此头域重定向至新地址。其内容为模板下载链接,为OBS Pre Signed地址,有效期为5分钟

状态码: 400

表5 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表6 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 401

表7 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表8 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 403

表9 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表10 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 404

表11 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表12 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 429

表13 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表14 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 500

表15 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表16 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

请求示例

  • 获取资源栈模板

    GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/templates
  • 获取资源栈模板,并提供资源栈id以校验是否与当前资源栈匹配

    GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/templates?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
  • 获取资源栈模板,并提供access_control_source_ips以控制允许访问资源模板的ip

    GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/templates?access_control_source_ips=100.11.5.100/24&access_control_source_ips=100.22.5.100/24
  • 获取资源栈模板,并提供access_control_source_vpc_ids以控制允许访问资源模板的vpc id

    GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/templates?access_control_source_vpc_ids=d42a8768-ad3c-4bca-91t8-53870f3402a9&access_control_source_vpc_ids=d42a8768-ad3c-4bca-91t8-53870f3402a8

响应示例

状态码

状态码

描述

307

获取成功,临时重定向

400

用户请求非法

401

用户身份认证失败

403

用户无权限调用此API

404

资源栈或模板不存在

429

请求数量过多

500

服务器内部错误