获取资源栈元数据
功能介绍
获取资源栈元数据(GetStackMetadata)
此API用于获取指定资源栈的元数据,包括资源栈ID、资源栈名称、资源栈描述、创建时间、更新时间、资源栈状态、委托授权等信息。
具体信息见GetStackMetadataResponseBody。
注:
当资源栈状态处于非终态(即以IN_PROGRESS结尾,详细见下方)状态时,资源栈的元数据信息处于转变阶段,可能为部署前的状态,也可能为部署后的状态。
只有当资源栈状态处于终态(即以COMPLETE或FAILED结尾,详细见下方)时,资源栈的元数据信息才是部署后的状态
非终态状态包括但不限于以下状态:
- 
    
正在部署(DEPLOYMENT_IN_PROGRESS)
 - 
    
正在回滚(ROLLBACK_IN_PROGRESS)
 - 
    
正在删除(DELETION_IN_PROGRESS)
 
终态状态包括但不限于以下状态:
- 
    
生成空资源栈完成(CREATION_COMPLETE)
 - 
    
部署失败(DEPLOYMENT_FAILED)
 - 
    
部署完成(DEPLOYMENT_COMPLETE)
 - 
    
回滚失败(ROLLBACK_FAILED)
 - 
    
回滚完成(ROLLBACK_COMPLETE)
 - 
    
删除失败(DELETION_FAILED)
 
URI
GET /v1/{project_id}/stacks/{stack_name}/metadata
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        project_id  | 
      
        是  | 
      
        String  | 
      
        项目ID,可以从调用API处获取,也可以从控制台获取。 最小长度:3 最大长度:64  | 
     
| 
        stack_name  | 
      
        是  | 
      
        String  | 
      
        资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128  | 
     
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        stack_id  | 
      
        否  | 
      
        String  | 
      
        资源栈(stack)的唯一ID。 此ID由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36  | 
     
请求参数
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        Client-Request-Id  | 
      
        是  | 
      
        String  | 
      
        用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID 最小长度:36 最大长度:128  | 
     
响应参数
状态码:200
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        stack_id  | 
      
        String  | 
      
        资源栈(stack)的唯一ID。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 最小长度:36 最大长度:36  | 
     
| 
        stack_name  | 
      
        String  | 
      
        资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 最小长度:1 最大长度:128  | 
     
| 
        description  | 
      
        String  | 
      
        资源栈的描述。可用于客户识别自己的资源栈。 最小长度:0 最大长度:1024  | 
     
| 
        vars_structure  | 
      
        Array of VarsStructure objects  | 
      
        HCL参数结构。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 
 或者用户可以使用vars_uri、vars_body,vars_uri和vars_body中支持HCL支持的各种类型以及复杂结构 数组长度:0 - 100  | 
     
| 
        vars_body  | 
      
        String  | 
      
        HCL参数文件的内容。HCL模板支持参数传入,即,同一个模板可以给予不同的参数而达到不同的效果。 
 最小长度:0 最大长度:51200  | 
     
| 
        enable_deletion_protection  | 
      
        Boolean  | 
      
        删除保护的标识位,如果不传默认为false,即默认不开启资源栈删除保护(删除保护开启后资源栈不允许被删除) 在UpdateStack API中,如果该参数未在RequestBody中给予,则不会对资源栈的删除保护属性进行更新  | 
     
| 
        enable_auto_rollback  | 
      
        Boolean  | 
      
        自动回滚的标识位,如果不传默认为false,即默认不开启资源栈自动回滚(自动回滚开启后,如果部署失败,则会自动回滚,并返回上一个稳定状态) 在UpdateStack API中,如果该参数未在RequestBody中给予,则不会对资源栈的自动回滚属性进行更新 该属性与使用模板导入资源功能互斥,如果资源栈的自动回滚设置为true,则不允许部署包含导入资源的模板  | 
     
| 
        status  | 
      
        String  | 
      
        资源栈的状态 
  | 
     
| 
        agencies  | 
      
        Array of Agency objects  | 
      
        委托授权的信息。 RFS仅在创建资源栈(触发部署)、创建执行计划、部署资源栈、删除资源栈等涉及资源操作的请求中使用委托,且该委托仅作用于与之绑定的Provider对资源的操作中。如果委托中提供的权限不足,有可能导致相关资源操作失败。 数组长度:0 - 10  | 
     
