华为云用户手册

  • 请求参数 表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 template_body 否 String HCL模板,描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别。 template_body和template_uri 必须有且只有一个存在 在CreateStack API中,template_body和template_uri可以都不给予 注意: template_body中默认不应该含有任何敏感信息,资源编排服务会直接明文使用、log、展示、存储对应的template_body。如为敏感信息,建议将敏感信息通过vars_structure参数化,并设置encryption字段开启加密 template_uri 否 String HCL模板的OBS地址,该模板描述了资源的目标状态。资源编排服务将比较此模板与当前远程资源的状态之间的区别。 请确保OBS地址所在局点与使用 RFS 服务局点一致。 对应的文件应该是纯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 execution_plan_name 是 String 执行计划的名称。此名字在domain_id+区域+project_id+stack_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 description 否 String 执行计划的描述。可用于客户识别自己的执行计划。 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字段开启加密 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字段传递 vars_uri 否 String HCL参数文件的OBS地址。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 请确保OBS地址所在局点与使用RFS服务局点一致。 资源编排服务支持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字段传递 表4 VarsStructure 参数 是否必选 参数类型 描述 var_key 是 String 参数的名字 var_value 是 String 参数的值。 注意,参数需要以字符串形式存在,如果是数字,也需要以字符串形式存在,如'10'。 如果需要支持不同类型,或者复杂结构,请使用vars_uri或vars_body encryption 否 EncryptionStructure object 如果用户传递的var_value是已经加密过的,可以通过声明此项以要求资源编排服务在使用前进行解密,目前暂时只支持KMS加解密 表5 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 表6 KmsStructure 参数 是否必选 参数类型 描述 id 是 String 解密时,资源编排服务应该使用的KMS密钥的ID,通常是加密时所使用的密钥ID cipher_text 是 String 数据加密 密钥所对应的密文
  • 响应参数 状态码: 202 表7 响应Body参数 参数 参数类型 描述 execution_plan_id String 执行计划(execution_plan)的唯一Id。 此Id由资源编排服务在生成执行计划的时候生成,为UUID。 由于执行计划名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的执行计划,删除,再重新创建一个同名执行计划。 对于团队并行开发,用户可能希望确保,当前我操作的执行计划就是我认为的那个,而不是其他队友删除后创建的同名执行计划。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的执行计划所对应的ID都不相同,更新不会影响ID。如果给予的execution_plan_id和当前执行计划的ID不一致,则返回400 注意: 创建执行计划后,资源编排服务持久化请求并立即返回,客户端不等待请求最终处理完成,用户无法实时感知请求处理结果 资源编排服务最终会将异步部署请求排队,在服务端空闲的情况下逐个处理。用户最大等待时长为1小时 状态码: 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 响应消息 状态码: 409 表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 响应消息
  • URI POST /v1/{project_id}/stacks/{stack_name}/execution-plans 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,可以从调用API处获取,也可以从控制台获取。 项目ID获取方式 stack_name 是 String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。
  • 功能介绍 创建执行计划(CreateExecutionPlan) 此API用于在指定的资源栈下生成一个执行计划,执行计划描述了当前资源栈中记录的资源状态和模板描述的目的资源状态之间的区别(如,资源A将以以下配置文件生成,资源B将以下参数从XXX修改成YYY) 调用此API触发创建执行计划之后,可以通过GetExecutionPlanMetadata来跟踪执行计划的状态 当执行计划状态为AVAILABLE时,可以通过GetExecutionPlan获取本次执行计划的结果 执行计划不会做过多深层的检查和校验,如用户是否有权限生成、修改资源等 注意: 创建执行计划时,指定的资源栈必须存在。如果指定的资源栈不存在,则返回404,用户可通过调用创建资源栈(CreateStack)API来创建资源栈。 如果请求中不含有template_body和template_uri,则返回400 如果资源栈进行了某次部署操作,则在该次部署操作前生成的执行计划将全部失效 执行计划只代表生成时刻的结果,如果执行计划生成后,用户手动修改资源状态,则执行计划不会自动更新 如果资源栈状态处于DEPLOYMENT_IN_PROGRESS、ROLLBACK_IN_PROGRESS、DELETION_IN_PROGRESS等状态时,则不允许创建执行计划,并返回403
  • 请求示例 删除私有hook DELETE https://{endpoint}/v1/private-hooks/my-hello-world-hook-name 删除私有hook,并提供hook ID以校验是否与当前私有hook匹配 DELETE https://{endpoint}/v1/private-hooks/my-hello-world-hook-name?hook_id=d3e79f29-1b5c-44b2-8236-d609a59a634e
  • 功能介绍 删除私有hook(DeletePrivateHook) 删除某个私有hook以及私有hook下的全部hook版本 默认版本只能调用本API删除,除默认版本外的其它版本可以调用DeletePrivateHookVersion API删除。 若hook_name和hook_id同时存在,则资源编排服务会检查是否两个匹配,如果不匹配则会返回400。 请谨慎操作,删除私有hook将会删除该私有hook和该私有hook下的所有私有hook版本。
  • 响应参数 状态码: 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 响应消息 状态码: 429 表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 响应消息 状态码: 500 表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 响应消息
  • URI DELETE /v1/private-hooks/{hook_name} 表1 路径参数 参数 是否必选 参数类型 描述 hook_name 是 String 私有hook的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 推荐用户使用三段命名空间:{自定义hook名称}-{hook应用场景}-hook。 表2 Query参数 参数 是否必选 参数类型 描述 hook_id 否 String 私有hook(private-hook)的唯一Id。 此Id由资源编排服务在生成私有hook的时候生成,为UUID。 由于私有hook名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有hook,删除,再重新创建一个同名私有hook。 对于团队并行开发,用户可能希望确保,当前我操作的私有hook就是我认为的那个,而不是其他队友删除后创建的同名私有hook。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有hook所对应的Id都不相同,更新不会影响Id。如果给予的hook_id和当前hook的Id不一致,则返回400。
  • 响应示例 状态码: 200 获取私有hook版本元数据成功 { "hook_name" : "my-hello-world-hook-name", "hook_id" : "1b15e005-bdbb-4bd7-8f9a-a09b6774b4b3", "hook_version" : "1.2.3", "hook_version_description" : "my first hello world private hook version", "create_time" : "1970-01-01T00:00:00.000Z" }
  • 请求示例 获取私有hook版本元数据 GET https://{endpoint}/v1/private-hooks/my-hello-world-hook-name/versions/0.0.1/metadata 获取私有hook版本元数据,并提供hook ID以校验是否与当前私有hook匹配 GET https://{endpoint}/v1/private-hooks/my-hello-world-hook-name/versions/0.0.1/metadata?hook_id=d3e79f29-1b5c-44b2-8236-d609a59a634e
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 hook_name String 私有hook的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 推荐用户使用三段命名空间:{自定义hook名称}-{hook应用场景}-hook。 hook_id String 私有hook(private-hook)的唯一Id。 此Id由资源编排服务在生成私有hook的时候生成,为UUID。 由于私有hook名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有hook,删除,再重新创建一个同名私有hook。 对于团队并行开发,用户可能希望确保,当前我操作的私有hook就是我认为的那个,而不是其他队友删除后创建的同名私有hook。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有hook所对应的Id都不相同,更新不会影响Id。如果给予的hook_id和当前hook的Id不一致,则返回400。 hook_version String 私有hook的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义。 hook_version_description String 私有hook版本的描述。可用于客户识别创建私有hook的版本。注意:hook版本为不可更新(immutable),所以该字段不可更新,如果需要更新,请删除后重建。 create_time String 私有Hook Version(private-hook-version)的生成时间,格式为YYYY-MM-DDTHH:mm:ss.SSSZ,精确到毫秒,UTC时区,即,如1970-01-01T00:00:00.000Z。 状态码: 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 响应消息
  • URI GET /v1/private-hooks/{hook_name}/versions/{hook_version}/metadata 表1 路径参数 参数 是否必选 参数类型 描述 hook_name 是 String 私有hook的名字。此名字在domain_id+region下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 推荐用户使用三段命名空间:{自定义hook名称}-{hook应用场景}-hook。 hook_version 是 String 私有hook的版本号。版本号必须遵循语义化版本号(Semantic Version),为用户自定义。 表2 Query参数 参数 是否必选 参数类型 描述 hook_id 否 String 私有hook(private-hook)的唯一Id。 此Id由资源编排服务在生成私有hook的时候生成,为UUID。 由于私有hook名称仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的私有hook,删除,再重新创建一个同名私有hook。 对于团队并行开发,用户可能希望确保,当前我操作的私有hook就是我认为的那个,而不是其他队友删除后创建的同名私有hook。因此,使用Id就可以做到强匹配。 资源编排服务保证每次创建的私有hook所对应的Id都不相同,更新不会影响Id。如果给予的hook_id和当前hook的Id不一致,则返回400。
  • 响应示例 状态码: 200 列举成功 { "stacks" : [ { "stack_name" : "my_second_stack", "description" : "my second stack", "stack_id" : "4d4f4ece-b291-4c71-8083-bec9b8a44de0", "status" : "DEPLOYMENT_COMPLETE", "create_time" : "2023-05-17T07:34:22Z", "update_time" : "2023-05-17T07:34:44Z" }, { "stack_name" : "my_first_stack", "description" : "my second stack", "stack_id" : "e830c288-ee34-48c0-ba6b-a0e6f6b48d3e", "status" : "CREATION_COMPLETE", "create_time" : "2023-05-17T07:34:06Z", "update_time" : "2023-05-17T07:34:28Z" } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 stacks Array of Stack objects 资源栈列表。默认按照生成时间降序排序,最新生成的在最前 表4 Stack 参数 参数类型 描述 stack_name String 资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 description String 资源栈的描述。可用于客户识别自己的资源栈。 stack_id String 资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 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获得事件详情 create_time String 资源栈的生成时间,格式遵循RFC3339,精确到秒,UTC时区,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z update_time String 资源栈的更新时间,格式遵循RFC3339,精确到秒,UTC时区,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z status_message String 在失败的时候(资源栈状态以FAILED结尾)会显示简要的错误信息总结以供debug 状态码: 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 响应消息
  • 请求示例 获取当前用户(domain)当前局点(region)下全部资源栈集,以创建时间降序返回 GET https://{endpoint}/v1/stack-sets 通过filter获取指定权限模型为SELF_MANAGED下的资源栈集,以创建时间降序返回 GET https://{endpoint}/v1/stack-sets?filter=permission_model==SELF_MANAGED 通过sort_key和sort_dir指定返回的资源栈集列表,以创建时间升序返回 GET https://{endpoint}/v1/stack-sets?sort_key=create_time&sort_dir=asc
  • 响应示例 状态码: 200 列举资源栈集成功 { "stack_sets" : [ { "stack_set_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_set_name" : "my_first_stack_set", "stack_set_description" : "my first stack set", "permission_model" : "SELF_MANAGED", "status" : "IDLE", "create_time" : "2023-05-15T15:39:25.751Z", "update_time" : "2023-05-15T16:39:25.751Z" }, { "stack_set_id" : "b3e7e15f-f96b-4190-94f4-bb8120f8c4dc", "stack_set_name" : "my_second_stack_set", "stack_set_description" : "my second stack set", "permission_model" : "SELF_MANAGED", "status" : "OPERATION_IN_PROGRESS", "create_time" : "2023-05-15T14:39:25.210Z", "update_time" : "2023-05-15T15:39:25.233Z" } ] }
  • URI GET /v1/stack-sets 表1 Query参数 参数 是否必选 参数类型 描述 filter 否 String 过滤条件 与(AND)运算符使用逗号(,)定义 或(OR)运算符使用竖线(|)定义,OR运算符优先级高于AND运算符 不支持括号 过滤运算符仅支持双等号(==) 过滤参数名及其值仅支持包含大小写英文、数字和下划线 过滤条件中禁止使用分号,如果有分号,则此条过滤会被忽略 一个过滤参数仅能与一个与条件相关,一个与条件中的多个或条件仅能与一个过滤参数相关 sort_key 否 Array of strings 排序字段,仅支持给予create_time sort_dir 否 Array of strings 指定升序还是降序 asc - 升序 desc - 降序 call_identity 否 String 仅支持资源栈集权限模式为SERVICE_MANAGED时指定该参数。用于指定用户是以组织管理账号还是成员账号中的服务委托管理员身份调用资源栈集。默认为SELF。 无论指定何种用户身份,创建或部署的资源栈集始终在组织管理账号名下。* SELF - 以组织管理账号身份调用。 DELEGATED_ADMIN - 以服务委托管理员身份调用。用户的华为云账号必须在组织中已经被注册为”资源编排资源栈集服务“的委托管理员。
  • 功能介绍 列举资源栈集(ListStackSets) 此API用于列举当前用户(domain)当前局点(region)下全部资源栈集。 可以使用filter作为过滤器,过滤出指定权限模型(permission_model)下的资源栈集。 可以使用sort_key和sort_dir两个关键字对返回结果按创建时间(create_time)进行排序。给予的sort_key和sort_dir数量须一致,否则返回400。如果未给予sort_key和sort_dir,则默认按照创建时间降序排序。 注意:目前暂时返回全量资源栈集信息,即不支持分页 如果没有任何资源栈集,则返回空list
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 stack_sets Array of StackSet objects 资源栈集 表4 StackSet 参数 参数类型 描述 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下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 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创建资源栈集,否则会报错。 status String 资源栈集的状态 IDLE - 资源栈集空闲 OPERATION_IN_PROGRESS - 资源栈集操作中 DEACTIVATED - 资源栈集禁用 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 表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 响应消息
  • 请求示例 通过Domain Ids Array传递成员账号信息,且指定创建资源栈实例在region间串行进行 POST https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances { "deployment_targets" : { "regions" : [ "cn-north-7" ], "domain_ids" : [ "6cbcca2a2f114a63841bdbc7a19b7b12", "1e03325ba3cc47b1fdb03f3771bbb4f3" ] }, "operation_preferences" : { "region_concurrency_type" : "SEQUENTIAL" } } 通过Domain Ids Signed URL传递成员账号信息,且指定创建资源栈实例在region间并行进行 POST https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances { "deployment_targets" : { "regions" : [ "cn-north-7" ], "domain_ids_uri" : "https://my-obs.obs.cn-north-7.ulanqab.huawei.com/domain_ids.csv" }, "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。
  • 功能介绍 创建资源栈实例(CreateStackInstance) 此API用于在指定资源栈集下生成多个资源栈实例,并返回资源栈集操作ID(stack_set_operation_id) 此API可以通过var_overrides参数,指定创建资源栈实例的参数值,进行参数覆盖。如果var_overrides参数未给予,则默认使用当前资源栈集中记录的参数进行部署,详见:var_overrides参数描述。 通过DeployStackSet API更新资源栈集参数后,资源栈实例中已经被覆盖的参数不会被更新,仍然保留覆盖值。 用户只能覆盖已经在资源栈集中记录的参数,如果用户想要增加可以覆盖的参数,需要先通过DeployStackSet API更新资源栈集记录的参数集合。 用户可以根据资源栈集操作ID(stack_set_operation_id),通过ShowStackSetOperationMetadata API获取资源栈集操作状态
  • 请求示例 通过filter获取指定资源栈集在成员账号domainA和domainB下的资源栈实例 GET https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances?filter=stack_domain_id==stackDomainIdA|stack_domain_id==stackDomainIdB 通过sort_key和sort_dir指定返回的资源栈实例列表,以创建时间升序返回 GET https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances?sort_key=create_time&sort_dir=asc
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 stack_instances Array of StackInstance objects 资源栈实例列表 表5 StackInstance 参数 参数类型 描述 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。 状态码: 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 响应消息
  • 响应示例 状态码: 200 列举资源栈实例成功 { "stack_instances" : [ { "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-17T15:39:25.210Z", "update_time" : "2023-05-18T16:39:25.210Z" }, { "stack_set_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_set_name" : "my_hello_world_stack_set", "latest_stack_set_operation_id" : "fb5e781e-a27d-46e2-9954-242753857a9f", "status" : "OPERATION_FAILED", "status_message" : "Deploy stack failed", "stack_id" : "4abf1770-2760-4339-9c18-427fa115db6a", "stack_name" : "my_hello_world_stack", "stack_domain_id" : "6cbcca2a2f114a63841bdbc7a19b7b12", "region" : "cn-north-7", "create_time" : "2023-05-15T15:39:25.210Z", "update_time" : "2023-05-16T16:39:25.210Z" } ] }
  • 功能介绍 列举资源栈实例(ListStackInstances) 此API用于列举指定资源栈集下指定局点(region)或指定成员账号(stack_domain_id)或全部资源栈实例 可以使用filter作为过滤器,过滤出指定局点(region)或指定成员账号(stack_domain_id)下的资源栈实例 可以使用sort_key和sort_dir两个关键字对返回结果按创建时间(create_time)进行排序。给予的sort_key和sort_dir数量须一致,否则返回400。如果未给予sort_key和sort_dir,则默认按照创建时间降序排序。 如果指定资源栈集下没有任何资源栈实例,则返回空list
  • URI GET /v1/stack-sets/{stack_set_name}/stack-instances 表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 filter 否 String 过滤条件 与(AND)运算符使用逗号(,)定义 或(OR)运算符使用竖线(|)定义,OR运算符优先级高于AND运算符 不支持括号 过滤运算符仅支持双等号(==) 过滤参数名及其值仅支持包含大小写英文、数字和下划线 过滤条件中禁止使用分号,如果有分号,则此条过滤会被忽略 一个过滤参数仅能与一个与条件相关,一个与条件中的多个或条件仅能与一个过滤参数相关 sort_key 否 Array of strings 排序字段,仅支持给予create_time sort_dir 否 Array of strings 指定升序还是降序 asc - 升序 desc - 降序 call_identity 否 String 仅支持资源栈集权限模式为SERVICE_MANAGED时指定该参数。用于指定用户是以组织管理账号还是成员账号中的服务委托管理员身份调用资源栈集。默认为SELF。 无论指定何种用户身份,创建或部署的资源栈集始终在组织管理账号名下。* SELF - 以组织管理账号身份调用。 DELEGATED_ADMIN - 以服务委托管理员身份调用。用户的华为云账号必须在组织中已经被注册为”资源编排资源栈集服务“的委托管理员。
  • 响应示例 状态码: 200 获取成功 { "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7", "stack_name" : "my_hello_world_stack", "execution_plan_id" : "ebc0979a-c617-4382-9147-57fc83a634aa", "execution_plan_name" : "my_first_execution_plan", "status" : "APPLIED", "apply_time" : "2023-05-17T11:56:40Z", "create_time" : "2023-05-16T03:37:24Z", "summary" : { "resource_add" : 2 } }
  • 请求示例 获取指定执行计划的元数据 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/metadata 获取指定执行计划的元数据,并提供资源栈id和执行计划id以校验是否与当前资源栈和执行计划匹配 GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/execution-plans/my_first_execution_plan/metadata?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2&execution_plan_id=fb5e781e-a27d-46e2-9954-242753857a9f
共100000条