文档首页/ 函数工作流 FunctionGraph/ 用户指南/ 配置函数/ 配置函数的触发器/ 使用API网关服务(APIG专享版)触发器
更新时间:2025-07-09 GMT+08:00
分享

使用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专享版触发器

  1. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 单击右上方的“创建函数”,进入“创建函数”页面。
  3. 选择“创建空白函数”,配置以下函数信息,其他参数保持默认即可。

    • 函数名称:输入自定义的函数名称,例如:apig_demo。
    • 企业项目:选择“default”。
    • 委托名称:选择“未使用任何委托”。
    • 运行时语言:选择“Python 3.12”。

  4. 单击“创建函数”,完成函数创建并进入函数详情页。
  5. 在“代码”页签下,复制以下代码至代码编辑区并单击“部署代码”。

    # -*- 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
        }

  6. 图1所示选择“设置 > 触发器”,单击“创建触发器”,弹出“创建触发器”对话框。

    图1 创建触发器

  7. 参考表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

  8. 单击“确定”,完成触发器的创建。

调用函数

  1. 图2所示复制APIG触发器的调用URL,打开任意浏览器,在地址栏中输入调用地址并访问。

    图2 复制APIG调用URL

  2. 函数执行完毕,得到返回结果,如图3所示。

    图3 返回结果

查看函数运行结果

  1. 返回函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。
  2. 单击函数名称,单击进入函数详情页。
  3. 选择“监控 > 日志”,查询函数运行日志。

相关文档

相关文档