赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 函数计算 FC 3.0
  4. 操作指南
  5. 触发器(云服务集成)
  6. HTTP触发器
  7. 配置HTTP触发器

配置HTTP触发器

  • HTTP触发器
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

函数计算支持HTTP触发器,配置HTTP触发器的函数可以通过HTTP请求被触发执行。函数对HTTP请求进行处理,并将处理结果返回给调用端。本文介绍如何在函数计算控制台配置HTTP触发器并使用HTTP请求触发。

前提条件

创建函数

步骤一:创建触发器

  1. 登录函数计算控制台,在左侧导航栏,单击函数。

  2. 在顶部菜单栏,选择地域,然后在函数页面,单击目标函数。

  3. 在函数详情页面,选择配置页签,在左侧导航栏,单击触发器,然后单击创建触发器。

  4. 在创建触发器面板,填写相关信息,然后单击确定。

    配置项

    操作

    本文示例

    触发器类型

    选择HTTP 触发器。

    HTTP 触发器

    名称

    填写自定义的触发器名称。

    http-trigger

    版本或别名

    默认值为LATEST,如果您需要创建其他版本或别名的触发器,需先在函数详情页的版本或别名下拉列表选择该版本。关于版本和别名的简介,请参见版本管理和别名管理。

    LATEST

    请求方法

    指定可以通过哪些方法触发该HTTP触发器。

    GET, POST, PUT, DELETE

    禁用公网访问 URL

    默认选择否,即允许公网域名访问该触发器。

    如果选择是,创建的HTTP触发器将不提供默认的公网域名。此时,如果通过公网域名来调用函数,将会提示错误access denied due to function internet URL is disable。通过自定义域名的访问,则不受影响。

    否

    认证方式

    选择函数计算对HTTP请求的认证方式。取值说明如下:

    • 无需认证:无需对HTTP请求进行身份认证,支持匿名访问,任何人可发起HTTP请求调用您的函数。

    • 签名认证:需要对HTTP请求进行身份认证。关于签名认证的示例代码,请参见通过签名访问HTTP触发器地址。

    • JWT 认证:需要对HTTP请求进行JWT认证。更多信息,请参见为HTTP触发器配置JWT认证鉴权。

    无需认证

    创建完成后,您可以根据情况对HTTP触发器的配置项进行修改,包括版本或别名、请求方法、禁用公网访问 URL和认证方式。

步骤二:编写并部署代码

完成创建HTTP触发器后,您可以开始编写函数代码。

在函数详情页面,单击代码页签,在代码编辑器中编写代码,然后单击部署代码。关于示例代码,请参见函数计算文档操作指南 > 代码开发中不同运行时的请求处理程序文档。

步骤三:测试函数

方式一:使用控制台测试函数

在函数详情页面,单击代码页签。

  • 同步调用

    单击测试函数。

  • 异步调用

    单击测试函数右侧的down图标,选择异步调用,然后单击测试函数。

执行完成后,在代码页签,您可以查看执行结果。

方式二:使用cURL测试函数

在函数详情页面,单击配置页签,然后在左侧导航栏,选择触发器。在HTTP触发器的配置信息里选择公网访问地址复制用于以下测试。

image

同步调用

在命令行执行如下命令,请将https://example.cn-shenzhen.fcapp.run替换为您的HTTP触发器公网访问地址,将$path替换为您需要调用的API接口名称。

curl -v https://example.cn-shenzhen.fcapp.run/$path
说明
  • 调用Web函数:以Flask为例,假设您要测试一个路由定义为@app.route('/test')的Python函数,请将$path替换为test。当测试路由定义为@app.route('/')的Python函数时,请您直接调用HTTP触发器公网访问地址。

  • 调用事件函数:请您直接调用HTTP触发器公网访问地址。

执行完成后,函数计算会返回代码的执行结果。

异步调用

在命令行执行如下命令,请将https://example.cn-shenzhen.fcapp.run替换为您的HTTP触发器公网访问地址,将$path替换为您需要调用的API接口名称。

curl -v -H "X-Fc-Invocation-Type: Async" https://http-***.cn-shenzhen.fcapp.run/$path
说明
  • 调用Web函数:以Flask为例,假设您要测试一个路由定义为@app.route('/test')的Python函数,请将$path替换为test。当测试路由定义为@app.route('/')的Python函数时,请您直接调用HTTP触发器公网访问地址。

  • 调用事件函数:请您直接调用HTTP触发器公网访问地址。

执行完成后,函数计算会返回接收请求的结果。其中状态码202表示请求成功提交,其他状态码则表示调用出现了错误。如需了解错误码对应的具体错误原因,请参见常见问题(错误排查)。

方式三:(不推荐)使用浏览器测试函数

  1. 在函数详情页面,单击配置页签,然后在左侧导航栏,选择触发器。在HTTP触发器的配置信息里选择公网访问地址复制,将HTTP触发器URL输入浏览器地址栏,按回车键执行。

  2. 执行完成后,浏览器中会返回执行结果文件。

(可选)使用API网关保护函数

