使用API网关服务(APIG专享版)触发器
本节介绍如何通过函数工作流控制台创建APIG触发器,实现使用API调用函数运行。
APIG专享版触发器概述
APIG专享版触发器是FunctionGraph与APIG(API Gateway)结合使用的一种方式,支持通过HTTPS或HTTP协议调用FunctionGraph函数。通过APIG的自定义REST API和终端节点,可以将特定的API操作(如GET、POST、PUT等)映射到对应的FunctionGraph函数。当用户向APIG终端节点发送HTTPS请求时,APIG会自动触发相应的FunctionGraph函数,从而实现API请求与函数的无缝对接。
约束与限制
- 当前除“华北-北京一”外,其余区域均支持使用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”分组为例,创建过程请参见创建API分组。
创建APIG专享版触发器
- 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
- 单击右上方的“创建函数”,进入“创建函数”页面。
- 选择“创建空白函数”,配置以下函数信息,其他参数保持默认即可。
- 函数名称:输入自定义的函数名称,例如:apig_demo。
- 企业项目:选择“default”。
- 委托名称:选择“未使用任何委托”。
- 运行时语言:选择“Python 3.12”。
- 单击“创建函数”,完成函数创建并进入函数详情页。
- 在“代码”页签下,复制以下代码至代码编辑区并单击“部署代码”。
# -*- coding:utf-8 -*- import json def handler (event, context): body = "<html><title>Functiongraph Demo</title><body><p>Hello, FunctionGraph!</p></body></html>" print(body) return { "statusCode":200, "body":body, "headers": { "Content-Type": "text/html", }, "isBase64Encoded": False }
- 如图1所示选择“设置 > 触发器”,单击“创建触发器”,弹出“创建触发器”对话框。
- 参考表2配置触发器参数。
表2 APIG专享版触发器参数说明 参数
说明
取值样例
触发器类型
选择“API网关服务(APIG专享版)”。
API网关服务(APIG专享版)
实例
选择APIG实例。若无实例,可单击“创建实例”完成创建。
apig-fg
API名称
填写专享版APIG触发器的名称。
支持汉字,英文,数字,下划线,且只能以英文和汉字开头,3-64字符。
API_apig
分组
选择API分组。API分组相当于一个API集合,API提供方以API分组为单位,管理分组内的所有API。
若未创建分组,可单击“创建分组”完成创建。
APIGroup_test
发布环境
选择API的发布环境。API可以同时提供给不同的场景调用,如生产、测试或开发,选择“RELEASE”,才能调用。
若未创建环境,可单击“创建发布环境”完成创建。
RELEASE
安全认证
选择API的安全认证方式。
API认证方式有以下三种:
- App: 采用Appkey&Appsecret认证,安全级别高,推荐使用,详情请参见APP认证。
- IAM: IAM认证,只允许IAM用户能访问,安全级别中等,详情请参见IAM认证。
- None: 无认证模式,所有用户均可访问。
示例中“安全认证”选择“None”,生产环境强烈建议开启APP认证或IAM认证。
None
请求协议
选择API的请求协议。
API的请求协议分为两种类型:
- HTTP:数据在传输过程中不被加密。
- HTTPS:数据在传输过程中被加密。
HTTPS
请求方法
选择API的请求方法。
支持的请求方法:GET、POST、DELETE、PUT、PATCH、HEAD、OPTIONS、ANY。
ANY
后端超时(毫秒)
设置API的后端超时时间,单位为毫秒,设置范围为1~60000毫秒。
5000
- 单击“确定”,完成触发器的创建。
查看函数运行结果
- 返回函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
- 单击函数名称,单击进入函数详情页。
- 选择“监控 > 日志”,查询函数运行日志。
相关文档
- 除使用控制台外,函数工作流支持通过API的方式管理函数触发器,详情请参见函数触发器API。
- 使用APIG触发器常见问题:函数如何获取APIG触发器中的请求路径或请求参数?
- 在FunctionGraph中使用APIG专享版触发器的最佳实践: