华为云用户手册

  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 表3 请求Body参数 参数 是否必选 参数类型 描述 stack_set_id 否 String 资源栈集(stack_set)的唯一ID。 此ID由 资源编排 服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,在重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我以为的那个,而不是又其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 最小长度:36 最大长度:36 deployment_targets 是 deployment_targets object 部署目标信息。 template_body 否 String HCL模板,描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别。 template_body和template_uri 必须有且只有一个存在 注意: 资源栈集不支持敏感 数据加密 ,资源编排服务会直接明文使用、log、展示、存储对应的template_body 最小长度:0 最大长度:51200 template_uri 否 String HCL模板的OBS地址,该模板描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 对应的文件应该是纯tf文件或zip压缩包 纯tf文件需要以“.tf”或者“.tf.json”结尾,并遵守HCL语法,且文件的编码格式须为UTF-8 压缩包目前只支持zip格式,文件需要以".zip"结尾。解压后的文件不得包含".tfvars"文件。解压前最大支持1MB,解压后最大支持1MB。zip压缩包文件数量不能超过100个 template_body和template_uri 必须有且只有一个存在 注意: 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储template_uri对应的模板文件内容。 template_uri对应的模板文件如果为zip类型,则内部的文件或文件夹名称长度不得超过255个字节,最深路径长度不得超过2048字节,zip包大小不得超过1MB 最小长度:0 最大长度:2048 vars_uri 否 String HCL参数文件的OBS地址。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) vars_uri需要指向一个OBS的pre-signed URL地址,其他地址暂不支持 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400 vars_uri中的内容使用HCL的tfvars格式,用户可以将“.tfvars”中的内容保存到文件并上传到OBS中,并将OBS pre-signed URL传递给vars_uri 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储vars_uri对应的参数文件内容 最小长度:0 最大长度:2048 vars_body 否 String HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 vars_body使用HCL的tfvars格式,用户可以将“.tfvars”中的内容提交到vars_body中 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400 如果vars_body过大,可以使用vars_uri 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储对应的vars_body。 最小长度:0 最大长度:51200 var_overrides 否 var_overrides object 用户期望在资源栈实例中更新的参数内容,参数将覆盖到本次请求中指定的所有资源栈实例中,并根据更新后的参数部署资源栈实例。覆盖后的参数将永久被记录在资源栈实例中,并在之后的部署中继续使用被覆盖参数,直到下一次被更新覆盖。 用户只能覆盖在资源栈集中记录的参数集合vars,如果指定了vars中不存在的参数会报错400。如果用户想要增加可以覆盖的参数,需要先通过DeployStackSet API 更新资源栈集记录的参数集合vars。通过DeployStackSet API更新vars后,资源栈实例中已经被覆盖的参数不会被更新,仍然保留覆盖值。 参数覆盖只针对用户在资源栈集中通过vars指定的参数,不包括在模板中定义使用默认值的参数。如果用户期望对使用默认值的参数进行覆盖,则需要按上述要求先通过DeployStackSet API 更新资源栈集记录的vars,显式地向vars中增加相关参数定义。 用户每次通过DeployStackSet API 更新资源栈集vars时,如果缺少了任一部署目标的资源栈实例中所记录的被覆盖参数时(即当前被覆盖参数已不是更新后资源栈集参数vars的子集),会报错400 当前用户在更新参数覆盖时不能指定保留已有的参数覆盖,必须在更新的时候给予全部的覆盖信息。 参数覆盖后的资源栈实例应用的vars_body总长不超过51200。参数覆盖后的资源栈实例应用的vars_uri文件内容不超过1M。 例如:资源栈集中记录的vars_body内容为”key1=value1,key2=value2,....“,资源栈实例参数覆盖的vars_body为“key1=another_value1”,则要求应用参数覆盖后的vars_body“key1=another_value1,key2=value2,....”总长不超过51200。 例如:资源栈集中记录的vars_uri文件内容为”key1=value1,key2=value2,....“,资源栈实例参数覆盖的vars_body为“key1=another_value1”,则要求应用参数覆盖后的vars_uri文件内容“key1=another_value1,key2=value2,....”总长不超过1M。 如果var_overrides未给予,则不会更新覆盖资源栈实例中记录的参数。如果vars_uri或vars_body或use_stack_set_vars至少给予了一个,则会对参数覆盖进行替换式更新,即所给予的参数将被完全覆盖至指定资源栈实例中。 vars_body、vars_uri和use_stack_set_vars中声明的全部参数集合必须和资源栈集中记录的参数集合保持一致,如果声明了资源栈集中不存在的参数会报错400,如果没有声明已经在资源栈集中记录的参数会报错400,如果声名了同一个参数会报错400。 注: 期望覆盖指定参数值,需要在vars_uri或者vars_body中指定期望覆盖的参数名称及参数值。 期望将某个已覆盖参数回退至资源栈集中记录的参数值,需要在use_stack_set_vars中指定期望回退的参数名称。 期望将所有已覆盖参数回退至资源栈集中记录的参数值,需要在use_stack_set_vars中指定资源栈集中记录的全部参数名称。 期望使用当前资源栈实例中记录的参数值进行部署,则不需要指定var_overrides。 operation_preferences 否 operation_preferences object 资源栈集操作(stack_set_operation)的部署策略。该参数只在指定的单次操作中生效。 当用户不指定该参数时,默认的操作部署策略为区域(region)内资源栈实例串行部署,即每次只执行一个资源栈实例,区域(region)间随机且串行部署,执行完一个region下的全部资源栈实例后,才会选择另一个region部署,容错次数默认为0。 该参数可以在生成资源栈集操作的四个API中指定: 创建资源栈实例(CreateStackInstance),部署资源栈集(DeployStackSet),更新资源栈实例(UpdateStackInstance),删除资源栈实例(DeleteStackInstance) 表4 deployment_targets 参数 是否必选 参数类型 描述 regions 是 Array of strings 用户指定资源栈集操作所涉及的区域。 在DeployStackSet API中,根据用户输入regions和domain_ids列表,以笛卡尔积的形式选择资源栈集中存在的资源栈实例进行部署。如果指定了没有被资源栈集所管理的region,则会报错。 domain_ids 否 Array of strings 权限模型是SELF_MANAGED时,用户指定包含本次操作涉及到的租户ID内容。 在DeployStackSet API中,如果指定该参数,根据用户输入的domain_ids列表和regions列表,以笛卡尔积的形式选择资源栈集中存在的资源栈实例进行部署。如果指定了没有被资源栈集所管理的domain_id,则会报错。 domain_ids和domain_ids_uri 有且仅有一个存在。 最小长度:1 最大长度:64 domain_ids_uri 否 String 权限模型是SELF_MANAGED时,用户指定包含本次操作涉及到的租户ID内容文件的OBS地址。 内容格式要求每个租户ID以逗号(,)分割,支持换行。当前仅支持csv文件,且文件的编码格式须为UTF-8。文件内容大小不超过100KB。 上传的csv文件应尽量避免Excel操作,以防出现读取内容不一致的问题。推荐使用记事本打开确认内容是否符合预期。 在DeployStackSet API中,如果指定该参数,根据用户输入的domain_ids_uri文件内容和regions列表,以笛卡尔积的形式选择资源栈集中存在的资源栈实例进行部署。如果内容包含了没有被资源栈集所管理的domain_id,则会报错。 domain_ids和domain_ids_uri有且仅有一个存在。 最小长度:0 最大长度:2048 表5 var_overrides 参数 是否必选 参数类型 描述 vars_uri 否 String HCL参数文件的OBS地址。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) vars_uri需要指向一个OBS的pre-signed URL地址,其他地址暂不支持 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400 vars_uri中的内容使用HCL的tfvars格式,用户可以将“.tfvars”中的内容保存到文件并上传到OBS中,并将OBS pre-signed URL传递给vars_uri 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储vars_uri对应的参数文件内容 最小长度:0 最大长度:2048 vars_body 否 String HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 vars_body使用HCL的tfvars格式,用户可以将“.tfvars”中的内容提交到vars_body中 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400 如果vars_body过大,可以使用vars_uri 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储对应的vars_body。 最小长度:0 最大长度:51200 use_stack_set_vars 否 Array of strings 用户期望使用资源栈集中记录的参数值进行部署的参数名称列表。 用户只能选择已经在资源栈集中被记录的参数,如果指定了未被记录的参数会报错400。 如果use_stack_set_vars中包含资源栈实例中已经被覆盖的参数名称,则会将该参数回退至资源栈集中记录的参数值。 表6 operation_preferences 参数 是否必选 参数类型 描述 region_concurrency_type 否 String 部署资源栈实例时区域(region)的执行策略,分为两种,SEQUENTIAL和PARALLEL,区分大小写,默认值为SEQUENTIAL 详细介绍: SEQUENTIAL:顺序执行,执行完一个region下的全部资源栈实例后再去执行另一个region。默认顺序执行。 PARALLEL:并发执行,并发部署所有指定区域的资源栈实例。 缺省值:SEQUENTIAL 枚举值: SEQUENTIAL PARALLEL region_order 否 Array of strings 区域(region)部署顺序。只有当用户指定region_concurrency_type为SEQUENTIAL时才会允许指定该参数。用户指定部署region的顺序,不允许出现资源栈集管理之外的region。 如果不指定,实际部署region顺序随机。部署顺序仅在当次部署时生效,应该包含且仅包含本次部署的所有region。 failure_tolerance_count 否 Long 容错次数。用户定义在每个区域(region)下,允许部署失败的资源栈实例数量。该参数取值默认为0,限定0和正整数。 如果定义region顺序执行(region_concurrency_type值为SEQUENTIAL),在某个region超过容错次数时,资源栈集会取消所有状态仍处于WAIT_IN_PROGRESS状态的实例。被取消的实例状态最终变为CANCEL_COMPLETE; 如果是region并行执行(region_concurrency_type值为PARALLEL),在某个region超过容错次数时,资源栈集只会取消该region下所有处于WAIT_IN_PROGRESS状态的实例。被取消的实例状态最终变为CANCEL_COMPLETE。 对处于OPERATION_IN_PROGRESS,或已经部署完成,即处于OPERATION_COMPLETE或者OPERATION_FAILED状态的资源栈实例,不受影响,状态不变。 failure_tolerance_count 和 failure_tolerance_percentage 仅能有一个存在。 最小值:0 最大值:100 failure_tolerance_percentage 否 Long 容错百分比。定义每个区域(region)下,允许部署失败的资源栈实例数占该region下所有资源栈实例数的百分比。该参数取值默认为0,限定0和正整数。 通过容错百分比*资源栈实例数,并向下取整,得到实际容错次数。 当concurrency_mode指定为STRICT_FAILURE_TOLERANCE时,实际最大并发账户数最多比实际容错次数多1。 failure_tolerance_count 和 failure_tolerance_percentage 仅能有一个存在。 最小值:0 最大值:100 max_concurrent_count 否 Long 每个区域(region)下可同时部署资源栈实例的最大账户数。该参数取值默认为1,限定为正整数。 最大并发账户数最多比容错次数多1。如果用户指定failure_tolerance_percentage,最大并发账户数最多比 failure_tolerance_percentage * 资源栈实例数多1。保证部署在所需的容错级别停止。 max_concurrent_count 和 max_concurrent_percentage 仅能有一个存在。 最小值:1 最大值:5 max_concurrent_percentage 否 Long 最大并发账户百分比,每个区域(region)中可同时部署的资源栈实例的最大账户百分比。该参数取值默认为1,限定正整数。 RFS 根据百分比 *(每个region下资源栈实例数)得到的值,再向下取整,得到实际最大并发账户数。如果实际最大并发账户数向下取整值为0时,则默认选择最大并发账户数为1。 通过百分比计算得到的实际最大并发账户数最多比容错次数多1。如果用户指定failure_tolerance_percentage,实际最大并发账户数最多比 failure_tolerance_percentage * 资源栈实例数多1。保证部署在所需的容错级别停止。 max_concurrent_count 和 max_concurrent_percentage 仅能有一个存在。 最小值:1 最大值:100 failure_tolerance_mode 否 String 资源栈集操作部署的失败容忍模式,分为两种,STRICT_FAILURE_TOLERANCE和SOFT_FAILURE_TOLERANCE,区分大小写,默认值为STRICT_FAILURE_TOLERANCE。 详细介绍: STRICT_FAILURE_TOLERANCE:此选项会动态降低并发级别,以确保同region下部署失败的账户数量永远不超过 failure_tolerance_count + 1。当用户指定failure_tolerance_percentage时,确保同region下部署失败的账户数量不超过 failure_tolerance_percentage * 资源栈实例数 + 1。 初始实际最大并发数为max_concurrent_count,如果用户指定的是max_concurrent_percentage,则初始实际最大并发数为 max_concurrent_percentage * 资源栈实例数,随后,实际最大并发数会根据失败次数增加而减少。 SOFT_FAILURE_TOLERANCE:此选项将failure_tolerance_count与实际并发数分离开。该参数允许资源栈集操作始终以指定的 max_concurrent_count 或 max_concurrent_percentage 操作资源栈实例。 此时不保证资源栈实例失败总数小于 failure_tolerance_count + 1,如果用户指定的是failure_tolerance_percentage的值,则部署失败次数不会超过 failure_tolerance_percentage * 资源栈实例数 + 1。 缺省值:STRICT_FAILURE_TOLERANCE 枚举值: STRICT_FAILURE_TOLERANCE SOFT_FAILURE_TOLERANCE
  • 功能介绍 部署资源栈集(DeployStackSet) 此API用于部署一个已有的资源栈集,并返回资源栈集操作ID(stack_set_operation_id) 用户可以使用此API更新资源栈集的模板、参数并进行部署。 此API会直接触发资源栈实例部署。用户既可以部署资源栈集下所有的资源栈实例,也可以部署指定资源栈实例。 此API为全量API,即用户每次部署都需要给予所想要使用的template、vars的全量 当触发的部署失败时,资源栈集不会自动回滚模板和参数,但部署失败的资源栈会根据资源栈的回滚配置决定是否进行回滚,已经部署成功的资源栈不会触发回滚。 用户可以根据资源栈集操作ID(stack_set_operation_id),通过ShowStackSetOperationMetadata API获取资源栈集操作状态
  • 请求示例 获取指定执行计划的详细内容(即执行计划项目) GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan 获取指定执行计划的详细内容(即执行计划项目),并提供资源栈id和执行计划id以校验是否与当前资源栈和执行计划匹配 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2&execution_plan_id=fb5e781e-a27d-46e2-9954-242753857a9f
  • 响应示例 状态码: 200 获取成功 { "execution_plan_items" : [ { "resource_type" : "huaweicloud_iec_vpc_subnet", "resource_name" : "subnet", "action" : "ADD", "attributes" : [ { "name" : "cidr", "target_value" : "172.16.0.0/16" }, { "name" : "dhcp_enable", "target_value" : "true" }, { "name" : "dns_list", "target_value" : "(will be generated after apply)" }, { "name" : "gateway_ip", "target_value" : "192.168.128.1" }, { "name" : "id", "target_value" : "(will be generated after apply)" }, { "name" : "name", "target_value" : "subnet_demo" }, { "name" : "region" }, { "name" : "site_id", "target_value" : "mock_site_id" }, { "name" : "site_info", "target_value" : "(will be generated after apply)" }, { "name" : "status", "target_value" : "(will be generated after apply)" }, { "name" : "timeouts" }, { "name" : "vpc_id", "target_value" : "mock_vpc_id" } ], "mode" : "RESOURCE", "provider_name" : "huawei.com/provider/huaweicloud" }, { "resource_type" : "huaweicloud_vpc", "resource_name" : "vpc", "action" : "ADD", "attributes" : [ { "name" : "cidr", "target_value" : "172.16.0.0/16" }, { "name" : "description" }, { "name" : "enterprise_project_id", "target_value" : "(will be generated after apply)" }, { "name" : "id", "target_value" : "(will be generated after apply)" }, { "name" : "name", "target_value" : "test_name" }, { "name" : "region", "target_value" : "(will be generated after apply)" }, { "name" : "routes", "target_value" : "(will be generated after apply)" }, { "name" : "secondary_cidr" }, { "name" : "status", "target_value" : "(will be generated after apply)" }, { "name" : "tags" }, { "name" : "timeouts" } ], "mode" : "RESOURCE", "provider_name" : "huawei.com/provider/huaweicloud" } ] }
  • URI GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 execution_plan_name 是 String 执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36 execution_plan_id 否 String 执行计划(execution_plan)的唯一Id。 此Id由资源编排服务在生成执行计划的时候生成,为UUID。 由于执行计划名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的执行计划,删除,再重新创建一个同名执行计划。 对于团队并行开发,用户可能希望确保,当前我操作的执行计划就是我认为的那个,而不是其他队友删除后创建的同名执行计划。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同,更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致,则返回400 最小长度:36 最大长度:36
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 execution_plan_items Array of ExecutionPlanItem objects 执行计划项目的列表 表5 ExecutionPlanItem 参数 参数类型 描述 resource_type String 资源的类型 以HCL格式的模板为例,resource_type 为 huaweicloud_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } 以json格式的模板为例,resource_type 为 huaweicloud_vpc { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } resource_name String 资源的名称,默认为资源的逻辑名称 以HCL格式的模板为例,resource_name 为 my_hello_world_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } 以json格式的模板为例,resource_name 为 my_hello_world_vpc { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } index String 资源的索引,如果用户在模板中使用了count或for_each则会返回index。如果index出现,则resource_name + index可以作为该资源的一种标识 如果用户在模板中使用count,则index为从0开始的数字 以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]和huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源 resource "huaweicloud_vpc" "my_hello_world_vpc" { count = 2 name = "test_vpc" } 以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]和huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源 { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc", "count": 2 } } } } 如果用户在模板中使用for_each,则index为用户自定义的字符串 以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]和huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源 resource "huaweicloud_vpc" "my_hello_world_vpc" { for_each = { "vpc1" = "test_vpc" "vpc2" = "test_vpc" } name = each.value } 以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]和huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源 { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "for_each": { "vpc1": "test_vpc", "vpc2": "test_vpc" } "name": "${each.value}" } } } } action String 资源变更的类型 ADD - 新增资源 ADD_THEN_DELETE - 由不可更新的资源返回,先创建新资源,再删除旧资源 DELETE - 删除资源 DELETE_THEN_ADD - 由不可更新的资源返回,先删除旧资源,再创建新资源 UPDATE - 更新资源 NO_OPERATION - 仅变更资源的依赖关系,但是对资源本身并无修改的操作 枚举值: ADD ADD_THEN_DELETE DELETE DELETE_THEN_ADD UPDATE NO_OPERATION action_reason String 触发该项目变更的原因,例如用户更新模板;远端删除资源等等 provider_name String 该项目所属的provider名称。 mode String 资源模式 DATA - 指可以在模板解析期间运行和获取服务端数据的资源类型,不会操作基础设施组件 RESOURCE - 指通过模板管理的由服务定义的基础设施组件抽象,可以是物理资源也可以是逻辑资源 枚举值: DATA RESOURCE drifted Boolean 当前资源的变更是否由偏差导致。 偏差,也叫漂移。指的是资源被资源编排服务创建以后,又经历过非资源编排服务触发的修改,如手动修改、调用SDK修改等,使得资源的配置与本服务所记录的资源的配置不一致。这种不一致便称为偏差。 当资源产生偏差以后: 如果用户试图创建执行计划,则会提示用户产生偏差 如果用户直接部署,则偏差有可能被覆盖,资源编排服务只保证资源和模板最终一致。 资源的偏差有两种类型: 资源定位属性被修改:如果是定位属性被修改,常见于删除后重建,此时资源已经不属于同一个资源。资源编排服务会认为此资源已经被删除,会尝试创建一个新的资源。 资源普通属性被修改:如果是普通属性被修改,则资源编排服务依然可以找到资源,但是下次部署会尝试修复偏差,即将资源保持和模板最终一致。 注:资源编排服务团队极力推荐,如果资源是通过本服务创建的,请一直使用本服务进行维护和更新以确保资源和模板保持一致。建议非紧急事件以外的情况不要手动调整。 imported Boolean 当前资源的变更是否是导入的。 resource_id String 资源的物理id,是唯一id,由为该资源提供服务的provider、云服务或其他服务提供方在资源部署的时候生成 attributes Array of ExecutionPlanDiffAttribute objects 执行计划项目中变更的属性,当无属性变更时为空列表。 表6 ExecutionPlanDiffAttribute 参数 参数类型 描述 name String 当前资源将要被修改的参数的名字。 previous_value String 当前资源被修改的参数的原始值。 如果是资源创建的场景,则previous_value为空 如果远端资源产生了偏差,则同一个资源会返回两个ExecutionPlanItem,其中一个的drifted为true,另一个的drifted为false drifted为true的previous_value为资源栈中所维持的资源属性和状态 drifted为false的previous_value为provider请求远端资源后,远端资源所返回的资源属性和状态 如果远端资源未产生偏差,则只会返回一个drifted为false的ExecutionPlanItem drifted为false的previous_value为资源栈中所维持的资源属性和状态 target_value String 当前资源被修改的参数的目的值。 如果是资源删除的场景,则target_value为空 如果远端资源产生了偏差,则同一个资源会返回两个ExecutionPlanItem,其中一个的drifted为true,另一个的drifted为false drifted为true的target_value为provider请求远端资源后,远端资源所返回的资源属性和状态 drifted为false的target_value为基于用户模板更新的资源属性和状态 如果远端资源未产生偏差,则只会返回一个drifted为false的ExecutionPlanItem drifted为false的target_value为基于用户模板更新的资源属性和状态 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 请求示例 获取当前模板的元数据信息 GET https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates/my_template/metadata 获取当前模板的元数据信息,并提供模板id以校验是否与当前模板匹配 GET https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates/my_template/metadata?template_id=1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3
  • 响应示例 状态码: 200 获取模板元数据成功 { "template_id" : "69f8d5ea-eaa4-4a3b-a96d-bae9230e97c8", "template_name" : "my_first_template", "template_description" : "模板描述", "create_time" : "2023-05-09T08:00:00Z", "update_time" : "2023-05-09T09:00:00Z" }
  • 功能介绍 获取模板元数据(ShowTemplateMetadata) 此API用于获取当前模板的元数据信息 具体信息见ShowTemplateMetadataResponseBody,如果想查看模板下全部模板版本,请调用ListTemplateVersions。 template_id是模板的唯一Id。此Id由资源编排服务在生成模板的时候生成,为UUID。由于模板名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的模板,删除,再重新创建一个同名模板。对于团队并行开发,用户可能希望确保,当前我操作的模板就是我认为的那个,而不是其他队友删除后创建的同名模板。因此,使用ID就可以做到强匹配。资源编排服务保证每次创建的模板所对应的ID都不相同,更新不会影响ID。如果给予的template_id和当前模板管理的ID不一致,则返回400
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 template_id String 模板的唯一ID,由模板服务随机生成 最小长度:36 最大长度:36 template_name String 用户希望创建的模板名称 最小长度:1 最大长度:128 template_description String 模板的描述。可用于客户识别自己的模板 最小长度:0 最大长度:1024 create_time String 模板的生成时间,格式遵循RFC3339,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z update_time String 模板的更新时间,格式遵循RFC3339,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 429 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI GET /v1/{project_id}/templates/{template_name}/metadata 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 template_name 是 String 用户希望创建的模板名称 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 template_id 否 String 模板的ID。当template_id存在时,模板服务会检查template_id是否和template_name匹配,不匹配会返回400 最小长度:36 最大长度:36
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stack_id String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36 stack_name String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 description String 资源栈的描述。可用于客户识别自己的资源栈。 最小长度:0 最大长度:1024 vars_structure Array of VarsStructure objects HCL参数结构。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 var_structure可以允许客户提交最简单的字符串类型的参数 资源编排服务支持vars_structure,vars_body和vars_uri,如果以上三种方式中声名了同一个变量,将报错400 vars_structure中的值只支持简单的字符串类型,如果需要使用其他类型,需要用户自己在HCL引用时转换, 或者用户可以使用vars_uri、vars_body,vars_uri和vars_body中支持HCL支持的各种类型以及复杂结构 如果vars_structure过大,可以使用vars_uri 注意:vars_structure中默认不应该含有任何敏感信息,资源编排服务会直接明文使用、log、展示、存储对应的vars。如为敏感信息,建议设置encryption字段开启加密 数组长度:0 - 100 vars_body String HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 vars_body使用HCL的tfvars格式,用户可以将“.tfvars”中的内容提交到vars_body中。 资源编排服务支持vars_structure,vars_body和vars_uri,如果以上三种方式中声名了同一个变量,将报错400 如果vars_body过大,可以使用vars_uri 如果vars中都是简单的字符串格式,可以使用var_structure 注意:vars_body中不应该含有任何敏感信息,资源编排服务会直接明文使用、log、展示、存储对应的vars。如为敏感信息,建议通过vars_structure并设置encryption字段传递 最小长度:0 最大长度:51200 enable_deletion_protection Boolean 删除保护的标识位,如果不传默认为false,即默认不开启资源栈删除保护(删除保护开启后资源栈不允许被删除) 在UpdateStack API中,如果该参数未在RequestBody中给予,则不会对资源栈的删除保护属性进行更新 enable_auto_rollback Boolean 自动回滚的标识位,如果不传默认为false,即默认不开启资源栈自动回滚(自动回滚开启后,如果部署失败,则会自动回滚,并返回上一个稳定状态) 在UpdateStack API中,如果该参数未在RequestBody中给予,则不会对资源栈的自动回滚属性进行更新 该属性与使用模板导入资源功能互斥,如果堆栈的自动回滚设置为true,则不允许部署包含导入资源的模板 status String 资源栈的状态 * CREATION_COMPLETE - 生成空资源栈完成,并没有任何部署 * DEPLOYMENT_IN_PROGRESS - 正在部署,请等待 * DEPLOYMENT_FAILED - 部署失败。请从status_message获取错误信息汇总,或者调用ListStackEvents获得事件详情 * DEPLOYMENT_COMPLETE - 部署完成 * ROLLBACK_IN_PROGRESS - 部署失败,正在回滚,请等待 * ROLLBACK_FAILED - 回滚失败。请从status_message获取错误信息汇总,或者调用ListStackEvents获得事件详情 * ROLLBACK_COMPLETE - 回滚完成 * DELETION_IN_PROGRESS - 正在删除,请等待 * DELETION_FAILED - 删除失败。请从status_message获取错误信息汇总,或者调用ListStackEvents获得事件详情 枚举值: CREATION_COMPLETE DEPLOYMENT_IN_PROGRESS DEPLOYMENT_FAILED DEPLOYMENT_COMPLETE ROLLBACK_IN_PROGRESS ROLLBACK_FAILED ROLLBACK_COMPLETE DELETION_IN_PROGRESS DELETION_FAILED agencies Array of Agency objects 委托授权的信息。 RFS仅在创建资源栈(触发部署)、创建执行计划、部署资源栈、删除资源栈等涉及资源操作的请求中使用委托,且该委托仅作用于与之绑定的Provider对资源的操作中。如果委托中提供的权限不足,有可能导致相关资源操作失败。 创建委托及授权方式 数组长度:0 - 10 status_message String 当资源栈的状态为任意失败状态(即以 FAILED 结尾时),将会展示简要的错误信息总结以供debug vars_uri_content String vars_uri对应的文件内容 create_time String 资源栈的生成时间 格式遵循RFC3339,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z update_time String 资源栈的更新时间(更新场景包括元数据更新场景和部署场景) 格式遵循RFC3339,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z 表5 VarsStructure 参数 参数类型 描述 var_key String 参数的名字 最小长度:1 最大长度:32 var_value String 参数的值。 注意,参数需要以字符串形式存在,如果是数字,也需要以字符串形式存在,如'10'。 如果需要支持不同类型,或者复杂结构,请使用vars_uri或vars_body 最小长度:0 最大长度:2048 encryption EncryptionStructure object 如果用户传递的var_value是已经加密过的,可以通过声名此项以要求资源编排服务在使用前进行解密,目前暂时只支持KMS加解密 表6 EncryptionStructure 参数 参数类型 描述 kms KmsStructure object 如果用户给予的var_value是经过KMS加密的,可以通过传递相关加密信息,资源编排服务在使用的时候会帮助用户进行KMS解密 更多关于KMS加密以及KMS加密的样例代码请见:KMS加密使用场景介绍 注意: 请确保用户给予资源编排服务的委托中包含对指定密钥ID的操作权限 KMS每个月有免费试用的额度,如果超过,则KMS需要收费,此费用不是资源编排服务收取,具体标准见:https://www.huaweicloud.com/pricing.html?tab=detail#/dew KMS加密只代表资源编排服务在存储和传输的时候传递的是密文,但是在stack-events中依然是明文,如果希望在log中以密文形式对待,请在模板中声明sensitive,更多关于sensitive的介绍见:https://learn.hashicorp.com/tutorials/terraform/sensitive-variables 表7 KmsStructure 参数 参数类型 描述 id String 解密时,资源编排服务应该使用的KMS密钥的ID,通常是加密时所使用的密钥ID 最小长度:36 最大长度:36 cipher_text String 数据加密密钥所对应的密文 最小长度:2 最大长度:2048 表8 Agency 参数 参数类型 描述 provider_name String 用户使用的provider的名字。如果用户给予的provider_name含有重复的值,则返回400 最小长度:1 最大长度:128 agency_name String 对应provider所使用的 IAM 委托名称,资源编排服务会使用此委托的权限去访问、创建对应provider的资源。agency_name和agency_urn必须有且只有一个存在 最小长度:1 最大长度:64 agency_urn String 委托URN 当用户定义Agency时,agency_name和agency_urn 必须有且只有一个存在。 推荐用户在使用信任委托时给予agency_urn,agency_name只支持接收普通委托名称,如果给予了信任委托名称,则会在部署模板时失败。 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表13 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表14 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 响应示例 状态码: 200 获取成功 { "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_name" : "my_hello_world_stack", "description" : "my hello world stack", "enable_deletion_protection" : false, "enable_auto_rollback" : false, "status" : "DEPLOYMENT_COMPLETE", "agencies" : [ { "agency_name" : "rf_admin_trust", "provider_name" : "huaweicloud" } ], "create_time" : "2023-03-16T03:28:20Z", "update_time" : "2023-05-24T08:56:10Z" }
  • 请求示例 获取资源栈元数据 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/metadata 获取资源栈元数据,并提供资源栈id以校验是否与当前资源栈匹配 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/metadata?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
  • URI GET /v1/{project_id}/stacks/{stack_name}/metadata 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36
  • 功能介绍 获取资源栈元数据(GetStackMetadata) 此API用于获取指定资源栈的元数据,包括资源栈ID、资源栈名称、资源栈描述、创建时间、更新时间、资源栈状态、委托授权等信息。 具体信息见GetStackMetadataResponseBody。 注: 当资源栈状态处于非终态(即以IN_PROGRESS结尾,详细见下方)状态时,资源栈的元数据信息处于转变阶段,可能为部署前的状态,也可能为部署后的状态。 只有当资源栈状态处于终态(即以COMPLETE或FAILED结尾,详细见下方)时,资源栈的元数据信息才是部署后的状态 非终态状态包括但不限于以下状态: 正在部署(DEPLOYMENT_IN_PROGRESS) 正在回滚(ROLLBACK_IN_PROGRESS) 正在删除(DELETION_IN_PROGRESS) 终态状态包括但不限于以下状态: 生成空资源栈完成(CREATION_COMPLETE) 部署失败(DEPLOYMENT_FAILED) 部署完成(DEPLOYMENT_COMPLETE) 回滚失败(ROLLBACK_FAILED) 回滚完成(ROLLBACK_COMPLETE) 删除失败(DELETION_FAILED)
  • 响应示例 状态码: 200 询价成功 { "currency" : "CNY", "items" : [ { "resource_type" : "huaweicloud_vpc", "resource_name" : "vpc", "resource_price" : [ { "charge_mode" : "FREE", "discount" : 0, "original_price" : 0, "sale_price" : 0 } ], "supported" : true } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 currency String 币种,枚举值 CNY - 元,中国站返回的币种 USD - 美元,国际站返回的币种 枚举值: CNY USD items Array of ItemsResponse objects 执行计划中所有资源的询价结果 表5 ItemsResponse 参数 参数类型 描述 resource_type String 资源的类型 以HCL格式的模板为例,resource_type 为 huaweicloud_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } 以json格式的模板为例,resource_type 为 huaweicloud_vpc { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } resource_name String 资源的名称,默认为资源的逻辑名称 以HCL格式的模板为例,resource_name 为 my_hello_world_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } 以json格式的模板为例,resource_name 为 my_hello_world_vpc { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } index String 资源的索引,如果用户在模板中使用了count或for_each则会返回index。如果index出现,则resource_name + index可以作为该资源的一种标识 如果用户在模板中使用count,则index为从0开始的数字 以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]和huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源 resource "huaweicloud_vpc" "my_hello_world_vpc" { count = 2 name = "test_vpc" } 以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]和huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源 { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc", "count": 2 } } } } 如果用户在模板中使用for_each,则index为用户自定义的字符串 以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]和huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源 resource "huaweicloud_vpc" "my_hello_world_vpc" { for_each = { "vpc1" = "test_vpc" "vpc2" = "test_vpc" } name = each.value } 以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]和huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源 { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "for_each": { "vpc1": "test_vpc", "vpc2": "test_vpc" } "name": "${each.value}" } } } } supported Boolean 该资源或该资源当前所给予的参数是否支持进行询价 unsupported_message String 该资源不支持询价的具体原因 resource_price Array of ResourcePriceResponse objects 该资源的询价信息 如果该资源支持包周期计费或按需计费,或者该资源为免费资源,则返回该字段;如果该资源不支持询价,则不返回该字段。 表6 ResourcePriceResponse 参数 参数类型 描述 charge_mode String 计费模式 PRE_PAID - 包周期计费 POST_PAID - 按需计费 FREE - 免费 枚举值: PRE_PAID POST_PAID FREE sale_price Double 该资源最终优惠后的金额(只考虑官网折扣、商务折扣以及伙伴折扣,不包含促销折扣及优惠券),保留小数点后2位,向上取整,默认单位是元。 discount Double 该资源的总优惠额,保留小数点后2位,向上取整,默认单位是元。 original_price Double 该资源的原价,保留小数点后2位,向上取整,默认单位是元。 period_type String 计费单位 如果该资源支持包周期计费或按需计费,则会返回该字段;如果该资源为免费资源,则不返回该字段。 HOUR - 小时,按需计费的单位 DAY - 天,按需计费的单位 MONTH - 月,包周期计费的单位 YEAR - 年,包周期计费的单位 BYTE - 字节,按需计费的单位 MB - 百万字节,包周期计费和按需计费的单位 GB - 千兆字节,包周期计费和按需计费的单位 枚举值: HOUR DAY MONTH YEAR BYTE MB GB period_count Integer 该资源的计费数量,需要和period_type搭配使用 如果该资源支持包周期计费或按需计费,则会返回该字段;如果该资源为免费资源,则不返回该字段。 对于按需计费资源,此值默认返回1,代表在1个计费单位下,该资源的价格 对于包周期计费资源,此值与模板中该资源的period字段保持一致 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 请求示例 预估执行计划价格,该执行计划中包含了一个新创建的vpc资源 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/prices 预估执行计划价格,该执行计划中包含了一个新创建的vpc资源,并提供资源栈id和执行计划id以校验是否与当前资源栈和执行计划匹配 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/prices?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2&execution_plan_id=fb5e781e-a27d-46e2-9954-242753857a9f
  • 功能介绍 预估执行计划价格(EstimateExecutionPlanPrice) 此API可以基于一份已有的执行计划中增量的资源进行询价,当前支持询价的计费模式有包周期计费、按需计费、免费,暂不支持其他形式的计费模式,例如竞价计费模式等。 注: 由于某些资源的属性值含有默认值,且该属性和询价参数相关。如果用户的模板中描述的资源没有声明这些属性,则询价结果可能存在偏差。 询价结果仅为预估结果,具体请以实际为准。 如果用户在模板中使用了depends_on参数,如A资源询价必要字段依赖于B资源的创建,则A资源不支持询价。 暂不支持传入data sources的flavor.id的场景的询价。 暂不支持镜像询价。 如果A资源的询价必要字段设置了sensitive = true,则A资源不支持询价。 模板中询价的资源的个数是有限制的。当前一个模板中最多支持12个包周期计费资源和24个按需计费资源。 支持询价的资源列表和询价必要参数 huaweicloud_cce_cluster: 支持的计费模式:包周期、按需 huaweicloud_css_cluster: 支持的计费模式:按需 huaweicloud_evs_volume: 支持的计费模式:包周期、按需 询价必要参数:size(磁盘规格) huaweicloud_compute_instance: 支持的计费模式:包周期、按需 询价必要参数:flavor_id(规格ID)、flavor_name(规格名称,flavor_id和flavor_name至少给出一个)、system_disk_size(系统磁盘大小) huaweicloud_vpc_bandwidth: 支持的计费模式:按需 询价必要参数:charge_mode仅支持bandwidth huaweicloud_vpc_eip: 支持的计费模式:包周期、按需 询价必要参数:bandwidth.size(带宽大小) huaweicloud_gaussdb_redis_instance: 支持的计费模式:包周期、按需 huaweicloud_nat_gateway: 支持的计费模式:按需 huaweicloud_rds_instance: 支持的计费模式:包周期、按需 支持的数据库类型:MySQL、PostgreSQL、Microsoft SQL Server huaweicloud_sfs_turbo: 支持的计费模式:按需 询价必要参数:share_type(文件系统类型) huaweicloud_dms_kafka_instance: 支持的计费模式:按需 询价必要参数:flavor_id(规格ID)、product_id(产品ID。flavor_id和product_id至少给出一个。)、storage_space(存储容量) huaweicloud_dcs_instance: 支持的计费模式:包周期、按需 huaweicloud_gaussdb_mysql_instance: 支持的计费模式:包周期、按需 询价必要参数:proxy_node_number(代理节点数量)、volume_size(挂载卷的存储空间) huaweicloud_vpc: 支持的计费模式:免费 huaweicloud_drs_job: 支持的计费模式:按需 huaweicloud_apig_instance: 支持的计费模式:按需
  • URI GET /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name}/prices 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 execution_plan_name 是 String 执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36 execution_plan_id 否 String 执行计划(execution_plan)的唯一Id。 此Id由资源编排服务在生成执行计划的时候生成,为UUID。 由于执行计划名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的执行计划,删除,再重新创建一个同名执行计划。 对于团队并行开发,用户可能希望确保,当前我操作的执行计划就是我认为的那个,而不是其他队友删除后创建的同名执行计划。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同,更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致,则返回400 最小长度:36 最大长度:36
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 表3 请求Body参数 参数 是否必选 参数类型 描述 template_body 否 String HCL模板,描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别。 template_body和template_uri 必须有且只有一个存在 在CreateStack API中,template_body和template_uri可以都不给予 注意: template_body中默认不应该含有任何敏感信息,资源编排服务会直接明文使用、log、展示、存储对应的template_body。如为敏感信息,建议将敏感信息通过vars_structure参数化,并设置encryption字段开启加密 最小长度:0 最大长度:51200 template_uri 否 String HCL模板的OBS地址,该模板描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 对应的文件应该是纯tf文件或zip压缩包 纯tf文件需要以.tf或者.tf.json结尾,并遵守HCL语法 压缩包目前只支持zip格式,文件需要以.zip结尾。解压后的文件不得包含".tfvars"文件且必须是UTF8编码(其中.tf.json不能包含BOM头),zip压缩包当前支持的子文件数量最大为100 template_body和template_uri 必须有且只有一个存在 在CreateStack API中,template_body和template_uri可以都不给予 注意: template_uri对应的模板文件中默认不应该含有任何敏感信息,资源编排服务会直接明文使用、log、展示、存储对应的模板文件内容。如为敏感信息,建议将敏感信息通过vars_structure参数化,并设置encryption字段开启加密 template_uri对应的模板文件如果为zip类型,则内部的文件或文件夹名称长度不得超过255个字节,最深路径长度不得超过2048字节,zip包大小不得超过1MB 最小长度:0 最大长度:2048
  • URI GET /v1/{project_id}/stacks/{stack_name}/outputs 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 最小长度:3 最大长度:64 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 表2 Query参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36
  • 请求示例 列举资源栈输出 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/outputs 列举资源栈输出,并提供资源栈id以校验是否与当前资源栈匹配 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/outputs?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
  • 功能介绍 列举资源栈输出(ListStackOutputs) 此API用于列举该资源栈的所有输出 资源栈输出为用户在模板中定义的 output 语句块在部署结束后所产生的返回信息,用户可在部署结束后,调用此API获取其具体的输出信息 当资源栈状态处于非终态(状态以IN_PROGRESS结尾)状态时,此API将返回空。非终态包括但不限于以下状态: 正在部署(DEPLOYMENT_IN_PROGRESS) 正在删除(DELETION_IN_PROGRESS) 正在回滚(ROLLBACK_IN_PROGRESS) output为HCL官方定义的语法,其返回信息类似于常见编程语言中的返回值,详细定义请参考HCL官方的说明
  • 响应示例 状态码: 200 获取资源栈集操作元数据成功 { "stack_set_operation_id" : "daa46d87-045b-4a50-a0d5-c167fc34b632", "stack_set_id" : "10f29827-939f-4a11-8bcc-65b051257860", "stack_set_name" : "my_hello_world_stack_set", "status" : "OPERATION_COMPLETE", "administration_agency_name" : "test_administration_agency_name", "managed_agency_name" : "test_managed_agency_name", "action" : "CREATE_STACK_INSTAN CES ", "deployment_targets" : { "domain_ids" : [ "dfda721e8ecd46088662f2dc9e97b1c6", "dfda721e8ecd46088662f2dc9e97b1c7" ], "regions" : "cn-north-5" }, "operation_preferences" : { "failure_tolerance_count" : 4, "max_concurrent_count" : 3, "region_order" : [ "cn-north-5" ], "region_concurrency_type" : "SEQUENTIAL", "failure_tolerance_mode" : "STRICT_FAILURE_TOLERANCE" }, "create_time" : "2023-05-15T15:39:25.210Z", "update_time" : "2023-05-15T16:39:25.210Z" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stack_set_operation_id String 资源栈集操作(stack_set_operation)的唯一Id。 此ID由资源编排服务在生成资源栈集操作的时候生成,为UUID。 最小长度:36 最大长度:36 stack_set_id String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,在重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我以为的那个,而不是又其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 最小长度:36 最大长度:36 stack_set_name String 资源栈集(stack_set)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 status String 资源栈集操作状态 QUEUE_IN_PROGRESS - 正在排队 OPERATION_IN_PROGRESS - 正在操作 OPERATION_COMPLETE - 操作完成 OPERATION_FAILED - 操作失败 STOP_IN_PROGRESS - 正在停止 STOP_COMPLETE - 停止完成 STOP_FAILED - 停止失败 枚举值: QUEUE_IN_PROGRESS OPERATION_IN_PROGRESS OPERATION_COMPLETE OPERATION_FAILED STOP_IN_PROGRESS STOP_COMPLETE STOP_FAILED status_message String 资源栈集操作失败时会展示此次操作失败的原因,例如,资源栈实例部署或删除失败个数超过上限或资源栈集操作超时。 如果需要查看详细失败信息,可通过ListStackInstances API获取查看资源栈实例的status_message。 action String 用户当前的操作 CREATE_STACK_INSTANCES - 创建资源栈实例 DELETE_STACK_INSTANCES - 删除资源栈实例 DEPLOY_STACK_SET - 部署资源栈集 DEPLOY_STACK_INSTANCES - 部署资源栈实例 UPDATE_STACK_INSTANCES - 更新资源栈实例 枚举值: CREATE_STACK_INSTANCES DELETE_STACK_INSTANCES DEPLOY_STACK_SET DEPLOY_STACK_INSTANCES UPDATE_STACK_INSTANCES administration_agency_name String 管理委托名称 资源编排服务使用该委托获取成员账号委托给管理账号的权限。该委托中必须含有iam:tokens:assume权限,用以后续获取被管理委托凭证。如果不包含,则会在新增或者部署实例时报错。 当用户定义SELF_MANAGED权限类型时,administration_agency_name和administration_agency_urn 必须有且只有一个存在。 推荐用户在使用信任委托时给予administration_agency_urn,administration_agency_name只支持接收委托名称,如果给予了信任委托名称,则会在部署模板时失败。 当用户使用SERVICE_MANAGED权限类型时,指定该参数将报错400。 创建委托及授权方式 最小长度:0 最大长度:64 administration_agency_urn String 管理委托URN 资源编排服务使用该委托获取成员账号委托给管理账号的权限。该委托中必须含有sts:tokens:assume权限,用以后续获取被管理委托凭证。如果不包含,则会在新增或者部署实例时报错。 当用户定义SELF_MANAGED权限类型时,administration_agency_name和administration_agency_urn 必须有且只有一个存在。 推荐用户在使用信任委托时给予administration_agency_urn,administration_agency_name只支持接收委托名称,如果给予了信任委托名称,则会在部署模板时失败。 当用户使用SERVICE_MANAGED权限类型时,指定该参数将报错400。 managed_agency_name String 被管理的委托名称。 资源编排服务会使用该委托获取实际部署资源所需要的权限 不同成员账号委托给管理账号的委托名称需要保持一致。暂不支持根据不同provider定义不同委托权限 当用户定义SELF_MANAGED权限类型时,必须指定该参数。当用户使用SERVICE_MANAGED权限类型时,指定该参数将报错400 创建委托及授权方式 最小长度:0 最大长度:64 deployment_targets deployment_targets object 部署目标信息。 create_time String 资源栈集操作的创建时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 update_time String 资源栈集操作的更新时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 operation_preferences operation_preferences object 资源栈集操作(stack_set_operation)的部署策略。该参数只在指定的单次操作中生效。 当用户不指定该参数时,默认的操作部署策略为区域(region)内资源栈实例串行部署,即每次只执行一个资源栈实例,区域(region)间随机且串行部署,执行完一个region下的全部资源栈实例后,才会选择另一个region部署,容错次数默认为0。 该参数可以在生成资源栈集操作的四个API中指定: 创建资源栈实例(CreateStackInstance),部署资源栈集(DeployStackSet),更新资源栈实例(UpdateStackInstance),删除资源栈实例(DeleteStackInstance) 表5 deployment_targets 参数 参数类型 描述 regions Array of strings 用户指定资源栈集操作所涉及的区域。 在DeployStackSet API中,根据用户输入regions和domain_ids列表,以笛卡尔积的形式选择资源栈集中存在的资源栈实例进行部署。如果指定了没有被资源栈集所管理的region,则会报错。 domain_ids Array of strings 权限模型是SELF_MANAGED时,用户指定包含本次操作涉及到的租户ID内容。 在DeployStackSet API中,如果指定该参数,根据用户输入的domain_ids列表和regions列表,以笛卡尔积的形式选择资源栈集中存在的资源栈实例进行部署。如果指定了没有被资源栈集所管理的domain_id,则会报错。 domain_ids和domain_ids_uri 有且仅有一个存在。 最小长度:1 最大长度:64 domain_ids_uri String 权限模型是SELF_MANAGED时,用户指定包含本次操作涉及到的租户ID内容文件的OBS地址。 内容格式要求每个租户ID以逗号(,)分割,支持换行。当前仅支持csv文件,且文件的编码格式须为UTF-8。文件内容大小不超过100KB。 上传的csv文件应尽量避免Excel操作,以防出现读取内容不一致的问题。推荐使用记事本打开确认内容是否符合预期。 在DeployStackSet API中,如果指定该参数,根据用户输入的domain_ids_uri文件内容和regions列表,以笛卡尔积的形式选择资源栈集中存在的资源栈实例进行部署。如果内容包含了没有被资源栈集所管理的domain_id,则会报错。 domain_ids和domain_ids_uri有且仅有一个存在。 最小长度:0 最大长度:2048 表6 operation_preferences 参数 参数类型 描述 region_concurrency_type String 部署资源栈实例时区域(region)的执行策略,分为两种,SEQUENTIAL和PARALLEL,区分大小写,默认值为SEQUENTIAL 详细介绍: SEQUENTIAL:顺序执行,执行完一个region下的全部资源栈实例后再去执行另一个region。默认顺序执行。 PARALLEL:并发执行,并发部署所有指定区域的资源栈实例。 缺省值:SEQUENTIAL 枚举值: SEQUENTIAL PARALLEL region_order Array of strings 区域(region)部署顺序。只有当用户指定region_concurrency_type为SEQUENTIAL时才会允许指定该参数。用户指定部署region的顺序,不允许出现资源栈集管理之外的region。 如果不指定,实际部署region顺序随机。部署顺序仅在当次部署时生效,应该包含且仅包含本次部署的所有region。 failure_tolerance_count Long 容错次数。用户定义在每个区域(region)下,允许部署失败的资源栈实例数量。该参数取值默认为0,限定0和正整数。 如果定义region顺序执行(region_concurrency_type值为SEQUENTIAL),在某个region超过容错次数时,资源栈集会取消所有状态仍处于WAIT_IN_PROGRESS状态的实例。被取消的实例状态最终变为CANCEL_COMPLETE; 如果是region并行执行(region_concurrency_type值为PARALLEL),在某个region超过容错次数时,资源栈集只会取消该region下所有处于WAIT_IN_PROGRESS状态的实例。被取消的实例状态最终变为CANCEL_COMPLETE。 对处于OPERATION_IN_PROGRESS,或已经部署完成,即处于OPERATION_COMPLETE或者OPERATION_FAILED状态的资源栈实例,不受影响,状态不变。 failure_tolerance_count 和 failure_tolerance_percentage 仅能有一个存在。 最小值:0 最大值:100 failure_tolerance_percentage Long 容错百分比。定义每个区域(region)下,允许部署失败的资源栈实例数占该region下所有资源栈实例数的百分比。该参数取值默认为0,限定0和正整数。 通过容错百分比*资源栈实例数,并向下取整,得到实际容错次数。 当concurrency_mode指定为STRICT_FAILURE_TOLERANCE时,实际最大并发账户数最多比实际容错次数多1。 failure_tolerance_count 和 failure_tolerance_percentage 仅能有一个存在。 最小值:0 最大值:100 max_concurrent_count Long 每个区域(region)下可同时部署资源栈实例的最大账户数。该参数取值默认为1,限定为正整数。 最大并发账户数最多比容错次数多1。如果用户指定failure_tolerance_percentage,最大并发账户数最多比 failure_tolerance_percentage * 资源栈实例数多1。保证部署在所需的容错级别停止。 max_concurrent_count 和 max_concurrent_percentage 仅能有一个存在。 最小值:1 最大值:5 max_concurrent_percentage Long 最大并发账户百分比,每个区域(region)中可同时部署的资源栈实例的最大账户百分比。该参数取值默认为1,限定正整数。 RFS根据百分比 *(每个region下资源栈实例数)得到的值,再向下取整,得到实际最大并发账户数。如果实际最大并发账户数向下取整值为0时,则默认选择最大并发账户数为1。 通过百分比计算得到的实际最大并发账户数最多比容错次数多1。如果用户指定failure_tolerance_percentage,实际最大并发账户数最多比 failure_tolerance_percentage * 资源栈实例数多1。保证部署在所需的容错级别停止。 max_concurrent_count 和 max_concurrent_percentage 仅能有一个存在。 最小值:1 最大值:100 failure_tolerance_mode String 资源栈集操作部署的失败容忍模式,分为两种,STRICT_FAILURE_TOLERANCE和SOFT_FAILURE_TOLERANCE,区分大小写,默认值为STRICT_FAILURE_TOLERANCE。 详细介绍: STRICT_FAILURE_TOLERANCE:此选项会动态降低并发级别,以确保同region下部署失败的账户数量永远不超过 failure_tolerance_count + 1。当用户指定failure_tolerance_percentage时,确保同region下部署失败的账户数量不超过 failure_tolerance_percentage * 资源栈实例数 + 1。 初始实际最大并发数为max_concurrent_count,如果用户指定的是max_concurrent_percentage,则初始实际最大并发数为 max_concurrent_percentage * 资源栈实例数,随后,实际最大并发数会根据失败次数增加而减少。 SOFT_FAILURE_TOLERANCE:此选项将failure_tolerance_count与实际并发数分离开。该参数允许资源栈集操作始终以指定的 max_concurrent_count 或 max_concurrent_percentage 操作资源栈实例。 此时不保证资源栈实例失败总数小于 failure_tolerance_count + 1,如果用户指定的是failure_tolerance_percentage的值,则部署失败次数不会超过 failure_tolerance_percentage * 资源栈实例数 + 1。 缺省值:STRICT_FAILURE_TOLERANCE 枚举值: STRICT_FAILURE_TOLERANCE SOFT_FAILURE_TOLERANCE 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • URI GET /v1/stack-sets/{stack_set_name}/operations/{stack_set_operation_id}/metadata 表1 路径参数 参数 是否必选 参数类型 描述 stack_set_name 是 String 资源栈集的名称。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 stack_set_operation_id 是 String 资源栈集操作(stack_set_operation)的唯一Id。 此ID由资源编排服务在生成资源栈集操作的时候生成,为UUID。 最小长度:36 最大长度:36 表2 Query参数 参数 是否必选 参数类型 描述 stack_set_id 否 String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,再重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我认为的那个,而不是其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 最小长度:36 最大长度:36
  • 响应示例 状态码: 200 获取资源栈集元数据成功 { "stack_set_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_set_name" : "my_hello_world_stack_set", "stack_set_description" : "my first stack set", "initial_stack_description" : "my stack created by stack set", "permission_model" : "SELF_MANAGED", "managed_agency_name" : "my_managed_agency_name", "administration_agency_name" : "my_administration_agency_name", "status" : "OPERATION_IN_PROGRESS", "create_time" : "2023-03-16T03:28:20.210Z", "update_time" : "2023-05-24T08:56:10.210Z", "managed_operation" : { "enable_parallel_operation" : false } }
  • 请求示例 获取指定资源栈集的元数据 GET https://{endpoint}/v1/stack_sets/my_hello_world_stack_set/metadata 获取资源栈集元数据,并提供资源栈集id以校验是否与当前资源栈集匹配 GET https://{endpoint}/v1/stack_sets/my_hello_world_stack_set/metadata?stack_set_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
共100000条