| 
        status_message  | 
      
        String  | 
      
        当资源栈的状态为任意失败状态(即以 FAILED 结尾时),将会展示简要的错误信息总结以供debug  | 
     
| 
        vars_uri_content  | 
      
        String  | 
      
        vars_uri对应的文件内容  | 
     
| 
        create_time  | 
      
        String  | 
      
        资源栈的生成时间 格式遵循RFC3339,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z  | 
     
| 
        update_time  | 
      
        String  | 
      
        资源栈的更新时间(更新场景包括元数据更新场景和部署场景) 格式遵循RFC3339,即yyyy-mm-ddTHH:MM:SSZ,如1970-01-01T00:00:00Z  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        var_key  | 
      
        String  | 
      
        参数的名字 最小长度:1 最大长度:32  | 
     
| 
        var_value  | 
      
        String  | 
      
        参数的值。 注意,参数需要以字符串形式存在,如果是数字,也需要以字符串形式存在,如'10'。 如果需要支持不同类型,或者复杂结构,请使用vars_uri或vars_body 最小长度:0 最大长度:2048  | 
     
| 
        encryption  | 
      
        EncryptionStructure object  | 
      
        如果用户传递的var_value是已经加密过的,可以通过声明此项以要求资源编排服务在使用前进行解密,目前暂时只支持KMS加解密  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        kms  | 
      
        KmsStructure object  | 
      
        如果用户给予的var_value是经过KMS加密的,可以通过传递相关加密信息,资源编排服务在使用的时候会帮助用户进行KMS解密 更多关于KMS加密以及KMS加密的样例代码请见:KMS加密使用场景介绍 注意: 
  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        id  | 
      
        String  | 
      
        解密时,资源编排服务应该使用的KMS密钥的ID,通常是加密时所使用的密钥ID 最小长度:36 最大长度:36  | 
     
| 
        cipher_text  | 
      
        String  | 
      
        数据加密密钥所对应的密文 最小长度:2 最大长度:2048  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        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。  | 
     
状态码:400
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:401
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:403
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:404
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:429
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
状态码:500
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        error_code  | 
      
        String  | 
      
        响应码 最小长度:11 最大长度:11  | 
     
| 
        error_msg  | 
      
        String  | 
      
        响应消息  | 
     
| 
        encoded_authorization_message  | 
      
        String  | 
      
        包含有关未经授权请求的信息。  | 
     
| 
        details  | 
      
        Array of Detail objects  | 
      
        权限拒绝时服务返回的详细错误信息。  | 
     
请求示例
- 
    
获取资源栈元数据
GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/metadata - 
    
获取资源栈元数据,并提供资源栈id以校验是否与当前资源栈匹配
GET https://{endpoint}/v1/ba2b9930c977f71edaeaa3a5e96a8ff1/stacks/my_hello_world_stack/metadata?stack_id=ea6a4f0e-ee8a-494e-b12a-8be4a1e65af2 
响应示例
状态码:200
获取成功
{
  "stack_id" : "f689e9fd-97e7-4185-bd8a-7d5f708d45d7",
  "stack_name" : "my_hello_world_stack",
  "description" : "my hello world stack",
  "enable_deletion_protection" : false,
  "enable_auto_rollback" : false,
  "status" : "DEPLOYMENT_COMPLETE",
  "agencies" : [ {
    "agency_name" : "rf_admin_trust",
    "provider_name" : "huaweicloud"
  } ],
  "create_time" : "2023-03-16T03:28:20Z",
  "update_time" : "2023-05-24T08:56:10Z"
}
 状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        200  | 
      
        获取成功  | 
     
| 
        400  | 
      
        用户请求非法  | 
     
| 
        401  | 
      
        用户身份认证失败  | 
     
| 
        403  | 
      
        用户无权限调用此API  | 
     
| 
        404  | 
      
        资源栈不存在  | 
     
| 
        429  | 
      
        请求数量过多  | 
     
| 
        500  | 
      
        服务器内部错误  |