华为云用户手册

  • URI POST /v2/{project_id}/blockchains/{blockchain_id}/orgs/{org_name}/usercert/{user_name}/freeze 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户从 IAM 申请到的项目ID,一般为32位字符串 user_name 是 String userName blockchain_id 是 String blockchainID org_name 是 String orgName
  • 概述 欢迎使用华为云 区块链 引擎服务(Huawei Cloud Blockchain Service,简称HBS)。华为云区块链引擎服务可以帮助您在云上快速部署、管理、维护区块链网络,降低您使用区块链的门槛,让您专注于自身业务的开发与创新,实现业务快速上链。 HBS除了提供web界面管理运维资源之外,还提供了API调用方式,便于用户集成自有管理系统,实现定制化管理入口。可以使用本文档提供API对华为云区块链引擎服务进行相关操作,如创建、查询等。具体API请参考API(华为云区块链引擎)。 在调用华为云区块链引擎服务API之前,请确保已经充分了解华为云区块链引擎服务基本概念与知识。 华为云区块链引擎服务的API接口为公测特性(beta),且仅支持“华北-北京四”区域。 父主题: 使用前必读
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 metrics Array of EntityMetricList objects 指标对象列表。 表5 EntityMetricList 参数 参数类型 描述 dimensions Array of Dimension objects 指标对象列表。 values Array of EntityMetricListItem objects 监控数据列表项目。 表6 Dimension 参数 参数类型 描述 name String 维度名称。 value String 维度取值。 表7 EntityMetricListItem 参数 参数类型 描述 cpuUsage String cpu使用率 diskReadRate String 磁盘读取速率 diskWriteRate String 磁盘写入速率 memUsage String 物理内存使用率 recvBytesRate String 下行BPs sendBytesRate String 上行BPs filesystemUsage String 文件系统使用率 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 403 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 200 Ok { "metrics" : [ { "dimensions" : [ { "name" : "cluster", "value" : "abc" } ], "values" : [ { "cpuUsage" : 0.175, "diskReadRate" : 0, "diskWriteRate" : 0, "memUsage" : 1.252, "recvBytesRate" : 1703.617, "sendBytesRate" : 2438.85, "filesystemUsage" : 9.344 } ] } ] } 状态码: 400 Bad Request { "error_code" : " BCS .4004024", "error_msg" : "invalid org name input" } 状态码: 401 Unauthorized { "error_code" : "B CS .4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token,通过调用IAM服务获取用户Token接口获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 type 是 String 实体类型,[可选值如下: org(节点组织), plugin(插件)] 默认为org entity_name 否 String 具体实体的名称
  • 响应示例 状态码: 200 Ok { "basic_info" : { "id" : "50ca216f-f0e5-ea05-5aee-de8d8f0fb6fa", "name" : "bcs-vqf1x5", "version" : "3.0.7", "service_type" : "union", "purchase_type" : "", "sign_algorithm" : "ECDSA", "consensus" : "sflic", "charging_mode" : 1, "version_type" : 3, "database_type" : "goleveldb", "cluster_id" : "aaace2ac-c18b-11ea-aefb-0255ac100022", "cluster_name" : "roma-cluster", "cluster_type" : "", "cluster_platform_type" : "", "cluster_az" : "", "created_time" : "2020-07-22T04:03:44Z", "deploy_type" : "", "order_fade_enabled" : false, "order_fade_cache" : 0, "is_cross_region" : false, "is_support_rollback" : false, "is_support_restful" : false, "is_old_service" : false, "old_service_version" : "", "agent_portal_addrs" : [ "24.68.213.148:30603" ], "status" : "Normal", "process_status" : "", "order_status" : 0, "deploy_status" : 0, "block_info" : { "batch_timeout" : 2, "max_message_count" : 500, "preferred_maxbytes" : 2 }, "is_support_tc3" : false }, "channels" : [ { "name" : "channel", "org_names" : [ "organization" ], "org_name_hash" : [ "organization:8ba7c7c2e84e57d1f16bd4739245e78aa2b08d3d" ], "peers" : { "8ba7c7c2e84e57d1f16bd4739245e78aa2b08d3d" : [ "peer-8ba7c7c2e84e57d1f16bd4739245e78aa2b08d3d-0.peer-8ba7c7c2e84e57d1f16bd4739245e78aa2b08d3d.default.svc.cluster.local", "peer-8ba7c7c2e84e57d1f16bd4739245e78aa2b08d3d-1.peer-8ba7c7c2e84e57d1f16bd4739245e78aa2b08d3d.default.svc.cluster.local" ] } } ], "peer_info" : [ { "name" : "organization", "node_cnt" : 2, "status" : "Normal", "status_detail" : "2/2", "pvc_name" : "" } ], "light_peer_info" : [ ], "orderer_info" : { "name" : "bcs-vqf1x5-orderer", "node_cnt" : 4, "status" : "Normal", "status_detail" : "4/4", "address" : [ { "domain_port" : "orderer-7d5c1e483233482cfe8c8b003e003da45f07d545-0.orderer-7d5c1e483233482cfe8c8b003e003da45f07d545.default.svc.cluster.local:7050", "ip_port" : "24.68.213.148:30835" }, { "domain_port" : "orderer-7d5c1e483233482cfe8c8b003e003da45f07d545-1.orderer-7d5c1e483233482cfe8c8b003e003da45f07d545.default.svc.cluster.local:7050", "ip_port" : "24.68.213.148:30836" }, { "domain_port" : "orderer-7d5c1e483233482cfe8c8b003e003da45f07d545-2.orderer-7d5c1e483233482cfe8c8b003e003da45f07d545.default.svc.cluster.local:7050", "ip_port" : "24.68.213.148:30837" }, { "domain_port" : "orderer-7d5c1e483233482cfe8c8b003e003da45f07d545-3.orderer-7d5c1e483233482cfe8c8b003e003da45f07d545.default.svc.cluster.local:7050", "ip_port" : "24.68.213.148:30838" } ], "pvc_name" : "" }, "couch_db_info" : { "user" : "" }, "dms_kafka_info" : { "order_fade_enable" : false, "order_fade_cache" : 0, "status" : "", "status_detail" : "" }, "ief_info" : { "deploy_mode" : 0 }, "sfs_info" : { "pvc_name" : "", "name" : "", "addr" : "", "type" : "host" }, "agent_info" : { "name" : "baas-agent", "node_cnt" : 0, "status" : "Normal", "status_detail" : "1/1", "pvc_name" : "" }, "restapi_info" : { "name" : "", "node_cnt" : 0, "status" : "", "status_detail" : "", "pvc_name" : "" }, "tc3_taskserver_info" : { "name" : "", "node_cnt" : 0, "status" : "", "status_detail" : "", "pvc_name" : "" }, "obs_bucket_info" : { "name" : "", "addr" : "" } } 状态码: 400 Bad Request { "error_code" : "BCS.4006005", "error_msg" : "keyType error, keyType: blok not supported" } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 响应示例 状态码: 200 Ok { "blockchains" : [ { "id" : "b268e1ca-b5c2-28f1-1e57-f571e14ecdbd", "name" : "marbles" }, { "id" : "75022dfb-e186-539e-cbc7-14020c934dd0", "name" : "bcs-api" }, { "id" : "04a33954-c707-4ab5-9d1a-b5e37624e56e", "name" : "bcs-orgs" }, { "id" : "4265b6ac-c7fd-b851-7dbc-1572364da341", "name" : "bcs-dz8lo7" } ], "count" : 3 } 状态码: 400 Bad Request { "error_code" : "BCS.4006005", "error_msg" : "keyType error, keyType: blok not supported" } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 blockchains Array of BlockchainInfo objects 服务实例简要信息 count Long 实例总数 表4 BlockchainInfo 参数 参数类型 描述 id String 服务实例ID name String 服务实例名称 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 200 Ok { "node_orgs" : { "organization" : { "org_msp_id" : "328000cb35d8971e0b0388f6182f95eaa4100784MSP", "org_domain" : "peer-328000cb35d8971e0b0388f6182f95eaa4100784.default.svc.cluster.local", "peers" : { "peer-328000cb35d8971e0b0388f6182f95eaa4100784-0" : { "channels" : [ "channel" ], "ip_port" : "100.93.3.32:30605" }, "peer-328000cb35d8971e0b0388f6182f95eaa4100784-1" : { "channels" : [ "channel" ], "ip_port" : "100.93.3.32:30606" } } } } } 状态码: 400 Bad Request { "error_code" : "BCS.4006005", "error_msg" : "keyType error, keyType: blok not supported" } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 购买HBS实例 接口相关信息 URI格式 :POST /v2/{project_id}/huaweicloudchain/instances 请求示例 POST https://{bcs_endpoint}/v2/{project_id}/huaweicloudchain/instances {bcs_endpoint}信息请从地区和终端节点获取,{project_id}信息请参考获取项目ID。 Body: "name" : "huawei-chain-01", "edition" : "Professional", "data_management" : "Cloud", "orgs" : [ { "name" : "org1" }, { "name" : "org2" } ], "chain_info" : { "consensus" : "raft", "sign_algorithm" : "ecdsa_with_sha256" }, "org_order_info" : { "charge_mode" : 0, "period_type" : 2, "period_num" : 1, "is_auto_pay" : true, "is_auto_renew" : true } } 响应示例 { "order_id" : "CS2205101612RBMZD", "order_num" : 2, "instance_id" : "e224e6b6-e215-11ec-9675-0255ac101552", "job_id" : "e9541c1a-e17e-11ec-9826-0255ac10040d" }
  • 响应参数 状态码: 200 表7 响应Body参数 参数 参数类型 描述 result String 请求成功的结果 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 401 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 403 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • 请求示例 拒绝被邀请方邀请 { "channel_name" : "channel", "invited_orgs" : [ { "name" : "organization" } ], "invitor_info" : { "invitor_user_id" : "051dded56100d4f90fe6c01d7d7a9240", "invitor_bcs_id" : "6a9062bb-6aaf-a1cc-1756-7f45f9e0ea11", "invitor_project_id" : "051dded75a80d4fb2f38c01d64a5789e", "invitor_bcs_name" : "invitor-xxx" }, "invitee_info" : { "invitee_user_id" : "051ddda48580d3371fc6c014ba7175b5", "invitee_bcs_id" : "6a9062bb-6aaf-a1cc-1756-7f45f9e0ea11", "invitee_project_id" : "051dded75a80d4fb2f38c01d64a5789e", "invitee_bcs_name" : "invitee-xxx" }, "status" : "reject" }
  • 响应示例 状态码: 200 Ok { "result" : "success" } 状态码: 400 Bad Request { "error_code" : "BCS.4006014", "error_msg" : "Invalid Parameter quotasType : ecs" } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 响应示例 状态码: 200 Ok { "channels" : [ { "name" : "channel", "peers" : { "organization" : [ "peer-328000cb35d8971e0b0388f6182f95eaa4100784-0", "peer-328000cb35d8971e0b0388f6182f95eaa4100784-1" ] }, "consensusNodes" : { "organization" : [ "peer-328000cb35d8971e0b0388f6182f95eaa4100784-0" ] }, "consensus" : "etcdraft", "description" : "", "create_time" : "2020-10-15T10:24:51Z" } ] } 状态码: 400 Bad Request { "error_code" : "BCS.4006005", "error_msg" : "keyType error, keyType: blok not supported" } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 响应示例 状态码: 200 Ok { "enterprise_spec" : { "org_peer_max_num" : 5, "orderer_max_num" : 10, "member_max_num" : 50 } } 状态码: 400 Bad Request { "error_code" : "BCS.4006005", "error_msg" : "keyType error, keyType: blok not supported" } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • URI GET /v2/{project_id}/blockchains/flavors 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户从IAM申请到的projectid,一般为32位字符串。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 取值范围(0,1000],默认值为1000。用于限制本次返回的结果数据条数。 offset 否 Integer 分页查询起始位置,为非负整数。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 enterprise_spec InstanceSpc object 企业版联盟链规格 表5 InstanceSpc 参数 参数类型 描述 org_peer_max_num Long 单个组织支持的最大peer节点数量 orderer_max_num Long 单个联盟链支持的最大order节点数量 member_max_num Integer 单个联盟链支持的最大租户数量 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 401 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 403 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 200 Ok { "operation_id" : "B CSS VC01-03-1617158790255323683" } 状态码: 400 Bad Request { "error_code" : "BCS.4001245", "error_msg" : "The org name is invalid..." } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 operation_id String 操作记录id 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • URI PUT /v2/{project_id}/blockchains/{blockchain_id}/{channel_id}/peers/quit 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户从IAM申请到的projectid,一般为32位字符串。 blockchain_id 是 String 区块链服务id。可调用“查询服务实例列表”接口获取ID channel_id 是 String 区块链通道名称。可调用“查询实例信息”接口获取,接口返回的“channels”中的name字段值
  • 策略及授权项说明 如果您需要对您所拥有的华为云区块链引擎服务进行精细的权限管理,您可以使用 统一身份认证 服务(Identity and Access Management,简称IAM),如果华为云账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章节,不影响您使用华为云区块链引擎服务的其它功能。 策略是以JSON格式描述权限集的语言。默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。 根据授权的精细程度,分为角色和策略。角色以服务为粒度,是IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。策略以API接口为粒度进行权限拆分,授权更加精细,可以精确到某个操作、资源和条件,能够满足企业对权限最小化的安全管控要求。 华为云区块链引擎的策略说明请参考权限管理。 如果您需要允许或者禁止某个接口的操作权限,请使用策略。 支持的授权项 策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project): 自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 父主题: 权限策略说明
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参考AK/SK认证。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 1 2 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,cn-north-4为项目名称,获取方法请参考终端节点。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参考获取用户Token。 非华为云账号 获取Token 请参考获取用户Token。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "cn-north-4" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme: 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint: 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如:HBS服务在“华北-北京四”区域的Endpoint为“bcs.cn-north-4.myhuaweicloud.com”。 resource-path: 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string: 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 响应消息体 响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中Content-Type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 1 2 3 4 5 6 7 8 9 10 11 12 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "az-01", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息。
  • 响应示例 状态码: 200 Ok { "metrics" : [ { "metric" : { "namespace" : "abc", "metricName" : "def", "dimensions" : [ { "name" : "ghi", "value" : "lmn" } ] }, "dataPoints" : [ { "timestamp" : "1467892800000", "unit" : "Percent", "statistics" : [ { "statistic" : "maximum", "value" : "23" } ] } ] } ] } 状态码: 400 Bad Request { "error_code" : "BCS.4001108", "error_msg" : "metric names is wrong" } 状态码: 401 Unauthorized { "error_code" : "BCS.4010401", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "BCS.4030403", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "BCS.4040404", "error_msg" : "Not Found:the url is not found" } 状态码: 500 InternalServerError { "error_code" : "BCS.5000500", "error_msg" : "Internal Server Error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取。 表3 请求Body参数 参数 是否必选 参数类型 描述 metric_names 否 Array of strings 指标列表 取值范围 cpuUsage:CPU使用率 diskUsedRate:磁盘使用率 memUsedRate:物理内存使用率 sendBytesRate:上行Bps recvBytesRate:下行Bps cpuCoreLimit:CPU内核总量 cpuCoreUsed:CPU内核占用 totalMem:物理内存总量 freeMem:可用物理内存 diskCapacity:磁盘空间容量 diskAvailableCapacity:可用磁盘空间 默认值:前5项
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 metrics Array of MetricItemResultAPI objects 指标对象列表。 表5 MetricItemResultAPI 参数 参数类型 描述 metric MetricDemision object 指标描述信息 dataPoints Array of MetricDataPoints objects 监控数据信息 表6 MetricDemision 参数 参数类型 描述 namespace String 命名空间 metricName String 指标名称 dimensions Array of Dimension objects 维度列表 表7 Dimension 参数 参数类型 描述 name String 维度名称。 value String 维度取值。 表8 MetricDataPoints 参数 参数类型 描述 timestamp Long 时间戳。 unit String 指标单位。 statistics Array of StatisticValue objects 统计方式。 表9 StatisticValue 参数 参数类型 描述 statistic String 统计方式。 value Double 统计结果。 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 401 表11 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 403 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表14 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参考API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
共100000条