列举资源栈资源
功能介绍
列举资源栈资源(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)
支持分页返回。如果响应中存在next_marker,则表示实际总输出比当前响应中包含的输出多。在对请求的后续调用中,在请求参数中使用此值,以获取输出的下一部分。您应该重复此操作,直到next_marker响应元素返回为null
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
GET /v1/{project_id}/stacks/{stack_name}/resources
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,可以从调用API处获取,也可以从控制台获取。 |
stack_name |
是 |
String |
资源栈的名称。此名字在domain_id+区域+project_id下应唯一,可以使用中文、大小写英文、数字、下划线、中划线。首字符需为中文或者英文,区分大小写。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
stack_id |
否 |
String |
资源栈(stack)的唯一Id。 此Id由资源编排服务在生成资源栈的时候生成,为UUID。 由于资源栈名仅仅在同一时间下唯一,即用户允许先生成一个叫HelloWorld的资源栈,删除,再重新创建一个同名资源栈。 对于团队并行开发,用户可能希望确保,当前我操作的资源栈就是我认为的那个,而不是其他队友删除后创建的同名资源栈。因此,使用ID就可以做到强匹配。 资源编排服务保证每次创建的资源栈所对应的ID都不相同,更新不会影响ID。如果给予的stack_id和当前资源栈的ID不一致,则返回400 |
marker |
否 |
String |
分页标记。当一页无法返回所有结果,上一次的请求将返回next_marker以指引还有更多页数,用户可以将next_marker中的值放到此处以查询下一页的信息。此marker只能用于与上一请求指定的相同参数的请求。不指定时默认从第一页开始查询。 |
limit |
否 |
Integer |
每页返回的最多结果数量 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Client-Request-Id |
是 |
String |
用户指定的,对于此请求的唯一ID,用于定位某个请求,推荐使用UUID |
响应参数
状态码:200
参数 |
参数类型 |
描述 |
---|---|---|
stack_resources |
Array of StackResource objects |
资源栈中所管理的资源信息列表 |
page_info |
page_info object |
分页信息 |
参数 |
参数类型 |
描述 |
---|---|---|
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 |
资源的状态
|
status_message |
String |
当该资源状态为任意失败状态(即以 FAILED 结尾时),将会展示简要的错误信息总结以供debug |
resource_attributes |
Array of ResourceAttribute objects |
资源属性列表 |
参数 |
参数类型 |
描述 |
---|---|---|
next_marker |
String |
向后分页标识符。如果存在,则表示实际总输出比当前响应中包含的输出多。在对请求的后续调用中,在请求参数中使用此值,以获取输出的下一部分。您应该重复此操作,直到next_marker响应元素返回为null。 |
previous_marker |
String |
向前分页标识符。 |
current_count |
Integer |
本页显示的条目数量。 |
状态码:400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码:401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码:403
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码:404
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码:429
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
状态码:500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
响应码 |
error_msg |
String |
响应消息 |
encoded_authorization_message |
String |
包含有关未经授权请求的信息。 |
details |
Array of Detail objects |
权限拒绝时服务返回的详细错误信息。 |
请求示例
-
列举资源栈资源
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
响应示例
状态码: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"
} ],
"page_info" : {
"current_count" : 1,
"next_marker" : null,
"previous_marker" : "zxc1oHc08HcCmypYGTsOoRcvoHUvHRUAW5NOSnc1oHc08HcCPZrwP5NOeTlRiukJgtGxeujJeuGwGIihaIUCmypYGTsOtqvKPr2xmH8fPqpGWyQ0axGwGZp9aqvx8pQ7m5FvGTsJiKk7gtNFiuaxetdRCks="
}
}
状态码
状态码 |
描述 |
---|---|
200 |
列举资源栈资源成功 |
400 |
用户请求非法 |
401 |
用户身份认证失败 |
403 |
用户无权限调用此API |
404 |
资源栈不存在 |
429 |
请求数量过多 |
500 |
服务器内部错误 |