本文介绍Custom Runtime中HTTP请求处理程序的结构特点、调用说明、使用限制、使用示例和常见问题。

背景信息

函数计算会将用户的请求,包括Method、Path、Body、Query和Headers以及函数计算生成的Common Header透传给HTTP Server。您可以平滑迁移已有的HTTP Web应用。fccustomeruntimehttp

函数调用说明

当HTTP请求处理程序被调用时,和调用一个Web API方式一样,您可以直接使用cURL、Postman或浏览器等方式直接请求调用。如果您是通过浏览器访问HTTP触发器的,对应的函数被强制下载时,请参见解决方法

Header 描述
(可选)x-fc-base-path 当您尚未配置自定义域名时,x-fc-base-path的值是/2016-08-15/proxy/${servicename}/${functionname}/
(可选)x-fc-status 当您的HTTP函数不是应用一键迁移,而是单纯新开发的Web API时,其性质和事件函数类似。
通过Headers中的x-fc-status响应,向函数计算汇报本地函数是否执行成功。
  • 不设置x-fc-status函数计算默认本次调用是成功执行的,但是您的函数可能有异常,没有向函数计算汇报,函数计算会认为这次函数执行没有报错,在业务逻辑上可能没有影响,但是在监控可观测性上会有影响。如下图所示:image8hanshujisuanruntime
  • 设置x-fc-status:当您的函数存在异常,通过x-fc-status响应向函数计算汇报本次函数执行失败,并将错误堆栈信息打印到日志中。如下图所示:image9runtimefc
说明 在返回的HTTP响应中,建议您同时设置StatusCodex-fc-status

使用限制

  • 一个HTTP函数的一个版本或别名,最多只能创建一个HTTP类型的触发器。详细信息,请参见管理版本管理别名
  • HTTP Request限制
    • Request Headers不支持以x-fc-开头的自定义字段和以下自定义字段:
      • connection
      • keep-alive
    • 如果Request超过以下限制,会返回400状态码和InvalidArgument错误码。
      • Headers大小:Headers中的所有Key和Value的总大小不得超过4 KB。
      • Path大小:包括所有的Query Params,Path的总大小不得超过4 KB。
      • Body大小:同步调用请求的Body的总大小不得超过16 MB,异步调用请求的Body的总大小不得超过128 KB。
  • HTTP Response限制
    • Response Headers不支持以x-fc-开头的自定义字段和以下自定义字段:
      • connection
      • content-length
      • date
      • keep-alive
      • server
      • content-disposition:attachment
        说明 从安全角度考虑,使用函数计算默认的aliyuncs.com域名,服务端会在Response Headers中强制添加content-disposition: attachment字段,此字段会使得返回结果在浏览器中以附件的方式下载。如果要移除该限制,需设置自定义域名。详细信息,请参见配置自定义域名
    • 如果Response超过以下限制,会返回502状态码和BadResponse错误码。
      • Headers大小:Headers中的所有Key和Value的总大小不得超过4 KB。
  • 其他使用说明

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

多语言使用示例

Python

C++

Spring Boot

F#

常见问题