HTTP触发器通过发送HTTP请求触发函数执行,主要适用于快速构建Web服务等场景。HTTP触发器支持HEAD、POST、PUT、GET和DELETE方式触发函数。

HTTP触发器优势

HTTP触发器与API网关触发器均可应用于Web应用的创建。相较于API网关触发器,HTTP触发器有以下优势:

  • 简化了开发人员的学习成本和调试过程,帮助开发人员快速使用函数计算搭建Web service和API。
  • 支持选择您熟悉的HTTP测试工具验证函数计算侧的功能和性能。
  • 减少请求处理环节,HTTP触发器支持更高效的请求、响应格式,不需要编码或解码成JSON格式,性能更优。
  • 方便对接其他支持Webhook回调的服务,例如CDN回源、MNS等。

使用限制

  • 函数设置HTTP触发器后不能设置其他类型触发器。
  • 每个函数只能创建一个HTTP触发器。
  • 若您使用了版本管理功能,每个函数对应的版本或别名只能创建一个HTTP触发器。即一个函数的一个版本或一个别名对应可以创建一个HTTP触发器。版本和别名的详细信息请参见版本简介
  • Request Headers key中包含以下字段会被忽略,不支持用户自定义。另外,以x-fc-开头的Key也不支持自定义。
    • accept-encoding
    • connection
    • keep-alive
    • proxy-authorization
    • te
    • trailer
    • transfer-encoding
  • Response Headers key中包含以下字段会被忽略,不支持自定义。另外,以x-fc-开头的Key也不支持自定义。
    • connection
    • content-length
    • content-encoding
    • date
    • keep-alive
    • proxy-authenticate
    • server
    • trailer
    • transfer-encoding
    • upgrade
    • content-disposition:attachment
      说明 从安全角度考虑,使用函数计算默认的aliyuncs.com域名,服务端会在response header中强制添加content-disposition: attachment字段,此字段会使得返回结果在浏览器中以附件的方式下载。如果要移除该限制,需设置自定义域名,详情请参见绑定自定义域名
  • Request限制项。

    如果超过以下限制,会返回400状态码和InvalidArgument错误码。

    • headers大小:headers中的所有Key和Value的总大小不得超过4 KB。
    • path大小:包括各个query params,path的总大小不得超过4 KB。
    • body大小:HTTP body的总大小不得超过6 MB。
  • Response限制项。

    如果超过以下限制,会返回502状态码和BadResponse错误码。

    • headers大小:headers中的所有Key和Value的总大小不得超过4 KB。
    • body大小:HTTP body的总大小不得超过6 MB。
  • 其他使用说明。

    您可以通过绑定自定义域名为HTTP函数映射不同的HTTP访问路径,详情请参见绑定自定义域名。除此外还可以使用API网关,后端服务类型选择HTTP服务,设置HTTP函数为后端服务地址,实现类似功能,详情请参见使用函数计算作为API网关后端服务

HTTP触发器的入口函数形式

设置HTTP触发器的函数和普通函数的入口函数是有差异的,普通函数(左)与设置HTTP触发器的函数(右)的对比示例如下图所示。如果您设置HTTP触发器后依然使用普通接口,请及时修改。
  • Node.jscode_compare_js
  • Pythoncode_compare_py