华为云用户手册

  • 开启跨域访问 API网关默认不开启跨域访问,如果您需要开启,请参考以下说明完成跨域配置。如需自定义跨域的请求头、跨域的请求方法和指定授权访问的域,请使用跨域资源共享策略说明。 简单请求的跨域访问 如果是创建新的API,在“安全配置”时,打开“支持跨域(CORS)”开关。详细的使用指导,可参考简单请求。 非简单请求的跨域访问 非简单请求的跨域访问需要在API的分组中创建一个“请求方法”为“OPTIONS”的API,作为预检请求。 预检请求API的参数设置,请参考以下说明填写。详细的使用指导可参考非简单请求。 在“前端定义”中,参数填写说明如下: 请求方法:选择“OPTIONS” 请求协议:选择与已开启CORS的API相同的请求协议 路径:填斜杠/ 图2 预检请求-定义API请求 在“安全配置”中,安全认证选“无认证”,勾选“开启支持跨域CORS”。 图3 预检请求-使用无认证方式 后端配置选择“Mock”。 图4 预检请求-后端选Mock
  • 非简单请求 对于非简单请求,您需要开启跨域访问,并且创建一个“请求方法”为“OPTIONS”的API。 跨域共享资源策略不需要创建一个“请求方法”为“OPTIONS”的API。 “请求方法”为“OPTIONS”的API和普通API的区别如下: 所属分组:选择已开启CORS的API所在的分组。 请求方法:选择“OPTIONS”。 请求协议:选择与已开启CORS的API相同的请求协议。 路径:填斜杠/即可,也可选择与已开启CORS的API相同或者匹配的请求Path。 安全认证:可选择“无认证”。无论选择哪种认证方式,API网关都按照无认证处理。 支持跨域CORS:选择开启CORS。 假设后端服务类型为Mock,示例如下: 浏览器发送“请求方法”为“OPTIONS”的API请求: OPTIONS /HTTP/1.1User-Agent: curl/7.29.0Host: localhostAccept: */*Origin: http://www.cors.comAccess-Control-Request-Method: PUT Access-Control-Request-Headers: X-Sdk-Date Origin:此字段必选,表示请求消息所属源。 Access-Control-Request-Method:此字段必选,表示请求会使用哪些HTTP请求方法。 Access-Control-Request-Headers:此字段可选,表示请求会额外发送的头信息字段。 后端服务返回消息:无 API网关返回消息: HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 02:38:48 GMTContent-Type: application/jsonContent-Length: 1036Server: api-gatewayX-Request-Id: c9b8926888c356d6a9581c5c10bb4d11Access-Control-Allow-Origin: *Access-Control-Allow-Headers: X-Stage,X-Sdk-Date,X-Sdk-Nonce,X-Proxy-Signed-Headers,X-Sdk-Content-Sha256,X-Forwarded-For,Authorization,Content-Type,Accept,Accept-Ranges,Cache-Control,RangeAccess-Control-Expose-Headers: X-Request-Id,X-Apig-Latency,X-Apig-Upstream-Latency,X-Apig-RateLimit-Api,X-Apig-RateLimit-User,X-Apig-RateLimit-App,X-Apig-RateLimit-Ip,X-Apig-RateLimit-Api-AllenvAccess-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS,PATCHAccess-Control-Max-Age: 172800 Access-Control-Allow-Origin:此字段必选,“*”表示API网关接受任意域的请求。 Access-Control-Allow-Headers:当请求消息中包含此字段时,此字段必选。表示允许跨域的所有请求头信息字段。 Access-Control-Expose-Headers:表示跨域访问允许查看的返回头信息字段。 Access-Control-Allow-Methods:此字段必选,表示API网关支持的所有HTTP请求方法。 Access-Control-Max-Age:此字段可选,表示本次预检的有效期,单位:秒。在有效期内,无需再次发出预检请求。 浏览器发送一个带Origin字段的请求头: PUT /simple HTTP/1.1Host: www.test.comOrigin: http://www.cors.comContent-Type: application/x-www-form-urlencoded; charset=utf-8Accept: application/jsonDate: Tue, 15 Jan 2019 01:25:52 GMT 后端服务返回消息: HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: api-gateway{"status":"200"} API网关返回消息: HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: api-gatewayX-Request-Id: 454d689fa69847610b3ca486458fb08bAccess-Control-Allow-Origin: *{"status":"200"}
  • 简单请求 对于简单请求,您需要开启简单跨域访问。 场景一:已开启CORS,且后端服务响应消息中未指定跨域头时,API网关接受任意域的请求,并返回“Access-Control-Allow-Origin”跨域头,示例如下: 浏览器发送一个带Origin字段的请求消息: GET /simple HTTP/1.1Host: www.test.comOrigin: http://www.cors.comContent-Type: application/x-www-form-urlencoded; charset=utf-8Accept: application/jsonDate: Tue, 15 Jan 2019 01:25:52 GMT Origin:此字段必选,表示请求消息所属源,上例中请求来源于“http://www.cors.com”,API网关/后端服务根据这个值,决定是否同意本次请求。 后端服务返回响应消息: HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: api-gateway{"status":"200"} API网关响应消息: HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: api-gatewayX-Request-Id: 454d689fa69847610b3ca486458fb08bAccess-Control-Allow-Origin: *{"status":"200"} Access-Control-Allow-Origin:此字段必选,“*”表示API网关接受任意域的请求。 场景二:已开启CORS,且后端服务响应消息中指定跨域头时,后端服务响应的跨域头将覆盖API网关增加的跨域头,示例如下: 浏览器发送一个带Origin字段的请求消息: GET /simple HTTP/1.1Host: www.test.comOrigin: http://www.cors.comContent-Type: application/x-www-form-urlencoded; charset=utf-8Accept: application/jsonDate: Tue, 15 Jan 2019 01:25:52 GMT Origin:此字段必选,表示请求消息所属源,上例中请求来源于“http://www.cors.com”,API网关/后端服务根据这个值,决定是否同意本次请求。 后端服务返回响应消息: HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: api-gatewayAccess-Control-Allow-Origin: http://www.cors.com{"status":"200"} Access-Control-Allow-Origin:表示后端服务接受“http://www.cors.com”的请求。 API网关响应消息: HTTP/1.1 200 OKDate: Tue, 15 Jan 2019 01:25:52 GMTContent-Type: application/jsonContent-Length: 16Server: api-gatewayX-Request-Id: 454d689fa69847610b3ca486458fb08bAccess-Control-Allow-Origin: http://www.cors.com{"status":"200"} 后端服务响应消息中的跨域头覆盖API网关响应消息中的跨域头。
  • 什么是跨域访问 浏览器出于安全性考虑,会限制从页面脚本内发起的跨域访问(CORS)请求,此时页面只能访问同源的资源,而CORS允许浏览器向跨域服务器,发送XMLHttpRequest请求,从而实现跨域访问。 图1 跨域访问 浏览器将CORS请求分为两类: 简单请求 简单跨域请求的场景需要满足以下两个条件: 请求方法是HEAD,GET,或者POST。 HTTP的头信息不超出以下范围: Accept Accept-Language Content-Language Last-Event-ID Content-Type:取值范围:application/x-www-form-urlencoded、multipart/form-data、text/plain 对于简单请求,浏览器自动在头信息之中,添加一个Origin字段,Origin字段用于说明本次请求来自哪个源(协议+域名+端口)。服务器根据这个值,决定是否同意这次请求。服务器响应消息中包含“Access-Control-Allow-Origin”时,表示同意请求。 非简单请求 不满足简单请求两个条件的都为非简单请求。 对于非简单请求,在正式通信之前,浏览器会增加一次HTTP查询请求,称为预检请求。浏览器询问服务器,当前页面所在的源是否在服务器的许可名单之中,以及可以使用哪些HTTP请求方法和头信息字段。预检通过后,浏览器向服务器发送简单请求。
  • 配置参数说明 表1 配置参数说明 信息项 描述 密钥名称 自定义名称,用于识别不同的密钥。 类型 选择签名密钥的认证类型,可选择“HMAC”、“Basic Auth”、“AES”和“Public Key”。 在实例的配置参数中开启“public_key_enable”功能后,才支持选择“Public Key”类型。 签名算法 选择aes的签名算法,包含以下两种: aes-128-cfb aes-256-cfb Key 根据选择的密钥类型,填写不同的密钥信息。 HMAC:填写APP认证所使用密钥对的Key。 Basic Auth:填写basic认证所使用的用户名。 aes:填写aes认证所使用的密钥key。 Public Key:填写public_key认证所使用的公钥。 Secret 根据选择的密钥类型,填写不同的密钥信息。 HMAC:填写APP认证所使用密钥对的Secret。 Basic Auth:填写basic认证所使用的密码。 aes:填写aes认证所使用的向量。 Public Key:填写Public Key认证所使用的私钥。 确认Secret 填写与Secret一致的值。
  • API网关自定义策略样例 示例1:授权用户创建API、调试API的权限 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ " apig:apis:create apig:apis:debug " ] } ]} 示例2:拒绝用户创建API分组 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。 如果您给用户授予APIG FullAccess的系统策略,但不希望用户拥有APIG FullAccess中定义的创建API分组权限,您可以创建一条拒绝创建API分组的自定义策略,然后同时将APIG FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以执行除创建API分组外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "apig:groups:create" ] } ]}
  • 注意事项 仅支持华为云 CCE Turbo 集群、VPC网络模型的CCE集群。 您需要确保当前实例与CCE集群所属同一个VPC中,或通过其他方式保证两者网络可达,否则导入后调用API会出现失败场景。 选择VPC网络模型的CCE集群时,您需要在实例详情界面的路由配置中添加CCE集群的容器网段,否则导入后调用API会出现失败场景。 导入后会生成相应的API以及微服务类型的负载通道,负载通道会监测工作负载下所有实例的地址变化,并更新到负载通道中。
  • API网关自定义策略样例 示例1:授权用户创建API、调试API的权限 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ " apig:apis:create apig:apis:debug " ] } ]} 示例2:拒绝用户创建API分组 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。 如果您给用户授予APIG FullAccess的系统策略,但不希望用户拥有APIG FullAccess中定义的创建API分组权限,您可以创建一条拒绝创建API分组的自定义策略,然后同时将APIG FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以执行除创建API分组外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ " apig:apis:create apig:apis:debug " ] } ]}
  • API网关监控指标 表1 API网关监控指标说明 指标ID 指标名称 含义 取值范围 测量对象&维度 监控周期(原始指标) requests 接口调用次数 统计测量api接口被调用的次数。 ≥0 测量对象:专享版API网关实例 测量维度:instance_id 1分钟 error_4xx 4xx异常次数 统计测量api接口返回4xx错误的次数。 ≥0 测量对象:专享版API网关实例 测量维度:instance_id 1分钟 error_5xx 5xx异常次数 统计测量api接口返回5xx错误的次数 ≥0 测量对象:专享版API网关实例 测量维度:instance_id 1分钟 throttled_calls 被流控的调用次数 统计测量api被流控的调用次数 ≥0 测量对象:专享版API网关实例 测量维度:instance_id 1分钟 avg_latency 平均延迟毫秒数 统计测量api接口平均响应延时时间 ≥0 单位:毫秒 测量对象:专享版API网关实例 测量维度:instance_id 1分钟 max_latency 最大延迟毫秒数 统计测量api接口最大响应延时时间 ≥0 单位:毫秒 测量对象:专享版API网关实例 测量维度:instance_id 1分钟 req_count 接口调用次数 该指标用于统计测量api接口调用次数 ≥0 测量对象:单个API 测量维度:api_id 1分钟 req_count_2xx 2xx调用次数 该指标用于统计测量api接口调用2xx的次数 ≥0 测量对象:单个API 测量维度:api_id 1分钟 req_count_4xx 4xx异常次数 该指标用于统计测量api接口返回4xx错误的次数 ≥0 测量对象:单个API 测量维度:api_id 1分钟 req_count_5xx 5xx异常次数 该指标用于统计测量api接口返回5xx错误的次数 ≥0 测量对象:单个API 测量维度:api_id 1分钟 req_count_error 异常次数 该指标用于统计测量api接口总的错误次数 ≥0 测量对象:单个API 测量维度:api_id 1分钟 avg_latency 平均延迟毫秒数 该指标用于统计测量api接口平均响应延时时间 ≥0 单位:毫秒 测量对象:单个API 测量维度:api_id 1分钟 max_latency 最大延迟毫秒数 该指标用于统计测量api接口最大响应延时时间 ≥0 单位:毫秒 测量对象:单个API 测量维度:api_id 1分钟 input_throughput 流入流量 该指标用于统计测量api接口请求流量 ≥0 单位:Byte/KB/MB/GB 测量对象:单个API 测量维度:api_id 1分钟 output_throughput 流出流量 该指标用于统计测量api接口返回流量 ≥0 单位:Byte/KB/MB/GB 测量对象:单个API 测量维度:api_id 1分钟
  • 响应消息头 调用API时,API网关增加如下响应消息头。 X-Apig-Mode: debug表示响应消息头增加API网关调试信息。 响应消息头 描述 说明 X-Request-Id 请求ID 所有合法请求,都会返回此参数 X-Apig-Latency 从API网关接收请求到后端返回消息头的用时 仅在请求消息头包含X-Apig-Mode: debug时,返回此参数 X-Apig-Upstream-Latency 从API网关请求后端到后端返回消息头的用时 仅在请求消息头包含X-Apig-Mode: debug,且后端服务类型不为Mock时,返回此参数 X-Apig-RateLimit-api API流量控制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了API流量控制时,返回此参数 X-Apig-RateLimit-user 用户流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了用户流量限制时,返回此参数 X-Apig-RateLimit-app 凭据流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了凭据流量限制时,返回此参数 X-Apig-RateLimit-ip 源IP流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了源IP流量限制时,返回此参数 X-Apig-RateLimit-api-allenv API默认流控信息 示例:remain:199,limit:200,time:1 second 仅在请求消息头包含X-Apig-Mode: debug时,返回此参数 父主题: 调用已发布的API
  • 操作步骤 登录API网关控制台。 在左侧导航栏选择“实例管理”。 在待查看或编辑的实例上,单击“查看控制台”或实例名称。 在“实例信息”页签,查看或编辑实例的配置信息。 表1 实例信息 可编辑项 说明 基本信息 实例的基本信息,包括实例名称、实例ID、实例规格、可用区、描述、企业项目和时间窗。 用户可以根据实际需要修改“实例名称”、“描述”等。 用户可以单击“实例ID”右侧的复制实例ID信息。 计费信息 实例的计费模式。 网络配置 虚拟私有云 实例所关联的VPC,用户可以单击VPC名称跳转查看VPC的具体配置信息。 子网 实例所关联的子网,用户可以单击子网名称跳转查看子网的具体配置信息。 安全组 实例所关联的安全组,用户可以单击安全组名称跳转查看安全组的具体配置信息,也可以单击,绑定新的安全组。 入口地址 虚拟私有云访问地址 弹性IP地址 实例绑定的弹性IP地址。 如果实例未绑定弹性IP地址,您可以单击地址右侧的“立即启用”,绑定弹性IP地址。 如果实例已绑定弹性IP地址,您可以单击地址右侧的复制地址信息。 如果实例已绑定弹性IP地址,您可以编辑公网带宽。公网带宽费用按小时计算,以弹性公网IP服务的价格为准。 如果实例已绑定弹性IP地址,您可以单击地址右侧的“解绑EIP”,解绑弹性IP地址。 出口地址 指允许实例API的后端服务部署在外部网络,API网关为实例开启公网出口。公网出口可随时关闭或开启。 开启公网出口后,您可以单击“查看带宽监控”查看数据,也可编辑出公网带宽。 路由 配置私有网段。实例创建完成后,默认能够与创建时指定的VPC子网网段进行互通,如果有额外的私有网段需要与实例互通,可通过该配置项进行路由配置。 如果本地数据中心的子网不在以下三个大子网段内,暂时不支持配置本地路由:10.0.0.0/8-24、172.16.0.0/12-24、192.168.0.0/16-24。
  • 配置参数说明 表1 配置参数说明 信息项 描述 Allowed Origins Access-Control-Allow-Origin响应头,指定允许访问API的外域URI,多个URI之间使用英文逗号隔开。 对于未携带身份凭证的请求,可以把参数值设置为“*”,表示允许来自所有域的访问请求。 Allowed Methods Access-Control-Allow-Methods响应头,指定允许使用的HTTP请求方法,多个请求方法之间使用英文逗号隔开。 Allowed Headers Access-Control-Allow-Headers响应头,指定XMLHttpRequest请求中允许携带的请求头字段,多个请求头之间使用英文逗号隔开。 其中,简单请求头Accept、Accept-Language、Content-Language、Content-Type(取值仅限为application/x-www-form-urlencoded、multipart/form-data、text/plain时)默认允许在请求中携带,无需在该参数中设置。 说明: 创建跨域资源共享策略时,默认不配置Allowed Headers,不允许跨域请求携带任何自定义请求头。 配置Allowed Headers为“*”,表示允许跨域请求头携带所有请求头。 Exposed Headers Access-Control-Expose-Headers响应头,指定XMLHttpRequest请求响应中允许携带的响应头字段,多个响应头之间使用英文逗号隔开。 其中,基本响应头Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma默认允许在响应中携带,无需在该参数中设置。 说明: 创建跨域资源共享策略时,默认不配置Exposed Headers,不允许浏览器的JavaScript代码解析跨域访问获得的响应头内容(除XMLHttpRequest对象的getResponseHeader()方法获得的基本响应头,Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma)。 配置Exposed Headers为“*”,表示允许浏览器的JavaScript代码解析跨域访问获得的所有响应头内容。 Maximum Age Access-Control-Max-Age响应头,指定本次预检请求的有效期,单位为秒。在有效期内,无需再次发出预检请求。 Allowed Credentials Access-Control-Allow-Credentials响应头,定XMLHttpRequest请求中是否允许携带Cookie。 开关开启表示允许。 开关关闭表示不允许。
  • 脚本配置示例 { "allow_origin": "*", "allow_methods": "GET,POST,PUT", "allow_headers": "Content-Type,Accept,Accept-Ranges,Cache-Control", "expose_headers": "X-Request-Id,X-Apig-Latency", "max_age": 86400, "allow_credentials": true}
  • 配置参数说明 表1 配置参数说明 参数 配置说明 Name 响应头名称。每个插件中不能添加重复名称的响应头(不区分大小写),且最多添加10条响应头。 Value 响应头的值。当“Action”为“Delete”时响应头的值不生效,可为空。 Action 响应头操作,您可以覆盖、添加、删除、跳过或新增指定的响应头。 Override:覆盖 当API响应中存在指定的响应头时,使用当前响应头的值覆盖已有响应头的值。 当API响应中存在多个与指定响应头相同名称的响应头时,该操作只会按当前响应头的值返回一条响应头记录。 当API响应中不存在指定的响应头时,添加当前响应头。 Append:添加 当API响应中存在指定的响应头时,将当前响应头的值添加到已有响应头值之后,用逗号分隔。 当API响应中存在多个与指定响应头相同名称的响应头时,会将多个响应头的值用“,”拼接后,再添加当前响应头的值。 当API响应中不存在指定的响应头时,添加当前响应头。 Delete:删除 当API响应中存在指定的响应头时,删除当前响应头。 当API响应中存在多个与指定响应头相同名称的响应头时,删除所有相同名称的响应头。 Skip:跳过 当API响应中存在指定的响应头时,跳过当前响应头。 当API响应中存在多个与指定响应头相同名称的响应头时,均不作处理直接返回。 当API响应中不存在指定的响应头时,添加当前响应头。 Add:新增 无论API响应中是否存在指定的响应头,都添加当前响应头。
  • 脚本配置示例 { "response_headers": [ { "name": "test", "value": "test", "action": "append" }, { "name": "test1", "value": "test1", "action": "override" } ]}
  • 支持HTTP2.0 API网关支持HTTP/2(超文本传输协议第2版)访问协议,通常称之HTTP2.0。拥有二进制格式编码、多路复用共享连接和请求头压缩的能力,改进传输性能,实现低延迟和高吞吐量。 由于HTTP2.0是强依赖网络稳定性的,建议用户在使用HTTP2.0时使用比较稳定的网络场景,而且客户端须支持HTTP2.0。 如果当前实例不支持HTTP2.0,请联系技术支持升级实例。 Binary Format二进制格式 HTTP1.x以文本的形式传输,而HTTP2.0将所有传输信息分割为更小的消息和帧,并对它们采用二进制格式编码。相对于字符串(文本)解析,二进制格式解析更方便且不易出错,提升传输性能。 MultiPlexing多路复用 在二进制格式的基础上,HTTP2.0不再依赖多个连接去实现并行处理、发送请求及响应。 同域名下所有通信都在单个连接上完成;每个连接可以承载任意数量的消息;消息由一个或多个帧组成,多个帧之间可以乱序发送,最后可以根据帧首部的流标识重新组合。从而实现低延迟,提升效率。 Header压缩 HTTP2.0使用encoder来减少需要传输的Header大小,客户端与服务端各自保存一份Header fields表,避免重复header传输,减少传输大小,实现高吞吐量。 父主题: API管理
  • 响应消息头 调用API时,API网关增加如下响应消息头。 X-Apig-Mode: debug表示响应消息头增加API网关调试信息。 响应消息头 描述 说明 X-Request-Id 请求ID 所有合法请求,都会返回此参数 X-Apig-Latency 从API网关接收请求到后端返回消息头的用时 仅在请求消息头包含X-Apig-Mode: debug时,返回此参数 X-Apig-Upstream-Latency 从API网关请求后端到后端返回消息头的用时 仅在请求消息头包含X-Apig-Mode: debug,且后端服务类型不为Mock时,返回此参数 X-Apig-RateLimit-api API流量控制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了API流量控制时,返回此参数 X-Apig-RateLimit-user 用户流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了用户流量限制时,返回此参数 X-Apig-RateLimit-app 应用流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了应用流量限制时,返回此参数 X-Apig-RateLimit-ip 源IP流量限制信息 示例:remain:9,limit:10,time:10 second 仅在请求消息头包含X-Apig-Mode: debug,且API配置了源IP流量限制时,返回此参数 X-Apig-RateLimit-api-allenv API默认流控信息 示例:remain:199,limit:200,time:1 second 仅在请求消息头包含X-Apig-Mode: debug时,返回此参数 父主题: 调用已发布的API
  • 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不同,使用时请注意。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 {"auth": {"identity": {"methods": ["password"],"password": {"user": {"name": "username","password": "********","domain": {"name": "domainname"}}}},"scope": {"project": {"id": "xxxxxxxx"}}}} 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 Content-Type: application/jsonX-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。
  • URI POST /v2/{project_id}/clusters/{cluster_id}/components/{component_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 cluster_id 是 String 集群ID。 获取方法:在CloudTable控制台,单击要查询的集群名称进入集群详情页,获取“集群ID"。请参见获取集群ID。 component_name 是 String 组件类型,取值为tsdb。
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在 IAM 中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域 指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互通。通过在不同地区创建云资源,可以将应用程序设计的更接近特定客户的要求,或满足不同地区的法律或其他要求。 可用区 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 Checkpoint 消费检查点。应用程序消费数据时,记录已消费数据的最新序列号作为检查点。当重新消费数据时,可根据此检查点继续消费。 APP 应用程序标识符。当多个应用程序分别消费同一通道的数据时,为区分不同应用程序的消费检查点,使用APP作为标识。 父主题: 使用前必读
  • 概述 欢迎使用 表格存储服务 (CloudTable Service,简称CloudTable)。 表格存储 服务为用户提供专属集群,即开即用,适合业务吞吐量大,时延要求低的用户。 CloudTable提供基于HBase全托管的NoSQL服务,提供毫秒级随机读写能力,适用于海量(半)结构化、时空、时序数据存储,可被广泛应用于物联网、车联网、金融、智慧城市、气象等行业。 CloudTable提供基于Doris全托管的实时数仓服务,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也可以支持高吞吐的复杂分析场景。因此,Doris能够较好的满足报表分析、即席查询、统一数仓构建、 数据湖 联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB实验平台、日志检索分析、用户画像分析、订单分析等应用。 您可以使用本文档提供API对CloudTable服务进行相关操作,如创建集群、查询集群、删除集群等。支持的全部操作请参见API概览。 在调用 MRS 服务API之前,请确保已经充分了解MRS服务相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • URI POST /v2/{project_id}/clusters/{cluster_id}/restart 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 cluster_id 是 String 集群ID。 获取方法:在CloudTable控制台,单击要查询的集群名称进入集群详情页,获取“集群ID"。请参见获取集群ID。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 [数组元素] Array of RestartInstanceRsp objects 正常响应示例。 表5 RestartInstanceRsp 参数 参数类型 描述 jobId Array of strings 重启集群任务ID。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误信息。
  • URI POST /v2/{project_id}/clusters/{cluster_id}/nodes 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法,请参见获取项目ID。 cluster_id 是 String 集群ID。 获取方法:在CloudTable控制台,单击要查询的集群名称进入集群详情页,获取“集群ID"。请参见获取集群ID。
  • API概览 CloudTable提供的符合RESTful API的设计规范的接口,如表1所示。 表1 接口 接口 功能 API URI 集群管理 创建CloudTable集群 POST /v2/{project_id}/clusters 查询CloudTable集群详情 GET /v2/{project_id}/clusters/{cluster_id} 查询CloudTable集群列表 GET /v2/{project_id}/clusters 删除CloudTable指定集群 DELETE /v2/{project_id}/clusters/{cluster_id} 重启集群API入口 POST /v2/{projectId}/clusters/{clusterId}/restart 查询集群配置 GET /v2/{projectId}/clusters/{clusterId}/setting 修改集群配置 PUT /v2/{projectId}/clusters/{clusterId}/setting 扩容组件 POST /v2/{projectId}/clusters/{clusterId}/nodes 开启opentsdb POST /v2/{projectId}/clusters/{clusterId}/components/{componentName}
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为“name”所对应区域的项目ID。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "region_id", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 name 是 String 连接名称。 名称只能包含数字、英文字母、下划线。不能为空。 输入长度不能超过64个字符。 dest_vpc_id 是 String 对应服务的vpc的ID。具体请参考《虚拟私有云API参考》。 dest_network_id 是 String 对应服务的子网网络ID,即为需要建立连接的服务所在的子网。具体请参考《虚拟私有云API参考》。 queues 否 Array of Strings 需要使用跨源的队列列表。 说明: 只有包年包月队列和专属队列可以使用增强型跨源连接。 routetable_id 否 String 对应服务的子网关联的路由表。 hosts 否 Array of Objects 用户自定义主机信息,最大支持2万条记录,详细信息参见表 hosts请求参数。 tags 否 Array of Objects 跨源连接的标签。具体请参考表4。 表3 hosts请求参数 参数名称 是否必选 参数类型 说明 name 否 String 自定义主机名称。长度128,数字字母下划线("_")横杠("-")句点(".")组成,字母开头。 ip 否 String 主机对应的IPv4地址。 表4 tags参数 参数名称 是否必选 参数类型 说明 key 是 String 标签的键。 value 是 String 标签的值。
  • 请求示例 为队列创建增强型跨源连接,并配置主机信息。 { "name": "test", "dest_vpc_id": "22094d8f-c310-4621-913d-4c4d655d8495", "dest_network_id": "78f2562a-36e4-4b39-95b9-f5aab22e1281", "queues": [ "q1", "q2" ], "hosts": [ { "ip":"192.168.0.1", "name":"ecs-97f8-0001" }, { "ip":"192.168.0.2", "name":"ecs-97f8-0002" } ]}
  • URI URI格式 DELETE /v2.0/{project_id}/datasource/enhanced-connections/{connection_id} 参数说明 表1 URI参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 connection_id 是 String 连接ID,用于标识跨源连接的UUID。具体为创建增强型跨源连接返回的连接ID。
共100000条