华为云用户手册
-
使用AppCode进行API请求的简易认证 在创建API时,选择“APP认证”并且开启“支持简易认证”。 如果您修改已有API为简易认证,需要在修改完成后,将API重新发布,使简易认证模式生效。 将支持简易认证的API绑定到已创建的凭据。 发送请求时,增加请求头部参数“X-Apig-AppCode”,省略请求签名相关信息。 以Curl方式为例,增加头部参数名称:X-Apig-AppCode,参数值填已生成的AppCode。 curl -X GET "https://api.exampledemo.com/testapi" -H "content-type: application/json" -H "host: api.exampledemo.com" -H "X-Apig-AppCode: xhrJVJKABSOxc7d***********FZL4gSHEXkCMQC"
-
约束与限制 同一个环境中一个API只能绑定一个签名密钥,一个签名密钥可以绑定多个API。 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。 策略的绑定、解绑、更新会实时生效,不需要重新发布API。 API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。 如果策略与API有绑定关系,则策略无法执行删除操作。
-
为策略绑定API 单击策略名称,进入策略详情。 在API列表区域选择环境后,单击“绑定API”。 筛选API分组以及发布环境,勾选所需的API。 支持通过API名称或标签筛选API,标签为创建API时定义的标签。 单击“确定”,绑定完成。 如果单个API不需要绑定此策略,单击API所在行的“解绑”。 如果批量API不需要绑定此策略,则勾选待解绑的API,单击列表上方“解绑”。最多同时解绑1000个API。
-
管理API概述 API创建完成后,您还可以进行以下相关操作管理API。 查看或编辑APIG的API信息:您可以通过查看API的基本信息来确认API的调用信息,通过编辑API的基本信息来更改服务信息。 配置API的自定义认证:您可以通过自定义认证来自定义认证系统。 配置API的参数编排规则:您可以通过不同算法规则,将请求参数映射为新的请求参数。 自定义API的错误响应信息:您可以通过网关响应功能,自定义响应状态码或网关响应内容。 克隆APIG的API:您可以通过克隆API功能,快速创建基本信息相同的API。 下线APIG的API:您可以通过下线API功能,将API从相关环境中下线,暂停对外提供的服务。该操作将导致此API在指定的环境无法被访问,请确保已经告知使用此API的用户。 导入导出API:您可以通过API设计文件、 CS E微服务、CCE工作负载、导入API到APIG。 APIG的API设计文件扩展定义:导入API设计文件时,您可以参考apig支持的扩展定义,配置API设计文件。 父主题: 管理API
-
x-apigateway-access-controls.policy 含义:访问控制策略定义。 作用域:x-apigateway-access-controls 示例: x-apigateway-access-controls: customAccessControlName: acl-type: "DENY" entity-type: "IP" value: 127.0.0.1,192.168.0.1/16 表1 参数说明 参数 是否必选 类型 说明 acl-type 是 String 访问控制行为,支持PERMIT、DENY。 entity-type 是 String 访问控制对象,仅支持IP。 value 是 String 访问控制策略值,多个值以“,”间隔。 父主题: APIG的API设计文件扩展定义
-
x-apigateway-auth-opt 含义:APP简易认证方式参数。 作用域:Security Scheme Object(2.0)/Security Scheme Object(3.0) Swagger示例: securityDefinitions: apig-auth-app: type: apiKey name: Authorization in: header x-apigateway-auth-type: AppSigv1 apig-auth-app-header: type: apiKey name: Authorization in: header x-apigateway-auth-opt: appcode-auth-type: header x-apigateway-auth-type: AppSigv1 apig-auth-iam: type: apiKey name: unused in: header x-apigateway-auth-type: IAM OpenAPI示例: securitySchemes: apig-auth-app: in: header name: Authorization type: apiKey x-apigateway-auth-type: AppSigv1 apig-auth-app-header: in: header name: Authorization type: apiKey x-apigateway-auth-opt: appcode-auth-type: header x-apigateway-auth-type: AppSigv1 apig-auth-iam: in: header name: unused type: apiKey x-apigateway-auth-type: IAM 表1 参数说明 参数 是否必选 类型 说明 appcode-auth-type 否 String AppCode简易认证类型,默认为disable。 disable:不开启简易认证 header:开启简易认证且AppCode位置在HEADER。 父主题: APIG的API设计文件扩展定义
-
x-apigateway-ratelimits.policy 含义:流控策略定义。 作用域:x-apigateway-ratelimits 示例: x-apigateway-ratelimits: customRatelimitName: api-limit: 200 app-limit: 200 user-limit: 200 ip-limit: 200 interval: 1 unit: MINUTE shared: false special: - type: USER limit: 100 instance: xxxxxxx 表1 参数说明 参数 是否必选 类型 说明 api-limit 是 Number API访问次数限制。 user-limit 否 Number 用户访问次数限制。 app-limit 否 Number 应用访问次数限制。 ip-limit 否 Number 源IP访问次数限制。 interval 是 Number 流控策略时间周期。 unit 是 String 流控策略时间周期单位,支持SECOND、MINUTE、HOUR、DAY。 shared 否 Boolean 是否共享流控策略。 special 否 x-apigateway-ratelimits.policy.special 对象数组 特殊流控策略。 父主题: APIG的API设计文件扩展定义
-
x-apigateway-backend.functionEndpoints 含义:API网关定义的FUNCTION类型API后端服务定义。 作用域:x-apigateway-backend 示例: paths: '/users/{userId}': get: produces: - "application/json" parameters: - name: "X-Auth-Token" description: "认证token" type: "string" in: "header" required: true responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "FUNCTION" functionEndpoints: version: "v1" function-urn: "" invocation-type: "synchronous" timeout: 30000 表1 参数说明 参数 是否必选 类型 说明 function-urn 是 String 函数URN地址。 version 是 String 函数版本。 invocation-type 是 String 函数调用类型,支持异步或同步。 timeout 否 Number 函数超时时间,单位毫秒,缺省值为5000,取值范围为1~60000。 父主题: APIG的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
-
为策略绑定API 单击策略名称,进入策略详情。 在API列表区域选择环境后,单击“绑定API”。 筛选API分组以及发布环境,勾选所需的API。 支持通过API名称或标签筛选API,标签为创建API时定义的标签。 单击“确定”,绑定完成。 如果单个API不需要绑定此策略,单击API所在行的“解绑”。 如果批量API不需要绑定此策略,则勾选待解绑的API,单击列表上方“解绑”。最多同时解绑1000个API。
-
约束与限制 同一个环境中,一个API只能被一个流量镜像策略绑定,但一个流量镜像策略可以绑定多个API。 镜像请求返回的响应会被忽略。 镜像请求的请求体大小受实例参数“request_body_size”控制,默认请求体大小为12MB,可通过“request_body_size”参数调整请求体大小,请求体大小调整越大性能损耗越大,请谨慎操作。 API的后端服务类型为Mock时,不支持绑定流量镜像策略。 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。 策略的绑定、解绑、更新会实时生效,不需要重新发布API。 API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。 如果策略与API有绑定关系,则策略无法执行删除操作。
-
x-apigateway-access-control 含义:引用访问控制策略。 作用域:Operation Object(2.0)/Operation Object(3.0) 示例: paths: '/path': get: x-apigateway-access-control: 'customAccessControlName' 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-access-control 否 String 访问控制策略。 父主题: APIG的API设计文件扩展定义
-
x-apigateway-backend.parameters 含义:API网关定义的API后端参数定义。 作用域:x-apigateway-backend 示例: paths: '/users/{userId}': get: produces: - "application/json" parameters: - name: "X-Auth-Token" description: "认证token" type: "string" in: "header" required: true - name: "userId" description: "用户名" type: "string" in: "path" required: true responses: default: description: "default response" x-apigateway-request-type: "public" x-apigateway-backend: type: "HTTP" parameters: - name: "userId" value: "userId" in: "query" origin: "REQUEST" description: "用户名" - name: "X-Invoke-User" value: "apigateway" in: "header" origin: "CONSTANT" description: "调用者" 表1 参数说明 参数 是否必选 类型 说明 name 是 String 参数名称,长度不能超过32个字节,由字母、数字、下划线、连线或点组成,且必须以字母开头。 header位置的参数名称不区分大小写。 value 是 String 参数值,当参数来源为REQUEST时,值为请求参数名称。 in 是 String 参数位置,支持header、query、path。 origin 是 String 参数映射来源,支持REQUEST、CONSTANT。 description 否 String 参数含义描述。 父主题: APIG的API设计文件扩展定义
-
注意事项 仅支持华为云 CCE Turbo 集群、VPC网络模型的CCE集群。 您需要确保当前实例与CCE集群所属同一个VPC中,或通过其他方式保证两者网络可达,否则导入后调用API会出现失败场景。 选择VPC网络模型的CCE集群时,您需要在实例详情界面的路由配置中添加CCE集群的容器网段,否则导入后调用API会出现失败场景。 导入后会生成相应的API以及微服务类型的负载通道,负载通道会监测工作负载下所有实例的地址变化,并更新到负载通道中。
-
x-apigateway-auth-type 含义:基于Swagger的apiKey认证格式,定义API网关支持的特有认证方式。 作用域:Security Scheme Object(2.0)/Security Scheme Object(3.0) Swagger: securityDefinitions: apig-auth-app: in: header name: Authorization type: apiKey x-apigateway-auth-type: AppSigv1 apig-auth-iam: in: header name: unused type: apiKey x-apigateway-auth-type: IAM OpenAPI示例: securitySchemes: apig-auth-app: in: header name: Authorization type: apiKey x-apigateway-auth-type: AppSigv1 apig-auth-iam: in: header name: unused type: apiKey x-apigateway-auth-type: IAM 表1 参数说明 参数 是否必选 类型 说明 x-apigateway-auth-type 是 String API网关认证方式,支持AppSigv1、IAM。 type 是 String 认证类型,仅支持apiKey。 name 是 String 用于认证的参数名称。 in 是 String 仅支持header。 description 否 String 描述信息。 父主题: APIG的API设计文件扩展定义
-
APIG的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时,返回此参数。 X-Apig-count 请求经过APIG的总次数。 经过APIG调用的合法请求都会返回此参数,当X-Apig-count请求头取值大于10时,会报错APIG.0612。 父主题: 调用API
-
脚本配置示例 { "breaker_condition":{ "breaker_type":"timeout", "breaker_mode":"counter", "unhealthy_threshold":30, "time_window":15, "open_breaker_time":15, "unhealthy_percentage":51, "min_call_threshold":20 }, "scope":"share", "downgrade_default":{ "type":"http", "passthrough_infos":null, "func_info":null, "mock_info":null, "http_info":{ "isVpc":false, "vpc_channel_id":"", "address":"10.10.10.10", "scheme":"HTTP", "method":"GET", "path":"/demo", "timeout":5000 }, "http_vpc_info":null }, "downgrade_parameters":[ { "name":"reqPath", "type":"path", "value":"path", "disabled":true, "focused":true, "id":"92002eqbpilg6g" }, { "name":"method", "type":"method", "value":"method", "disabled":true, "focused":true, "id":"tuvxetsdqvcos8" }], "downgrade_rules":[ { "rule_name":"rule-test1", "parameters":[ "reqPath", "method" ], "match_regex":"[\"reqPath\",\"==\",\"/test\"]", "downgrade_backend":{ "type":"mock", "passthrough_infos":null, "func_info":null, "mock_info":{ "status_code":200, "result_content":"{status: ok}", "headers":[] }, "http_info":null, "http_vpc_info":null }, "breaker_condition":{ "breaker_type":"timeout", "breaker_mode":"percentage", "unhealthy_threshold":30, "time_window":15, "open_breaker_time":15, "unhealthy_percentage":51, "min_call_threshold":20 } }]}
-
约束与限制 同一个环境中,一个API只能被一个断路器策略绑定,但一个断路器策略可以绑定多个API。 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。 策略的绑定、解绑、更新会实时生效,不需要重新发布API。 API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。 如果策略与API有绑定关系,则策略无法执行删除操作。
-
为策略绑定API 单击策略名称,进入策略详情。 在API列表区域选择环境后,单击“绑定API”。 筛选API分组以及发布环境,勾选所需的API。 支持通过API名称或标签筛选API,标签为创建API时定义的标签。 单击“确定”,绑定完成。 如果单个API不需要绑定此策略,单击API所在行的“解绑”。 如果批量API不需要绑定此策略,则勾选待解绑的API,单击列表上方“解绑”。最多同时解绑1000个API。
-
使用流程 在控制台创建签名密钥。 将新创建的签名密钥绑定API。 API网关将签名后的请求发送到后端服务,此时Authorization头中包含签名信息。后端服务通过不同的开发语言(例如Java、Go、Python、JavaScript、C#、PHP、C++、C、Android等)进行签名,比对签名结果和API网关传过来的Authorization头中签名是否一致来校验API的合法性。 图1 签名密钥流程
-
操作场景 签名密钥用于后端服务验证API网关的身份,在API网关请求后端服务时,保障后端服务的安全。 签名密钥是由一对Key和Secret组成,签名密钥需要绑定到API才能生效。当签名密钥绑定API后,API网关向后端服务发送此API的请求时,会增加相应的签名信息,此时需要后端服务依照同样方式进行签名,通过比对签名结果和API网关传过来的Authorization头中签名是否一致来校验API的合法性。 同一个环境中一个API只能绑定一个签名密钥,一个签名密钥可以绑定多个API。
-
非简单请求 对于非简单请求,您需要开启跨域访问,并且创建一个“Method”为“OPTIONS”的API。 跨域共享资源插件不需要创建一个“Method”为“OPTIONS”的API。 “Method”为“OPTIONS”的API和普通API的区别如下: 所属分组:选择已开启CORS的API所在的分组。 安全认证:可选择“无认证”。无论选择哪种认证方式,API网关都按照无认证处理。 请求协议:选择与已开启CORS的API相同的请求协议。 请求Path:填斜杠/即可,也可选择与已开启CORS的API相同或者匹配的请求Path。 Method:选择“OPTIONS”。 支持CORS:选择开启CORS。 假设后端服务类型为Mock,示例如下: 浏览器发送“Method”为“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)请求,此时页面只能访问同源的资源,而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请求方法和头信息字段。预检通过后,浏览器向服务器发送简单请求。
-
开启跨域访问 API网关默认不开启跨域访问,如果您需要开启,请参考以下说明完成跨域配置。 简单请求的跨域访问 如果是创建新的API,在定义API请求时,打开“支持跨域(CORS)”开关。详细的使用指导,可参考简单请求。 图2 支持跨域 非简单请求的跨域访问 非简单请求的跨域访问需要在API的分组中创建一个“Method”为“OPTIONS”的API,作为预检请求。 预检请求API的参数设置,请参考以下说明填写。详细的使用指导可参考非简单请求。 在API的基本信息中,安全认证选“无认证”。 图3 预检请求-使用无认证 定义API请求时,参数填写说明如下: 请求协议:选择与已开启CORS的API相同的请求协议 请求Path:填斜杠/ Method:选择“OPTIONS” 支持CORS:选择开启CORS 图4 预检请求-设置API请求 后端服务选择Mock。 图5 预检请求-后端服务类型Mock
-
简单请求 对于简单请求,您需要开启简单跨域访问。 场景一:已开启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网关响应消息中的跨域头。
-
操作场景 使用APP认证的API,需要在API网关中创建一个应用,以生成应用ID和密钥对(AppKey、AppSecret)。将创建的应用绑定API后,才可以使用APP认证调用API。在API调用过程中,把密钥对替换SDK中的密钥对,API网关服务根据密钥对进行身份核对,完成鉴权。关于使用APP认证的方法,具体请参考《API网关开发指南》。 从云商店购买的API,系统自动创建一个应用,无需单独创建应用。 使用无认证/华为IAM认证的API,无需创建应用。 应用配额包括您自行创建的应用和在云商店购买API生成的应用。
-
API网关监控指标 表1 API网关共享版支持的监控指标 指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) avg_latency 平均延迟毫秒数 该指标用于统计测量api接口平均响应延时时间 ≥0 单位:毫秒 单个API 1分钟 input_throughput 流入流量 该指标用于统计测量api接口请求流量 ≥0 单位:Byte/KB/MB/GB 单个API 1分钟 max_latency 最大延迟毫秒数 该指标用于统计测量api接口最大响应延时时间 ≥0 单位:毫秒 单个API 1分钟 output_throughput 流出流量 该指标用于统计测量api接口返回流量 ≥0 单位:Byte/KB/MB/GB 单个API 1分钟 req_count 接口调用次数 该指标用于统计测量api接口调用次数 ≥0 单个API 1分钟 req_count_2xx 2xx调用次数 该指标用于统计测量api接口调用2xx的次数 ≥0 单个API 1分钟 req_count_4xx 4xx异常次数 该指标用于统计测量api接口返回4xx错误的次数 ≥0 单个API 1分钟 req_count_5xx 5xx异常次数 该指标用于统计测量api接口返回5xx错误的次数 ≥0 单个API 1分钟 req_count_error 异常次数 该指标用于统计测量api接口总的错误次数 ≥0 单个API 1分钟
-
错误码 当调用API时,可能遇到如表1所示的错误码。如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 通过APIG接口管理API,发生错误时,产生的错误码请参考错误码。 使用APIG错误码时,请以错误码(如APIG.0101)为准,错误信息并非固定不变,有时会对错误信息进行优化修改。 表1 错误码 错误码 错误信息 HTTP状态码 语义 解决方案 APIG.0101 The API does not exist or has not been published in the environment. 404 API不存在或未发布到环境 检查调用API所使用的域名、请求方法、路径和创建的API是否一致;检查API是否发布,如果发布到非生产环境,检查请求X-Stage头是否为发布的环境名;检查调用API使用的域名是否已经绑定到API所在的分组。 APIG.0101 The API does not exist. 404 API请求方法不存在 检查API请求方法是否与API定义的方法相同 APIG.0103 The backend does not exist. 500 无法找到后端 联系技术支持 APIG.0104 The plug-ins do not exist. 500 无法找到插件配置 联系技术支持 APIG.0105 The backend configurations do not exist. 500 无法找到后端配置 联系技术支持 APIG.0106 Orchestration error. 400 编排错误 检查API配置的前后端参数是否合理 APIG.0201 API request error. 400 请求格式不合法 使用合法的请求 APIG.0201 Request entity too large. 413 请求body过大(大于12M) 减小请求body大小 APIG.0201 Request URI too large. 414 请求URI过大(大于32K) 减小请求URI大小 APIG.0201 Request headers too large. 494 请求头过大(单个请求头大于32K或所有请求头总长度大于128K) 减小请求头大小 APIG.0201 Backend unavailable. 502 后端不可用 检查API配置的后端地址是否可用 APIG.0201 Backend timeout. 504 后端超时 增大超时时间或缩小后端的处理时间 APIG.0201 An unexpected error occurred 500 内部错误 联系技术支持 APIG.0202 Backend unavailable 502 后端不可用 检查API配置的后端请求协议是否与后端服务请求协议一致 APIG.0203 Backend timeout. 504 后端超时 增大超时时间或缩小后端的处理时间 APIG.0204 SSL protocol is not supported: TLSv1.1 400 SSL协议版本不支持 使用支持的SSL协议版本 APIG.0301 Incorrect IAM authentication information. 401 IAM认证信息错误 检查token是否正确,具体请参见IAM信息认证错误 APIG.0302 The IAM user is not authorized to access the API. 403 IAM用户不允许访问API 检查用户是否被黑白名单限制 APIG.0303 Incorrect app authentication information. 401 APP认证信息错误 APP签名认证时,做如下检查: 检查请求的方法、路径、查询参数、请求体和签名使用的方法、路径、查询参数、请求体是否一致 检查客户端机器时间是否正确 请参考使用APP认证调用API检查签名代码的问题。 APPCODE简易认证时,做如下检查:检查请求是否携带了X-Apig-AppCode头域 APIG.0304 The app is not authorized to access the API. 403 APP不允许访问API 检查APP是否授权访问API APIG.0305 Incorrect authentication information. 401 认证信息错误 检查认证信息是否正确 APIG.0306 API access denied. 403 不允许访问API 检查是否授权访问API APIG.0307 The token must be updated. 401 token需要更新 重新从IAM获取token APIG.0308 The throttling threshold has been reached. 429 超出流控值限制 等待流控刷新后访问。如果触发子域名的单日请求数上限,请绑定独立域名。 APIG.0310 The project is unavailable. 403 project不可使用 使用其他project访问 APIG.0311 Incorrect debugging authentication information. 401 调试认证信息错误 联系技术支持 APIG.0401 Unknown client IP address. 403 无法识别客户端IP地址 联系技术支持 APIG.0402 The IP address is not authorized to access the API. 403 IP地址不允许访问 检查IP地址是否被黑白名单限制 APIG.0404 Access to the backend IP address has been denied. 403 后端IP不允许访问 后端IP地址或后端域名对应的IP地址不允许访问 APIG.0501 The app quota has been used up. 405 APP已经超出配额 或云商店调用次数用完 扩大APP配额 或重新购买云商店调用次数 APIG.0502 The app has been frozen. 405 APP被冻结 余额不足 APIG.0601 Internal server error. 500 内部错误 联系技术支持 APIG.0602 Bad request. 400 非法请求 检查请求是否合法 APIG.0605 Domain name resolution failed. 500 域名解析失败 检查域名拼写,以及域名是否绑定了正确的后端地址 APIG.0606 Failed to load the API configurations. 500 未加载API配置 联系技术支持 APIG.0607 The following protocol is supported: {xxx} 400 协议不被允许,允许的协议是xxx。 注意:xxx以实际响应中的内容为准。 改用支持的协议(HTTP/HTTPS)访问 APIG.0608 Failed to obtain the admin token. 500 无法获取管理租户 联系技术支持 APIG.0609 The VPC backend does not exist. 500 找不到vpc后端 联系技术支持 APIG.0610 No backend available. 502 没有可连接的后端 检查所有后端是否可用,如调用信息与实际配置是否一致。 APIG.0611 The backend port does not exist. 500 后端端口未找到 联系技术支持 APIG.0612 An API cannot call itself. 500 API调用自身 修改API后端配置,递归调用层数不能超过10层。 APIG.0613 The IAM service is currently unavailable. 503 IAM服务暂时不可用 联系技术支持 APIG.0705 Backend signature calculation failed. 500 计算后端签名失败 联系技术支持 APIG.0802 The IAM user is forbidden in the currently selected region 403 该IAM用户在当前region中被禁用 联系技术支持 APIG.1009 AppKey or AppSecret is invalid 400 AppKey或AppSecret不合法 检查请求的AppKey或AppSecret是否正确 父主题: 调用已发布的API
-
云视频交付实施服务可以提供哪些服务? 3D数字内容制作、虚拟视频制作、虚拟直播。 服务类型 服务内容 典型应用场景 3D数字内容制作 面向互娱、教育、企业、电商等场景,提供3D卡通数字人、美型数字人、写实数字人及相关配饰制作服务 面向制作行业、文旅、金融等行业客户,通过数字人视频介绍公司产品,传递公司价值 虚拟视频制作 提供视频镜头设计,结合数字人模型、虚拟背景、真实背景输出高质量视频 面向教育、培训等行业客户,使用数字人制作教育课件,降低教师重复繁琐的工作投入 虚拟直播 面向互娱、企业、电商等直播场景,提供数字人直播服务,用户可配置各种直播属性,即可生成主播视觉驱动的数字人直播流 面向娱乐、电商等行业客户,通过引入数字人和真人互动,提升直播带货效果,增加用户粘性 父主题: 关于服务咨询
-
场景三:删除和重命名字段(e_drop_fields函数和e_rename函数) 一般情况下,推荐您使用e_compose函数进行多个函数的组合操作。 示例如下所示: 原始日志 {"content":"123","age":23,"name":"twiss","IdNumber":1} 加工规则:首先判断content字段值是否为123,如果是,则删除age和name字段,再将IdNumber字段重命名为Id。 e_if(e_search("content==123"),e_compose(e_drop_fields("age|name"), e_rename("IdNumber", "Id"))) 加工结果 {"Id": 1,"content": 123} 父主题: 使用DSL加工函数清洗LTS日志数据
共100000条
- 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
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- ...
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333