华为云用户手册

  • 响应示例 状态码: 200 列举资源栈资源成功 { "stack_resources" : [ { "logical_resource_name" : "vpc", "logical_resource_type" : "huaweicloud_vpc", "physical_resource_id" : "38d617da-9b7f-4550-9ff7-d0e271dd4735", "physical_resource_name" : "my_vpc", "resource_attributes" : [ { "key" : "cidr", "value" : "172.16.0.0/16" }, { "key" : "description", "value" : "" }, { "key" : "enterprise_project_id", "value" : "0" }, { "key" : "id", "value" : "38d617da-9b7f-4550-9ff7-d0e271dd4735" }, { "key" : "name", "value" : "test_name" }, { "key" : "region", "value" : "cn-north-7" }, { "key" : "routes", "value" : "[]" }, { "key" : "secondary_cidr", "value" : "null" }, { "key" : "status", "value" : "OK" }, { "key" : "tags", "value" : "null" }, { "key" : "timeouts", "value" : "null" } ], "resource_status" : "CREATION_COMPLETE" } ] }
  • 请求示例 列举资源栈资源 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/resources 列举资源栈资源,并提供资源栈id以校验是否与当前资源栈匹配 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/resources?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
  • 功能介绍 列举资源栈资源(ListStackResources) 此API用于列举资源栈中当前管理的所有资源的信息 当资源栈处于非终态时,仅输出资源栈下资源的简要信息,包含逻辑资源名称(logical_resource_name),逻辑资源类型(logical_resource_type),物理资源id(physical_resource_id),物理资源名称(physical_resource_name),资源状态(status)等信息;当资源栈处于终态时,将额外输出具体信息,如资源属性(resource_attributes) 非终态包括但不限于以下状态: 正在部署(DEPLOYMENT_IN_PROGRESS) 正在删除(DELETION_IN_PROGRESS) 正在回滚(ROLLBACK_IN_PROGRESS)
  • URI GET /v1/{project_id}/stacks/{stack_name}/resources 表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
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stack_resources Array of StackResource objects 资源栈中所管理的资源信息列表 表5 StackResource 参数 参数类型 描述 physical_resource_id String 资源的物理id,由该资源的provider、云服务或其他服务提供方在资源部署的时候生成 注:与physical相关的参数可以在模板以外的地方,作为该资源的一种标识 physical_resource_name String 资源的物理名称,由该资源的provider、云服务或其他服务提供方在资源部署的时候定义 注:与physical相关的参数可以在模板以外的地方,作为该资源的一种标识 logical_resource_name String 资源的逻辑名称,由用户在模板中定义 注:与 logical 相关的参数仅仅在模板内部,作为该资源的一种标识 以HCL格式的模板为例,logical_resource_name 为 my_hello_world_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } 以json格式的模板为例,logical_resource_name 为 my_hello_world_vpc { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } logical_resource_type String 资源的类型 注:与 logical 相关的参数仅仅在模板内部,作为该资源的一种标识 以HCL格式的模板为例,logical_resource_type 为 huaweicloud_vpc resource "huaweicloud_vpc" "my_hello_world_vpc" { name = "test_vpc" } 以json格式的模板为例,logical_resource_type 为 huaweicloud_vpc { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc" } } } } index_key String 资源的索引,如果用户在模板中使用了count或for_each则会返回index_key。如果index_key出现,则logical_resource_name + index_key可以作为该资源的一种标识 如果用户在模板中使用count,则index_key为从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_key为用户自定义的字符串 以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}" } } } } resource_status String 资源的状态 CREATION_IN_PROGRESS - 正在生成 CREATION_FAILED - 生成失败 CREATION_COMPLETE - 生成完成 DELETION_IN_PROGRESS - 正在删除 DELETION_FAILED - 删除失败 DELETION_COMPLETE - 已经删除 UPDATE_IN_PROGRESS - 正在更新。此处的更新特指非替换式更新,如果是替换式更新,则使用CREATION后DELETION UPDATE_FAILED - 更新失败。此处的更新特指非替换式更新,如果是替换式更新,则使用CREATION后DELETION UPDATE_COMPLETE - 更新完成。此处的更新特指非替换式更新,如果是替换式更新,则使用CREATION后DELETION status_message String 当该资源状态为任意失败状态(即以 FAILED 结尾时),将会展示简要的错误信息总结以供debug resource_attributes Array of ResourceAttribute objects 资源属性列表 表6 ResourceAttribute 参数 参数类型 描述 key String 资源属性的键 value String 资源属性的值 状态码: 400 表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 响应消息 状态码: 401 表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 响应消息 状态码: 403 表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 响应消息 状态码: 404 表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 响应消息 状态码: 429 表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 响应消息 状态码: 500 表17 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表18 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息
  • 响应示例 状态码: 200 获取资源栈实例成功 { "stack_set_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_set_name" : "my_hello_world_stack_set", "latest_stack_set_operation_id" : "3fef5d3e-27b6-44e8-9769-1d7262bd9430", "status" : "OPERATION_COMPLETE", "stack_id" : "ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2", "stack_name" : "my_hello_world_stack", "stack_domain_id" : "6cbcca2a2f114a63841bdbc7a19b7b09", "region" : "cn-north-7", "create_time" : "2023-05-15T15:39:25.210Z", "update_time" : "2023-05-15T16:39:25.210Z", "var_overrides" : { "vars_body" : "var_key1=\"var_value1\"", "vars_uri_content" : "var_key2=\"var_value2\"" } }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stack_set_id String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,在重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我以为的那个,而不是又其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 stack_set_name String 资源栈集(stack_set)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 status String 资源栈实例的状态 WAIT_IN_PROGRESS - 资源栈实例等待操作中 CANCEL_COMPLETE - 资源栈实例操作取消完成 OPERATION_IN_PROGRESS - 资源栈实例操作中 OPERATION_FAILED - 资源栈实例操作失败 INOPERABLE - 资源栈实例不可操作 OPERATION_COMPLETE - 资源栈实例操作完成 status_message String 在资源栈实例状态为INOPERABLE或OPERATION_FAILED时,会显示简要的错误信息总结以供debug stack_id String 资源栈(stack)的唯一ID。 此ID由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 stack_name String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 stack_domain_id String 资源栈实例所关联的资源栈所在的租户ID latest_stack_set_operation_id String 最新一次部署该资源栈实例的资源栈集操作ID 此ID由资源编排服务在生成资源栈集操作的时候生成,为UUID region String 资源栈实例所关联的资源栈所在的区域 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 var_overrides var_overrides object 该资源栈实例的参数覆盖内容 如果用户通过CreateStackInstances或UpdateStackInstances API 对该资源栈实例设置了参数覆盖,该字段会返回资源栈实例记录的最新参数覆盖内容 如果该字段未返回,用户使用资源栈集中记录的参数部署该实例 表5 var_overrides 参数 参数类型 描述 vars_uri_content String vars_uri对应的文件内容 vars_body String HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果 vars_body使用HCL的tfvars格式,用户可以将“.tfvars”中的内容提交到vars_body中 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400 如果vars_body过大,可以使用vars_uri 资源栈集不支持敏感 数据加密 ,资源编排服务会直接明文使用、log、展示、存储对应的vars_body 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表7 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 401 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表9 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 403 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表11 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 404 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表13 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 429 表14 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表15 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 500 表16 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表17 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息
  • URI GET /v1/stack-sets/{stack_set_name}/stack-instances/{stack_instance_addr} 表1 路径参数 参数 是否必选 参数类型 描述 stack_set_name 是 String 资源栈集的名称。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 stack_instance_addr 是 String 资源栈实例的唯一地址。该地址由region和stack_domain_id通过"/"(转义后为%2f或%2F)拼接而成。该地址在domain_id+region+stack_set_name下唯一。 表2 Query参数 参数 是否必选 参数类型 描述 stack_set_id 否 String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,再重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我认为的那个,而不是其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 call_identity 否 String 仅支持资源栈集权限模式为SERVICE_MANAGED时指定该参数。用于指定用户是以组织管理账号还是成员帐户中的服务委托管理员身份调用资源栈集。默认为SELF。 无论指定何种用户身份,创建或部署的资源栈集始终在组织管理账号名下。* SELF - 以组织管理账号身份调用。 DELEGATED_ADMIN - 以服务委托管理员身份调用。用户的华为云账号必须在组织中已经被注册为”资源编排资源栈集服务“的委托管理员。
  • 请求示例 通过vars uri 传递期望更新的覆盖参数,保留资源栈实例中已被覆盖的参数var_key_1,并触发部署,且指定更新资源栈实例在region间串行进行 PATCH https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances { "deployment_targets" : { "regions" : [ "cn-north-7" ], "domain_ids_uri" : "https://your-bucket.cn-north-7.myhuaweicloud.com/my-domain-ids.csv" }, "var_overrides" : { "vars_uri" : "https://{bucket_name}.{region}.myhuaweicloud.com/my-hello-world-vars.tfvars", "use_stack_set_vars" : [ "var_key_1" ] }, "stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4", "operation_preferences" : { "region_concurrency_type" : "SEQUENTIAL" } } 部署在cn-north-7下租户ID为my-domain-id的资源栈实例,不更新参数覆盖,且指定更新资源栈实例在region间并行进行 PATCH https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances { "deployment_targets" : { "regions" : [ "cn-north-7" ], "domain_ids" : [ "my-domain-id" ] }, "stack_set_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b4", "operation_preferences" : { "region_concurrency_type" : "PARALLEL" } }
  • 响应参数 状态码: 202 表7 响应Body参数 参数 参数类型 描述 stack_set_operation_id String 资源栈集操作(stack_set_operation)的唯一Id。 此ID由资源编排服务在生成资源栈集操作的时候生成,为UUID。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表9 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 401 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表11 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 403 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表13 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 404 表14 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表15 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 429 表16 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表17 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 500 表18 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表19 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 表3 请求Body参数 参数 是否必选 参数类型 描述 stack_set_id 否 String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,在重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我以为的那个,而不是又其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 deployment_targets 是 deployment_targets object 部署目标信息。 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) call_identity 否 String 仅支持资源栈集权限模式为SERVICE_MANAGED时指定该参数。用于指定用户是以组织管理账号还是成员帐户中的服务委托管理员身份调用资源栈集。默认为SELF。 当资源栈集权限模式为SELF_MANAGED时,默认为SELF。 无论指定何种用户身份,涉及操作的资源栈集始终在组织管理账号名下。* SELF - 以组织管理账号身份调用。 DELEGATED_ADMIN - 以服务委托管理员身份调用。用户的华为云账号必须在组织中已经被注册为”资源编排资源栈集服务“的委托管理员。 表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,则会报错。 当资源栈集权限模型是SERVICE_MANAGED时,该参数需结合domain_id_filter_type使用。用于指定资源栈集操作涉及到的,从所提供的OU中指定或排除部署的租户ID信息,或除提供的OU外,还进行额外部署的租户ID信息。 domain_ids和domain_ids_uri 有且仅有一个存在。 domain_ids_uri 否 String 当资源栈集权限模型是SELF_MANAGED时,用户指定包含本次操作涉及到的租户ID内容文件的OBS地址。 内容格式要求每个租户ID以逗号(,)分割,支持换行。当前仅支持csv文件,且文件的编码格式须为UTF-8。文件内容大小不超过100KB。 上传的csv文件应尽量避免Excel操作,以防出现读取内容不一致的问题。推荐使用记事本打开确认内容是否符合预期。 在DeployStackSet API中,如果指定该参数,根据用户输入的domain_ids_uri文件内容和regions列表,以笛卡尔积的形式选择资源栈集中存在的资源栈实例进行部署。如果内容包含了没有被资源栈集所管理的domain_id,则会报错。 当资源栈集权限模型是SERVICE_MANAGED时,该参数需结合domain_id_filter_type使用。链接文件内容用于指定资源栈集操作涉及到的,从所提供的OU中指定或排除部署的租户ID信息,或除提供的OU外,还进行额外部署的租户ID信息。 domain_ids和domain_ids_uri有且仅有一个存在。 organizational_unit_ids 否 Array of strings 组织单元(Organizational Unit,缩写OU)ID列表,仅在资源栈集权限模型是SERVICE_MANAGED时,才允许指定该参数。 用户指定的Organization组织部署的ID列表,可以是根组织(Root)ID,也可以是某些组织单元的ID。 创建资源栈实例 (CreateStackInstances)API 必须指定该参数,该API 会异步校验OU IDs 的合法性,校验有效的OU IDs 及其所有非空子OU ID 都会被资源栈集记录管理。该API允许指定没有或者已经被资源栈集管理的OU IDs。 若资源栈集不自动部署,空子OU不会被资源栈集记录管理(特指子OU下无成员账号或部署排除其下所有成员账号)。* 【暂不支持】若资源栈集开启自动部署,空子OU也会被资源栈集记录管理(特指子OU下无成员账号或部署排除其下所有成员账号),自动部署仅针对成员账号变动,不针对其他组织结构变化,例如新增OU等,新增OU不会自动被资源栈集管理。* 部署或删除资源栈实例(DeployStackSet、UpdateStackInstances、DeleteStackInstances) API,只允许指定已经被资源栈集管理的OU IDs。若指定了没有被资源栈集记录管理的OU IDs,则会报错。 删除资源栈实例 (DeleteStackInstances)API 必须指定该参数。 用户可以通过获取资源栈集元数据(ShowStackSetMetadata)API ,获取通过创建资源栈实例(CreateStackInstances)API 请求指定过的OU IDs。 资源栈集不仅会部署到目标 OU 中的用户,同时还会部署所有子 OU 下的用户。指定该参数后,资源栈集会根据用户输入的 OU 列表下所有的用户信息(包含子 OU 下的用户)和region列表,以笛卡尔积的形式,选择资源栈实例进行创建或部署。 资源栈集不会选择组织管理员作为部署目标,进行资源栈实例的创建或部署,即使组织管理员位于给与的组织或组织的 OU 中。 domain_id_filter_type 否 String 租户ID筛选类型,仅支持资源栈集权限模型是SERVICE_MANAGED时指定该参数。默认为NONE 用户可以指定不同的筛选类型,通过domain_ids或domain_ids_uri 指定或排除部署的用户信息,以增加或限制部署目标用户范围,实现不同的部署策略。 INTERSECTION - 从所提供的 OUs 中选择指定用户进行部署。指定该类型时,domain_ids和domain_ids_uri 有且仅能有一个存在。 DIFFERENCE - 从所提供的 OUs 中排除指定用户部署。指定该类型时,domain_ids和domain_ids_uri 有且仅能有一个存在。 UNION - 除了部署到提供的 OUs 外,还将部署到指定的账户中。用户可以通过同时指定organizational_unit_ids 和 domain_ids/domain_ids_uri 以实现在同一请求中部署整个OU和来自不同OU的特定个人账户。指定该类型时,domain_ids和domain_ids_uri 有且仅能有一个存在。创建资源栈实例(CreateStackInstances)除外,该API 不允许指定使用该类型。 NONE - 只部署在指定 OUs 中的所有账户。该类型下domain_ids和domain_ids_uri字段必须为空。 表5 var_overrides 参数 是否必选 参数类型 描述 vars_uri 否 String HCL参数文件的OBS地址。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 请确保OBS地址所在局点与使用 RFS 服务局点一致。 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对应的参数文件内容 vars_body 否 String HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 vars_body使用HCL的tfvars格式,用户可以将“.tfvars”中的内容提交到vars_body中 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400 如果vars_body过大,可以使用vars_uri 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储对应的vars_body。 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:并发执行,并发部署所有指定区域的资源栈实例。 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 仅能有一个存在。 failure_tolerance_percentage 否 Long 容错百分比。定义每个区域(region)下,允许部署失败的资源栈实例数占该region下所有资源栈实例数的百分比。该参数取值默认为0,限定0和正整数。 通过容错百分比*资源栈实例数,并向下取整,得到实际容错次数。 failure_tolerance_count 和 failure_tolerance_percentage 仅能有一个存在。 max_concurrent_count 否 Long 每个区域(region)下可同时部署资源栈实例的最大账户数。该参数取值默认为1,限定为正整数。 最大并发账户数最多比容错次数多1。如果用户指定failure_tolerance_percentage,最大并发账户数最多比 failure_tolerance_percentage * 资源栈实例数多1。保证部署在所需的容错级别停止。 max_concurrent_count 和 max_concurrent_percentage 仅能有一个存在。 max_concurrent_percentage 否 Long 最大并发账户百分比,每个区域(region)中可同时部署的资源栈实例的最大账户百分比。该参数取值默认为1,限定正整数。 RFS根据百分比 *(每个region下资源栈实例数)得到的值,再向下取整,得到实际最大并发账户数。如果实际最大并发账户数向下取整值为0时,则默认选择最大并发账户数为1。 通过百分比计算得到的实际最大并发账户数最多比容错次数多1。如果用户指定failure_tolerance_percentage,实际最大并发账户数最多比 failure_tolerance_percentage * 资源栈实例数多1。保证部署在所需的容错级别停止。 max_concurrent_count 和 max_concurrent_percentage 仅能有一个存在。 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 (failure_tolerance_percentage) 与实际并发数分离开。该参数允许资源栈集操作始终以指定的 max_concurrent_count 或 max_concurrent_percentage 操作资源栈实例。 此时不保证资源栈实例失败总数小于 failure_tolerance_count + 1,如果用户指定的是failure_tolerance_percentage的值,则不保证资源栈实例失败总数小于 failure_tolerance_percentage * 资源栈实例数 + 1。
  • 功能介绍 更新资源栈实例(UpdateStackInstances) 此API用于更新并部署指定资源栈实例集合,并返回资源栈集操作ID(stack_set_operation_id) 此API可以通过var_overrides参数,更新指定资源栈实例的参数值,进行参数覆盖。如果var_overrides参数未给予,则默认使用当前资源栈集中记录的参数进行部署,详见:var_overrides参数描述。用户只可以更新已经存在的资源栈实例,如果用户想要增加额外的资源栈实例,请使用CreateStackInstances API。 通过DeployStackSet API更新资源栈集参数后,资源栈实例中已经被覆盖的参数不会被更新,仍然保留覆盖值。 用户只能覆盖已经在资源栈集中记录的参数,如果用户想要增加可以覆盖的参数,需要先通过DeployStackSet API更新资源栈集记录的参数集合。 当触发的部署失败时,资源栈实例不会自动回滚参数覆盖,但部署失败的资源栈会默认自动回滚,已经部署成功的资源栈不会触发回滚。 用户可以根据资源栈集操作ID(stack_set_operation_id),通过ShowStackSetOperationMetadata API获取资源栈集操作状态。
  • 请求示例 继续部署资源栈 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/continuations 继续部署资源栈,并提供资源栈id以校验是否与当前资源栈匹配 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/continuations { "stack_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 表3 请求Body参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400
  • 响应参数 状态码: 202 表4 响应Body参数 参数 参数类型 描述 deployment_id String 部署ID 接受请求,进行异步处理。可以调用GetStackMetadata来获取异步请求的部署状态 注意: 部署资源栈后,资源编排服务持久化请求并立即返回,客户端不等待请求最终处理完成,用户无法实时感知请求处理结果 资源编排服务最终会将异步部署请求排队,在服务端空闲的情况下逐个处理。用户最大等待时长为6小时 状态码: 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 响应消息 状态码: 409 表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 响应消息 状态码: 429 表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 响应消息 状态码: 500 表17 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表18 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息
  • URI POST /v1/{project_id}/stacks/{stack_name}/continuations 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。
  • 请求示例 删除指定的资源栈集 DELETE https://{endpoint}/v1/stack-sets/my_hello_world_stack_set 删除指定的资源栈集,并提供资源栈集id以校验是否与当前资源栈集匹配 DELETE https://{endpoint}/v1/stack-sets/my_hello_world_stack_set?stack_set_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2
  • URI DELETE /v1/stack-sets/{stack_set_name} 表1 路径参数 参数 是否必选 参数类型 描述 stack_set_name 是 String 资源栈集的名称。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 表2 Query参数 参数 是否必选 参数类型 描述 stack_set_id 否 String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,再重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我认为的那个,而不是其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 call_identity 否 String 仅支持资源栈集权限模式为SERVICE_MANAGED时指定该参数。用于指定用户是以组织管理账号还是成员帐户中的服务委托管理员身份调用资源栈集。默认为SELF。 无论指定何种用户身份,创建或部署的资源栈集始终在组织管理账号名下。* SELF - 以组织管理账号身份调用。 DELEGATED_ADMIN - 以服务委托管理员身份调用。用户的华为云账号必须在组织中已经被注册为”资源编排资源栈集服务“的委托管理员。
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表5 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表7 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表9 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 429 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表11 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表13 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息
  • 响应示例 状态码: 200 列举模板成功 { "templates" : [ { "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", "latest_version_description" : "最新版本描述", "latest_version_id" : "V10" }, { "template_id" : "69f8d5ea-eaa4-4a3b-a96d-bae9230e97c9", "template_name" : "my_second_template", "template_description" : "模板描述", "create_time" : "2023-05-09T09:00:00Z", "update_time" : "2023-05-09T10:00:00Z", "latest_version_description" : "最新版本描述", "latest_version_id" : "V10" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 templates Array of Template objects 模板列表 表4 Template 参数 参数类型 描述 template_id String 模板的唯一ID,由模板服务随机生成 template_name String 用户希望创建的模板名称 template_description String 模板的描述。可用于客户识别自己的模板 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 latest_version_id String 模板中最新的模板版本ID latest_version_description String 模板中最新模板版本的版本描述 状态码: 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 响应消息 状态码: 429 表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 响应消息 状态码: 500 表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 响应消息
  • 功能介绍 列举模板(ListTemplates) 此API用于列举当前局点下用户所有的模板 默认按照生成时间降序排序,最新生成的模板排列在最前面 注意:目前返回全量模板信息,即不支持分页 如果没有任何模板,则返回空list 如果用户需要详细的模板版本信息,请调用ListTemplateVersions ListTemplates返回的信息只包含模板摘要信息(具体摘要信息见ListTemplatesResponseBody),如果用户需要详细的某个模板信息,请调用ShowTemplateMetadata
  • 请求示例 通过OBS Signed URL传递模板和管理委托名称创建资源栈集 POST https://{endpoint}/v1/stack-sets { "stack_set_name" : "my_first_stack_set", "template_uri" : "https://my_hello_world_bucket.{region}.myhuaweicloud.com/vpc.tf", "managed_agency_name" : "my_managed_agency_name", "administration_agency_name" : "my_administration_agency_name" } 通过模板内容和管理委托URN创建资源栈集 POST https://{endpoint}/v1/stack-sets { "stack_set_name" : "my_second_stack_set", "managed_agency_name" : "my_managed_agency_name", "administration_agency_urn" : "iam::my-domain-id:agency:my-agency-name", "template_body" : "terraform {\n required_providers {\n huaweicloud = {\n source = \"huawei.com/provider/huaweicloud\"\n version = \"1.41.0\"\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}" }
  • 响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 stack_set_id String 资源栈集(stack_set)的唯一ID。 此ID由资源编排服务在生成资源栈集的时候生成,为UUID。 由于资源栈集名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈集,删除,在重新创建一个同名资源栈集。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈集就是我以为的那个,而不是又其他队友删除后创建的同名资源栈集。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈集所对应的ID都不相同,更新不会影响ID。如果给予的stack_set_id和当前资源栈集的ID不一致,则返回400 状态码: 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 响应消息 状态码: 409 表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 响应消息 状态码: 429 表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 响应消息 状态码: 500 表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 响应消息
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 表2 请求Body参数 参数 是否必选 参数类型 描述 stack_set_name 是 String 资源栈集(stack_set)的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 stack_set_description 否 String 资源栈集的描述。可用于客户识别自己的资源栈集。 permission_model 否 String 权限模型,定义了RFS操作资源栈集时所需委托的创建方式,枚举值,默认为SELF_MANAGED。用户可以使用创建资源栈集(CreateStackSet)API 指定该参数。该参数暂不支持更新。用户如果想要更新权限模型,可以通过先删除再创建同名资源栈集实现。 SELF_MANAGED - 自我管理,基于部署需求,用户需要提前手动创建委托,既包含管理账号授权给RFS的委托,也包含成员账号授权给管理账号的委托。如果委托不存在或权限不足,创建资源栈集不会失败,创建资源栈实例时才会报错。 SERVICE_MANAGED - 服务管理,基于Organization服务,RFS会自动创建部署Organization 成员账号时所需的全部 IAM 委托。用户需要提前在Organization可信服务列表中将”资源编排资源栈集服务“启用,且只有Organization的管理账号或”资源编排资源栈集服务“的委托管理员,才允许指定SERVICE_MANAGED创建资源栈集,否则会报错。 administration_agency_name 否 String 管理委托名称 资源编排服务使用该委托获取成员账号委托给管理账号的权限。该委托中必须含有iam: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 创建委托及授权方式 template_body 否 String HCL模板,描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别。 template_body和template_uri 必须有且只有一个存在 注意: 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储对应的template_body template_uri 否 String HCL模板的OBS地址,该模板描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别 请确保OBS地址所在局点与使用RFS服务局点一致。 对应的文件应该是纯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 vars_uri 否 String HCL参数文件的OBS地址。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 请确保OBS地址所在局点与使用RFS服务局点一致。 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对应的参数文件内容 vars_body 否 String HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 vars_body使用HCL的tfvars格式,用户可以将“.tfvars”中的内容提交到vars_body中 资源编排服务支持vars_body和vars_uri,如果以上两种方式中声名了同一个变量,将报错400 如果vars_body过大,可以使用vars_uri 资源栈集不支持敏感数据加密,资源编排服务会直接明文使用、log、展示、存储对应的vars_body。 initial_stack_description 否 String 初始化资源栈描述。可用于客户识别被资源栈集所管理的资源栈。 资源栈集下的资源栈仅在创建时统一使用该描述。客户想要更新初始化资源栈描述,可以通过UpdateStackSet API。 后续更新资源栈集描述将不会同步更新已管理的资源栈描述。 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_operation 否 managed_operation object 用于定义管理资源栈集操作的一系列属性。 call_identity 否 String 仅支持资源栈集权限模式为SERVICE_MANAGED时指定该参数。用于指定用户是以组织管理账号还是成员帐户中的服务委托管理员身份调用资源栈集。默认为SELF。 当资源栈集权限模式为SELF_MANAGED时,默认为SELF。 无论指定何种用户身份,涉及操作的资源栈集始终在组织管理账号名下。* SELF - 以组织管理账号身份调用。 DELEGATED_ADMIN - 以服务委托管理员身份调用。用户的华为云账号必须在组织中已经被注册为”资源编排资源栈集服务“的委托管理员。 表3 managed_operation 参数 是否必选 参数类型 描述 enable_parallel_operation 否 Boolean 资源栈集(stack_set)是否可以并发地创建多个资源栈集操作。该参数作为资源栈集属性,可以通过创建资源栈集API(CreateStackSet)指定,通过更新资源栈集API(UpdateStackSet)更新该参数。 该参数默认为false,资源栈集只允许以串行的方式生成并执行资源栈集操作。同一时刻,资源栈集中只会存在一个处于运行态,即QUEUE_IN_PROGRESS或OPERATION_IN_PROGRESS状态的资源栈集操作,该操作执行完成后,下一个资源栈集操作才允许被创建。 该参数如果设定为true,资源栈集允许并发地生成多个资源栈集操作,执行非冲突操作,并将冲突操作进行排队处理。当冲突操作执行完毕,资源栈集按请求顺序继续执行排队操作。 注:冲突操作指资源栈集允许多个操作同时执行的条件下,如果超过一个以上的操作包含了同一资源栈实例,此时在该资源栈实例上的多个操作被称为冲突操作。 当资源栈集状态为OPERATION_IN_PROGRESS时,不允许用户通过更新资源栈集(UpdateStackSet)来更新该参数。 当前,一个资源栈集下仅允许同时最多存在10个处于运行态的资源栈集操作*
  • URI DELETE /v1/{project_id}/stacks/{stack_name}/execution-plans/{execution_plan_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 execution_plan_name 是 String 执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 表2 Query参数 参数 是否必选 参数类型 描述 stack_id 否 String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 execution_plan_id 否 String 执行计划(execution_plan)的唯一Id。 此Id由资源编排服务在生成执行计划的时候生成,为UUID。 由于执行计划名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的执行计划,删除,再重新创建一个同名执行计划。 对于团队并行开发,用户可能希望确保,当前我操作的执行计划就是我认为的那个,而不是其他队友删除后创建的同名执行计划。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同,更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致,则返回400
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表5 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表7 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表9 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 404 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表11 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 details Array of Detail objects 权限拒绝时服务返回的详细错误信息。 表13 Detail 参数 参数类型 描述 error_code String 响应码 error_msg String 响应消息
  • 请求示例 删除指定资源栈下的执行计划 DELETE https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan 删除指定资源栈下的执行计划,并提供资源栈id和执行计划id以校验是否与当前资源栈和执行计划匹配 DELETE 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
  • 响应参数 状态码: 204 表4 响应Body参数 参数 参数类型 描述 - String 空响应体 状态码: 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 响应消息
  • 请求示例 更新模板元数据 PATCH https://{endpoint}/v1/c364070ab35041ddae68cf8b4839b60f/templates/my_template/metadata { "template_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3", "template_description" : "my template description" }
共100000条