默认情况下,函数计算不会对HTTP请求进行身份验证,支持匿名访问函数,即任何人都可以发送HTTP请求调用您的函数。为防止非法用户访问您的函数,引起不必要的资源浪费或安全隐患,您可以开启身份认证的同时将HTTP函数与API网关进行对接,利用API网关的IP访问控制插件、JWT认证插件或BasicAuth插件等保护您的HTTP函数。

  1. 在函数计算控制台找到目标函数,在函数详情页面单击配置页签,在左侧导航栏选择触发器,然后单击编辑。

  2. 在编辑触发器面板,禁用公网访问 URL选择为是。

    image

  3. 登录API网关控制台,切换至HTTP函数所在地域。

  4. 创建分组和API。

    创建API使得外部应用能够按照指定的方式调用内部的函数服务,使用API分组组织和管理多个相关的API接口,便于实施统一的安全策略和流量控制措施。

    1. 在API网关控制台,左侧导航栏选择API管理>分组管理,单击创建分组。

    2. 在创建分组弹框页面,选择实例,输入分组名称为FC-Group,BasePath为/,单击确定。

    3. 单击创建API,在基本信息栏,配置如下信息,并单击下一步。

      image

    4. 在定义API请求栏,配置请求Path为/,其他信息保持默认,单击下一步。

      image

    5. 在定义API后端服务栏,配置触发器路径为函数计算触发器的内网访问地址https://***-***.cn-hangzhou-vpc.fcapp.run,如图所示进行配置,并单击下一步。

      image

    6. 在定义返回结果栏,保持系统默认配置,单击创建,在创建成功之后,单击API操作列中的发布。

  5. 调试API,利用API网关提供的在线调试工具,可以在正式发布前测试API的功能是否按预期工作,及时发现并解决问题。调试通过表示网关API与函数计算已连通。

    1. 在API网关控制台左侧导航栏选择API调用>调试。

    2. 在调试页面选择,所创建的FC-testAPI,然后单击发送请求,看到下图信息说明配置成功。

      image

  6. 创建一个类型为后端签名的插件,key和secret分别配置为您的阿里云账号的AccessKey ID和AccessKey Secret。然后绑定您刚才创建的API。具体操作,请参见插件概述。

    image

  7. 将您的域名通过CNAME方式解析到API网关提供的二级域名上。

    1. 在API网关控制台,左侧导航栏选择API管理 > 分组管理,选择公网二级域名复制。image

    2. 进入自己的域名解析管理页面,阿里云的域名解析管理页面入口在:https://dns.console.aliyun.com,在域名列表页面找到要管理的域名,点击域名上的链接进入域名的管理页面。

      image

      说明

      中国内地Region的独立域名需要在阿里云备案或者将备案接入阿里云。

    3. 在API网关控制台,左侧导航栏选择API管理 > 分组管理,进入独立域名区域。在页面右下方看到绑定域名的按钮,点击按钮,填写您的域名,点击确定后域名绑定成功。

      image

完成以上步骤后,您可以通过自己的域名访问HTTP函数。您还可以创建以下插件,并将其绑定到您的API,保护您的HTTP函数。

  • IP访问控制插件

  • JWT认证插件

  • BasicAuth插件

错误排查

错误主要分为以下两种。

  • 请求错误是指发送的Request不符合标准,在Response里报错状态码为4xx。

  • 函数错误即编写的函数有问题,会报5xx状态码。

下表描述请求错误和函数错误可能出现的场景,以便您迅速排查问题。

错误类型

HTTP状态码

原因分析

是否计费

请求错误

400

您的请求超过Request限制项的限制。更多信息,请参见HTTP触发器概述。

否

400

调用需要身份认证的函数的Request没有传入Date信息或Authorization信息。

否

403

调用需要身份认证的函数的Request的签名错误,即Authorization不正确。由于Date参与签名计算,且超过15 min,签名失效,一种常见的原因是使用需要访问认证的HTTP触发器,Request header中发送的Date据当前时间超过15 min,导致签名失效。

否

403

您的Request请求使用HTTP触发器中未配置的请求方法。例如,HTTP触发器中的请求方法只配置GET方法,却发送POST方法的HTTP请求。

否

404

向没有设置HTTP触发器的函数发送HTTP请求。

否

用户流控

429

用户被流控,可减小并发量或者联系函数计算开发团队提高并发度。

否

函数错误

502

函数的返回值超过Response限制项的限制。更多信息,请参见HTTP触发器概述。

是

502

函数代码有语法错误或者异常。

是

502

向未使用HTTP入口函数的函数发送HTTP请求。

是

系统错误

500

函数计算系统错误,可重试解决。

否

系统流控

503

函数计算系统流控。可用指数退避方式重试。

否

如果问题还未能解决,请加入钉钉用户群(钉钉群号:64970014484),联系函数计算工程师及时沟通处理。。

相关文章

HTTP触发器概述 2025-04-16 14:38

HTTP触发器通过发送HTTP请求触发函数执行,主要适用于快速构建Web服务等场景。在使用HTTP触发器前,您需要关注触发器的限制及支持的HTTP/HTTPS协议的限制,防止超过限制而导致函数报错。同时,本文介绍了HTTP触发器调用的方式、认证鉴权方式和跨域请求的使用方式等。

配置HTTP触发器 2025-04-16 14:38

函数计算支持HTTP触发器,配置HTTP触发器的函数可以通过HTTP请求被触发执行。函数对HTTP请求进行处理,并将处理结果返回给调用端。本文介绍如何在

HTTP触发器调用函数 2025-04-16 14:38

HTTP触发器提供了函数专用的HTTP和HTTPS地址,您可以直接通过HTTP触发器提供的URL调用函数。本文将介绍内置运行时中使用HTTP触发器调用函数的方法。关于自定义运行时HTTP触发器调用函数的相关内容,请参见Web函数。 注意事项 在函数计算3.0版中,自定义运行时和自定义镜像运行环境的H

为HTTP触发器配置JWT认证鉴权 2025-04-16 14:38

在函数计算中,为HTTP触发器配置JWT认证鉴权,可以确保仅持有有效JWT的客户端才能访问函数,从而提升HTTP服务的安全性,有效防止未经授权的访问和阻挡恶意攻击。 背景信息

为HTTP触发器配置签名认证 2025-04-16 14:38

函数计算支持为HTTP触发器配置签名认证,当请求消息到达

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号