云服务器内容精选

  • 请求示例 通过filter获取指定event_type和resource_name的资源栈事件 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/events?filter=event_type== LOG ,resource_name==my_hello_world_resource 通过field选择返回resource_key、resource_name和event_type三个属性,其中event_type为自动补选 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/events?field=resource_key,resource_name 通过deployment_id获取指定部署的资源栈事件 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/events?deployment_id=81edbb3e-00d9-42fd-94c8-59c7525d0f28
  • 响应示例 状态码: 200 列举资源栈事件成功 { "stack_events" : [ { "event_message" : "Apply required resource success. ", "event_type" : "LOG", "time" : "2023-05-17T11:56:47Z" }, { "event_message" : "Apply complete! Resources: 1 added, 0 changed, 0 destroyed.", "event_type" : "SUMMARY", "time" : "2023-05-17T11:56:45Z" }, { "resource_type" : "huaweicloud_vpc", "resource_name" : "vpc", "elapsed_seconds" : 8, "event_message" : "huaweicloud_vpc.vpc: Creation complete after 8s [id=38d617da-9b7f-4550-9ff7-d0e271dd4735]", "event_type" : "CREATION_COMPLETE", "resource_id_key" : "id", "resource_id_value" : "38d617da-9b7f-4550-9ff7-d0e271dd4735", "time" : "2023-05-17T11:56:40Z" }, { "resource_type" : "huaweicloud_vpc", "resource_name" : "vpc", "event_message" : "huaweicloud_vpc.vpc: Creating...", "event_type" : "CREATION_IN_PROGRESS", "time" : "2023-05-17T11:56:32Z" }, { "event_message" : "Creating required resource now", "event_type" : "LOG", "time" : "2023-05-17T11:56:31Z" } ] }
  • 功能介绍 列举资源栈事件(ListStackEvents) 此API用于列举资源栈某一次或全部的部署事件 如果给予deployment_id,则会将deployment_id作为查询条件,返回对应某一次部署的资源栈事件;如果不给予deployment_id,则返回全量的资源栈事件 如果给定的deployment_id对应的部署不存在,则返回404 可以使用filter作为过滤器,过滤出指定事件类型(event_type)、资源类型(resource_type)、资源名称(resource_name)的资源栈事件 可以使用field选择数据应返回的属性,属性事件类型(event_type)不可配置,一定会返回,可选择的属性有逝去时间(elapsed_seconds)、事件消息(event_message)、 资源ID键(resource_id_key)、资源ID值(resource_id_value)、资源键(resource_key)、资源类型(resource_type)、资源名称(resource_name)和时间戳(timestamp) 事件返回将以时间降序排列
  • URI GET /v1/{project_id}/stacks/{stack_name}/events 表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 deployment_id 否 String 标识部署的唯一Id,此Id由资源编排服务在触发部署、回滚等操作时生成,为UUID。 最小长度:36 最大长度:36 filter 否 String 过滤条件 与(AND)运算符使用逗号(,)定义 或(OR)运算符使用竖线(|)定义,OR运算符优先级高于AND运算符 不支持括号 过滤运算符仅支持等号(==) 过滤参数名及其值仅支持包含大小写英文、数字和下划线 过滤条件中禁止使用分号,如果有分号,则此条过滤会被忽略 一个过滤参数仅能与一个与条件相关,一个与条件中的多个或条件仅能与一个过滤参数相关 最小长度:0 最大长度:512 field 否 String 选择的属性名称 属性名仅支持包含大小写英文、数字和下划线 多个属性名称之间以逗号(,)分隔 最小长度:0 最大长度:128
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stack_events Array of StackEvent objects 资源栈事件列表 表5 StackEvent 参数 参数类型 描述 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" } } } } resource_id_key String 资源id的名称,即对应资源作为id使用的值的名称,当资源未创建的时候,不返回resource_id_key 此id由provider定义,因此不同的provider可能遵循了不同的命名规则,具体的命名规则请与provider开发者确认或阅读provider文档 resource_id_value String 资源id的值,即对应资源作为id使用的值,当资源未创建的时候,不返回resource_id_value resource_key String 资源键,如果用户在模板中使用了count或for_each则会返回resource_key 如果用户在模板中使用count,则resource_key为从0开始的数字 以HCL格式的模板为例,模板中count为2,意味着将会生成两个资源,对应的resource_key分别为0和1 resource "huaweicloud_vpc" "my_hello_world_vpc" { count = 2 name = "test_vpc" } 以json格式的模板为例,模板中count为2,意味着将会生成两个资源,对应的resource_key分别为0和1 { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "name": "test_vpc", "count": 2 } } } } 如果用户在模板中使用for_each,则resource_key为用户自定义的字符串 以HCL格式的模板为例,resource_key分别为vpc1和vpc2 resource "huaweicloud_vpc" "my_hello_world_vpc" { for_each = { "vpc1" = "test_vpc" "vpc2" = "test_vpc" } name = each.value } 以json格式的模板为例,resource_key分别为vpc1和vpc2 { "resource": { "huaweicloud_vpc": { "my_hello_world_vpc": { "for_each": { "vpc1": "test_vpc", "vpc2": "test_vpc" } "name": "${each.value}" } } } } time String 事件发生的时间 格式遵循RFC3339,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z event_type String 此次事件的类型 LOG - 记录状态信息,比如当前状态,目标状态等。 ERROR - 记录失败信息 DRIFT - 记录资源偏移信息 SUMMARY - 记录资源变更结果总结 CREATION_IN_PROGRESS - 正在生成 CREATION_FAILED - 生成失败 CREATION_COMPLETE - 生成完成 DELETION_IN_PROGRESS - 正在删除 DELETION_FAILED - 删除失败 DELETION_COMPLETE - 已经删除 UPDATE_IN_PROGRESS - 正在更新。此处的更新特指非替换式更新,如果是替换式更新,则是DELETION后CREATION,或者CREATION后DELETION,具体以何种行为进行替换式更新由Provider定义。 UPDATE_FAILED - 更新失败。此处的更新特指非替换式更新,如果是替换式更新,则是DELETION后CREATION,或者CREATION后DELETION,具体以何种行为进行替换式更新由Provider定义。 UPDATE_COMPLETE - 更新完成。此处的更新特指非替换式更新,如果是替换式更新,则是DELETION后CREATION,或者CREATION后DELETION,具体以何种行为进行替换式更新由Provider定义。 枚举值: LOG ERROR DRIFT SUMMARY CREATION_IN_PROGRESS CREATION_FAILED CREATION_COMPLETE DELETION_IN_PROGRESS DELETION_FAILED DELETION_COMPLETE UPDATE_IN_PROGRESS UPDATE_FAILED UPDATE_COMPLETE event_message String 该资源栈事件对应的详细信息 elapsed_seconds Integer 此事件执行所花的时间,以秒为单位 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 响应参数 状态码: 201 表3 响应Body参数 参数 参数类型 描述 provider_id String 私有provider(private-provider)的唯一Id。 此Id由资源编排服务在生成provider的时候生成,为UUID。 由于私有provider名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有provider,删除,再重新创建一个同名私有provider。 对于团队并行开发,用户可能希望确保,当前我操作的私有provider就是我以为的那个,而不是其他队友删除后创建的同名私有provider。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有provider所对应的Id都不相同,更新不会影响Id。如果给予的provider_id和当前provider的Id不一致,则返回400 最小长度:36 最大长度:36 provider_source String 用户使用私有provider,在Terraform模板中定义required_providers信息时,需要指明的source参数。 该参数按照“huawei.com/private-provider/{provider_name}”的形式拼接。关于provider_name和provider_source字段在模板中的使用细节,详见创建私有Provider的API描述。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 409 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 请求示例 创建一个空的私有provider POST https://{endpoint}/v1/private-providers { "provider_name" : "my-hello-world-provider-name", "provider_description" : "my first private provider" } 创建一个带有版本的的私有provider POST https://{endpoint}/v1/private-providers { "provider_name" : "my-hello-world-provider-name", "provider_description" : "my first hello world private provider", "provider_version" : "0.0.1", "function_graph_urn" : "urn:fss:cn-north-7:a61dfe3154de42829367056598d5040f:function:default:test:latest", "version_description" : "my first private provider version" }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一Id,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 表2 请求Body参数 参数 是否必选 参数类型 描述 provider_name 是 String 私有provider(private-provider)的名称。此名字在domain_id+region下应唯一,可以使用小写英文、数字、中划线。仅支持以小写英文、数字开头结尾。 按照HCL最佳实践,该名称推荐为在模板中定义的provider的本地名称(local_name)。 创建私有Provider(CreatePrivateProvider)API 还会以 “huawei.com/private-provider”为固定前缀,并以“huawei.com/private-provider/{provider_name}”的形式返回provider_source字段。关于provider_name和provider_source字段在模板中的使用细节,详见创建私有Provider的API描述。 最小长度:1 最大长度:64 provider_description 否 String 私有provider(private-provider)的描述。可用于客户识别被管理的私有provider。 最小长度:0 最大长度:1024 provider_version 否 String provider的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义 最小长度:5 最大长度:128 version_description 否 String 私有provider版本(provider version)的描述。可用于客户识别并管理私有provider的版本。注意:provider版本为不可更新(immutable),所以该字段不可更新,如果需要更新,请删除后重建 最小长度:0 最大长度:1024 function_graph_urn 否 String FunctionGraph方法的统一资源标识,用于唯一标识的FunctionGraph方法。当前只支持和 RFS 同region的function_graph_urn,如果给予了关于其他region的,会报错400。 关于该参数的详细解释,请参考官方文档:https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0102.html 最小长度:32 最大长度:256
  • 请求示例 创建资源栈 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks { "stack_name" : "my_first_stack", "description" : "my first stack" } 使用委托创建资源栈 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks { "stack_name" : "my_second_stack", "description" : "my second stack", "agencies" : [ { "provider_name" : "huaweicloud", "agency_name" : "my_agency" } ] } 使用模板的uri创建并部署资源栈 POST https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks { "stack_name" : "my_third_stack", "template_uri" : "https://my_hello_world_bucket.{region}.myhuaweicloud.com/my-hello-world-template.tf", "description" : "my third stack" } 使用模板内容创建并部署资源栈 { "stack_name" : "my_fourth_stack", "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}", "description" : "my fourth stack" }
  • 响应参数 状态码: 201 表8 响应Body参数 参数 参数类型 描述 stack_id String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36 deployment_id String 部署ID 接受请求,进行异步处理。可以调用GetStackMetadata来获取异步请求的部署状态 注意: 部署资源栈后,资源编排服务持久化请求并立即返回,客户端不等待请求最终处理完成,用户无法实时感知请求处理结果 资源编排服务最终会将异步部署请求排队,在服务端空闲的情况下逐个处理。用户最大等待时长为6小时 状态码: 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 包含有关未经授权请求的信息。 状态码: 409 表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 包含有关未经授权请求的信息。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Client-Request-Id 是 String 用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128 表3 请求Body参数 参数 是否必选 参数类型 描述 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128 agencies 否 Array of Agency objects 委托授权的信息。 RFS仅在创建资源栈(触发部署)、创建执行计划、部署资源栈、删除资源栈等涉及资源操作的请求中使用委托,且该委托仅作用于与之绑定的Provider对资源的操作中。如果委托中提供的权限不足,有可能导致相关资源操作失败。 创建委托及授权方式 数组长度:0 - 10 description 否 String 资源栈的描述。可用于客户识别自己的资源栈。 最小长度:0 最大长度:1024 enable_deletion_protection 否 Boolean 删除保护的标识位,如果不传默认为false,即默认不开启资源栈删除保护(删除保护开启后资源栈不允许被删除) 在UpdateStack API中,如果该参数未在RequestBody中给予,则不会对资源栈的删除保护属性进行更新 enable_auto_rollback 否 Boolean 自动回滚的标识位,如果不传默认为false,即默认不开启资源栈自动回滚(自动回滚开启后,如果部署失败,则会自动回滚,并返回上一个稳定状态) 在UpdateStack API中,如果该参数未在RequestBody中给予,则不会对资源栈的自动回滚属性进行更新 该属性与使用模板导入资源功能互斥,如果堆栈的自动回滚设置为true,则不允许部署包含导入资源的模板 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 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 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_uri 否 String HCL参数文件的OBS地址。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 OBS地址支持同类型Region之间进行互相访问(Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region) 资源编排服务支持vars_structure,vars_body和vars_uri,如果以上三种方式中声名了同一个变量,将报错400 vars_uri中的内容使用HCL的tfvars格式,用户可以将“.tfvars”中的内容保存到文件并上传到OBS中,并将OBS pre-signed URL传递给vars_uri。 注意:vars_uri的内容不应该含有任何敏感信息,资源编排服务会直接明文使用、log、展示、存储对应的vars。如为敏感信息,建议通过vars_structure并设置encryption字段传递 最小长度:0 最大长度:2048 表4 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只支持接收普通委托名称,如果给予了信任委托名称,则会在部署模板时失败。 表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
  • 请求示例 获取指定资源栈集的所有资源栈集操作,以创建时间降序排序 GET https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/operations 通过filter获取指定资源栈集在CREATE_STACK_INSTAN CES 和DEPLOY_STACK_SET操作下的所有资源栈集操作,以创建时间降序排序 GET https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/operations?filter=action==CREATE_STACK_INSTANCES|action==DEPLOY_STACK_SET 通过sort_key和sort_dir获取指定资源栈集的所有资源栈集操作,以创建时间升序排序 GET https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/operations?sort_key=create_time&sort_dir=asc
  • 响应示例 状态码: 200 列举资源栈集操作成功 { "stack_set_operations" : [ { "stack_set_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_set_name" : "my_hello_world_stack_set", "operation_id" : "3fef5d3e-27b6-44e8-9769-1d7262bd9430", "status" : "OPERATION_COMPLETE", "action" : "CREATE_STACK_INSTANCES", "create_time" : "2023-05-15T17:39:25.210Z", "update_time" : "2023-05-15T18:39:25.210Z" }, { "stack_set_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_set_name" : "my_hello_world_stack_set", "operation_id" : "8592967b-18b0-421b-b6c1-079c9ded3931", "status" : "OPERATION_FAILED", "action" : "DEPLOY_STACK_SET", "create_time" : "2023-05-15T15:39:25.210Z", "update_time" : "2023-05-15T16:39:25.210Z" } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stack_set_operations Array of StackSetOperation objects 资源栈集操作列表 表5 StackSetOperation 参数 参数类型 描述 operation_id String 资源栈集操作Id。 此ID由资源编排服务在生成资源栈集操作的时候生成,为UUID。 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 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 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。 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。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 429 表10 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。 状态码: 500 表11 响应Body参数 参数 参数类型 描述 error_code String 响应码 最小长度:11 最大长度:11 error_msg String 响应消息 encoded_authorization_message String 包含有关未经授权请求的信息。
  • 功能介绍 列举资源栈集操作(ListStackSetOperations) 列举指定资源栈集下所有的资源栈集的操作。 可以使用filter作为过滤器,过滤出指定操作状态(status)或操作类型(action)下的资源栈集操作。 可以使用sort_key和sort_dir两个关键字对返回结果按创建时间(create_time)进行排序。给予的sort_key和sort_dir数量须一致,否则返回400。如果未给予sort_key和sort_dir,则默认按照创建时间降序排序。 如果指定资源栈集下没有任何资源栈集操作,则返回空list。