检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用APIG专享版的流量控制2.0策略实现API的精细流控 方案概述 操作流程 实施步骤 父主题: API策略
URI中的参数说明如下表所示。 表2 参数说明 名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。
api_ids 是 Array of strings API的编号列表 可以选择租户自己的API,也可以选择从云商店上购买的API。 app_ids 是 Array of strings APP的编号列表 env_id 是 String 需要授权的环境编号 请求参数样例: { "api_ids":
修改域名 功能介绍 修改绑定的域名所对应的配置信息。使用实例自定义入方向端口的特性时,注意开启/关闭客户端校验会对相同域名的不同端口同时生效。 调用方法 请参见如何调用API。 URI PUT /v2/{project_id}/apigw/instances/{instance_
ingress_https_port 否 Integer 访问该域名绑定的https协议入方向端口,-1表示无端口且协议不支持,可使用443默认端口,其他有效端口允许的取值范围为1024~49151,需为实例已开放的HTTPS协议的自定义入方向端口。 当创建域名时,该参数未填表示用默认443
将签名密钥绑定到API后,则API网关请求后端服务时就会使用这个签名密钥进行加密签名,后端服务可以校验这个签名来验证请求来源。 将指定的签名密钥绑定到一个或多个已发布的API上。同一个API发布到不同的环境可以绑定不同的签名密钥;一个API在发布到特定环境后只能绑定一个签名密钥。 调用方法 请参见如何调用API。 URI
当前实例所在租户该配额对应的数量 config_time String 配额创建时间 remark String 配额描述: API_NUM_LIMIT:租户可以创建的API个数限制 APP_NUM_LIMIT:租户可以创建的APP个数限制 APIGROUP_NUM_LIMIT:租户可以创建的API分组个数限制
call_limits Integer 流控时长内分组下的API的总访问次数限制,默认不限,请根据服务的负载能力自行设置 暂不支持 time_interval Integer 流控时长 暂不支持 time_unit String 流控的时间单位 暂不支持 is_default Integer
修改APP 功能介绍 修改指定APP的信息。其中可修改的属性为:name、remark,当支持用户自定义key和secret的开关开启时,app_key和app_secret也支持修改,其它属性不可修改。 URI HTTP/HTTPS请求方法以及URI如下表所示。 表1 HTTP/HTTPS请求方法以及URI
run_env_name String 发布的环境名 run_env_id String 发布的环境id publish_id String API发布记录编号 acl_name String 绑定的其他同类型的ACL策略名称 req_uri String API的访问地址 auth_type String
实例ID,可从API网关控制台的专享版实例信息中获取。 id 否 String VPC通道的编号。 name 否 String VPC通道的名称。 vpc_type 否 Integer VPC通道的类型。 page_size 否 Integer 每页显示的VPC通道数量,默认值:20。
将流控策略应用于API,则所有对该API的访问将会受到该流控策略的限制。当一定时间内的访问次数超过流控策略设置的API最大访问次数限制后,后续的访问将会被拒绝,从而能够较好的保护后端API免受异常流量的冲击,保障服务的稳定运行。 为指定的API绑定流控策略,绑定时,需要指定在哪个环境上生效。
功能介绍 流控策略可以限制一段时间内可以访问API的最大次数,也可以限制一段时间内单个租户和单个APP可以访问API的最大次数。 如果想要对某个特定的APP进行特殊设置,例如设置所有APP每分钟的访问次数为500次,但想设置APP1每分钟的访问次数为800次,可以通过在流控策略中设置特殊APP来实现该功能。
Integer 后端实例对象的状态。 instance_name String 云服务器的名称。 instance_id String 云服务器的ID。 host String 云服务器的主机地址 weight Integer 权重值。 权重值越大,转发到该云服务器的请求数量越多。 取值范围1
success Array 发布或下线成功的信息 failure Array 发布或下线失败的API及错误信息 表5 success参数说明(批量发布) 名称 类型 说明 publish_id String 发布记录的ID api_id String 发布成功的API ID api_name
查看应用绑定的API详情 操作场景 在应用绑定API后,查看应用绑定的API详情。 前提条件 已创建应用。 应用已绑定API。 操作步骤 进入共享版控制台。 选择“调用API > 应用管理”,进入到应用管理信息页面。 单击待查看的应用名称,进入应用详情页面。 单击待查看的API名称,进入API详情页面,查看API详情。
校验后端签名示例 示例演示如何编写一个基于Flask的服务器,作为API的后端,并且实现一个wrapper,对API网关(即API管理)的请求做签名校验。 API绑定签名密钥后,发给后端的请求中才会添加签名信息。 编写一个返回“Hello World!”的接口,方法为GET、POST、PUT和
00 最小值:1 最大值:500 缺省值:20 api_id 是 String API的编号 sign_id 否 String 签名密钥的编号 sign_name 否 String 签名密钥的名称 env_id 否 String 环境编号 请求参数 表3 请求Header参数 参数
系统默认分配的子域名 register_time Timestamp 创建时间 update_time Timestamp 最近修改时间 remark String 描述 call_limits Integer 流控时长内分组下的API的总访问次数限制,默认不限,请根据服务的负载能力自行设置
app_key, creator] 可以在URI后面用‘?’和‘&’添加不同的查询条件组合。 查询条件可为以下字段以及对应的值:id、name、app_key、creator、page_size、page_no。 URI中的参数说明如下表所示。 表2 参数说明 名称 是否必选 类型 说明 project_id