Http触发器为函数提供了基于Http协议的访问方式,主要适用于web服务、API暴露等场景,同时也提供了丰富的配置已满足各种访问形式。
使用限制
- 根据相关规章制度,Http触发器的域名需要您提供,需要提前创建自定义域名,详情请查看配置自定义域名。
- 函数计算会基于您提供的自定义域名创建子域名作为函数访问端点url,因此也需要您给子域名配置CNAME记录。
- 一个函数的一个版本或别名下,只能创建一个Http触发器。
- 通过内网URL访问函数时,需要提前创建vpce,服务选择函数计算,操作详情请查看配置终端节点。
操作步骤
- 登录函数计算控制台,点击目标函数,进入函数详情。
- 选择详情下顶部的配置选项卡。
- 在配置选项卡中,选择左边的触发器选项卡。
- 点击创建触发器,在弹出的右抽屉中选择Http触发器,配置参数解释如下表。
参数 | 操作 | 示例 |
---|---|---|
触发器类型 | 选择Http触发器。 | Http触发器 |
名称 | 填写自定义的触发器名称。 | xxx |
版本或别名 | 默认值为LATEST,支持选择任意函数版本或函数别名。 | LATEST |
请求方法 | 触发器支持的Http请求方法选择,可多选,不填则默认支持全部方法。 | - |
禁用公网访问URL | 触发器是否启用公网访问的URL。 | - |
内网 | 选择已创建的自定义域名,并确保该域名已经配置CNAME记录,记录值每个地域的内外网不同,具体留意页面提示。适用于内网环境访问,需要提前创建vpce。 | - |
公网 | 选择已创建的自定义域名,并确保该域名已经配置CNAME记录,记录值每个地域的内外网不同,具体留意页面提示。适用于公网环境访问。 | - |
认证方式 | 无需认证:请求没有认证限制,任何人都能访问。 JWT认证:请求启用JWT认证,访问时需要带上jwt,函数网关会自动校验请求的合法性。 |
- |
JWT配置指南
1. 生成JWKS
jwt鉴权需要用户提供有效的JWKS(JSON Web Key Set)。您可以使用在线生成工具生成,例如mkjwk.org。下文以使用mkjwk.org工具生成JWKS为例说明。
按图所示选择Key Use,Algorihm,Show X.509,点击Generate生成需要的公私钥和jwks。
2. 把public key填入jwks的keys字段里
3.使用https://jwt.io/ 生成请求用的jwt,如图所示
- 算法选择RS256。
- playload根据需要配置,但必须有iss字段,值为触发器名称。
- 公私钥内容根据第1步里生成的填写即可。
- 左侧生成的“xxx.xxx.xxx”即为合法签名后的jwt内容。
4. 配置JWT Token(必填)
在JWT Token 配置配置项中,选择 token
所在位置和 token
的名称。
token
位置支持Header、Cookie、Query参数(GET)。如果 token
位置选择为Header,则还需为其指定前缀,函数计算在获取Token时,会删除此前缀。
5. 配置JWT Claim转换(可选)
在JWT Claim 转换配置项中,选择透传给函数的参数所在位置、参数原始名称和参数透传给函数之后的名称。注意,这里的claim的名称指的是jwt的payload里的key。
映射参数位置只支持Header,以下配置的意思是:从jwt的payload中查找MyHeader字段,并把MyHeader的具体值用新的header,这里是HewHeader,透传给目标函数。目标函数收到的请求的header中就会包含一个新的,key为NewHeader的header。
6. 请求匹配模式
匹配全部:所有 HTTP 请求都会被校验。
白名单模式:配置的path不执行jwt校验,path支持通配符,但只能出现在末尾,例如 /user 或 /user/*。
黑名单模式:配置的path才执行jwt校验,path支持通配符,但只能出现在末尾,例如 /user 或 /user/*。