使用api网关服务(apig专享版)触发器-j9九游会登录
本节介绍如何通过函数工作流控制台创建apig触发器,实现使用api调用函数运行。
apig专享版触发器触发事件说明
apig专享版触发器是functiongraph与结合使用的一种方式,支持通过https或http协议调用functiongraph函数。通过apig的自定义rest api和终端节点,可以将特定的api操作(如get、post、put等)映射到对应的functiongraph函数。当用户向apig终端节点发送https请求时,apig会自动触发相应的functiongraph函数,从而实现api请求与函数的无缝对接。
操作视频
本视频介绍如何在函数中配置apig专享版触发器,并验证函数执行。
因产品功能演进,操作界面可能存在差异,相关视频仅供参考,具体以实际环境为准。
约束与限制
- apig专享版触发器支持使用的区域和具体运行时函数请以控制台展示为准。
- apig专享版触发器创建以后,不能停用,只能删除。
- functiongraph函数对来自apig调用的返回结果进行了封装,apig触发器要求函数的返回结果中必须包含isbase64encoded(boolean)、statuscode(int)、headers(map)和body(string),即函数的返回结果中必须按以下示例结构返回字符串才可以正确返回。
{ "isbase64encoded": true|false, "statuscode": httpstatuscode, "headers": {"headername":"headervalue",...}, "body": "..." }isbase64encoded的值默认为true,表示apig传递给functiongraph的请求体body已经进行base64编码,需要先对body内容base64解码后再处理。
- apig专享版触发器调用的请求正文有效负载大小为4m。
前提条件
- 已创建apig专享版实例,创建过程请参见创建apig实例。
- 如需在公网调用函数,请在创建apig实例时开启公网并配置所需带宽。
- 如生产环境中配置函数访问vpc内资源,请在创建apig实例时选择与函数相同的vpc环境。
- 已创建api分组,此处以“apigroup_test”分组为例,创建过程请参见。
创建apig专享版触发器
- 登录,在左侧的导航栏选择“函数 > 函数列表”。
- 单击右上方的“创建函数”,进入“创建函数”页面。
- 选择“创建空白函数”,配置以下函数信息,其他参数保持默认即可。
- 函数名称:输入自定义的函数名称,例如:apig_demo。
- 企业项目:选择“default”。
- 委托:选择“未使用任何委托”。
- 运行时语言:选择“python 3.12”。
- 单击“创建函数”,完成函数创建并进入函数详情页。
- 在“代码”页签下,复制以下代码至代码编辑区并单击“部署代码”。
# -*- coding:utf-8 -*- import json def handler (event, context): body = "functiongraph demo hello, functiongraph!
" print(body) return { "statuscode":200, "body":body, "headers": { "content-type": "text/html", }, "isbase64encoded": false } - 如图1所示选择“设置 > 触发器”,单击“创建触发器”,弹出“创建触发器”对话框。
图1 创建触发器
- 参考表2配置触发器参数。
表2 apig专享版触发器参数说明 参数
说明
取值样例
触发器类型
选择“api网关服务(apig专享版)”。
api网关服务(apig专享版)
实例
选择apig实例。若无实例,可单击“创建实例”完成创建。
apig-fg
api名称
填写专享版apig触发器的名称。
支持汉字,英文,数字,下划线,且只能以英文和汉字开头,3-64字符。
关于api更多配置信息的介绍请参考。
api_apig
分组
选择api分组。api分组相当于一个api集合,api提供方以api分组为单位,管理分组内的所有api。
若未创建分组,可单击“创建分组”完成创建。
apigroup_test
发布环境
选择api的发布环境。api可以同时提供给不同的场景调用,如生产、测试或开发,选择“release”,才能调用。
若未创建环境,可单击“创建发布环境”完成创建。
release
安全认证
选择api的安全认证方式。
api认证方式有以下三种:
- app: 采用appkey&appsecret认证,安全级别高,推荐使用,详情请参见。
- iam: iam认证,只允许iam用户能访问,安全级别中等,详情请参见。
- none: 无认证模式,所有用户均可访问。
示例中“安全认证”选择“none”,生产环境强烈建议开启app认证或iam认证。
none
请求协议
选择api的请求协议。
api的请求协议支持以下类型:
- http:数据在传输过程中不被加密。
- https:数据在传输过程中被加密。传输重要或敏感数据时推荐使用https。
- http&https:此选项允许api同时支持http和https两种协议。
https
请求路径
填写api的请求路径。
请求路径是api访问地址的一部分,用于指定资源的唯一标识或层级结构。
请求路径中的字母区分大小写。以斜杠(/)开头,不超过512个字符。请求路径可以包含请求参数,请求参数使用{}标识,例如/a/{b},也可以通过配置“ ”号做前缀匹配,例如:/a/{b }。
/ttest
匹配模式
选择api的匹配模式。
匹配模式定义了如何匹配api请求的url,api网关支持两种匹配模式:
- 绝对匹配:绝对匹配要求请求路径必须与定义的路径完全一致。
- 前缀匹配:前缀匹配允许请求路径以定义的路径为前缀。
前缀匹配
请求方法
选择api的请求方法。
支持的请求方法:get、post、delete、put、patch、head、options、any。
其中any表示该api支持任意请求方法。
any
后端超时(毫秒)
设置api的后端超时时间,单位为毫秒,设置范围为1~60000毫秒。
5000
- 单击“确定”,完成触发器的创建。
查看函数运行结果
- 返回函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
- 单击函数名称,单击进入函数详情页。
- 选择“监控 > 日志”,查询函数运行日志。
相关文档
- 除使用控制台外,函数工作流支持通过api的方式管理函数触发器,详情请参见。
- 使用apig触发器常见问题:函数如何获取apig触发器中的请求路径或请求参数?
- 在functiongraph中使用apig专享版触发器的最佳实践:
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

