在阿里函数计算中,请问如何关闭 http headers 里返回的云函数相关的字段?[阿里云Serverless]

在阿里函数计算中,请问如何关闭 http headers 里返回的云函数相关的字段?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 在阿里函数计算中,如果希望关闭http headers里返回的云函数相关的字段,需要在函数内部进行处理。具体来说,API网关调用函数计算的事件函数时,会将API的相关数据转换为Map形式传给函数计算服务。然后,函数计算服务处理后,会按照一定的格式返回statusCode、headers、body等相关数据。

    因此,您可以通过修改函数计算服务的输出格式来控制返回的http headers。例如,可以在函数内部定义一个HTTP状态码和一个由Python list对象组成的HTTP Headers。其中,每个Header都是一个包含两个Python str的Python tuple对象。

    此外,如果您没有自定义Headers,函数计算的Response Headers会默认设置为Request请求中相应的字段。例如,Access-Control-Allow-Origin:Request请求的Origin Header和Access-Control-Allow-Credentials: true等。需要注意的是,从安全角度考虑,使用函数计算默认的aliyuncs.com域名,服务端会在Response Headers中强制添加content-disposition: attachment字段,此字段会使得返回结果在浏览器中以附件的方式下载。

  2. 关闭阿里云函数计算的 HTTP Headers 相关字段,可以采用以下方式:

    1. 删除不必要的字段:在响应头部删除不必要的字段;
    2. 设置响应头过滤器:在函数内部使用 Response.setHeader() 方法,移除特定字段。
    3. 使用 Lambda 层过滤器:使用第三方工具(如 ExpressJS)来控制头部字段。
  3. 当HTTP请求处理程序被调用时,和调用一个Web API方式一样,您可以直接使用cURL、Postman或浏览器等方式直接请求调用。如果您是通过浏览器访问HTTP触发器的,对应的函数被强制下载时,请参见解决方法。https://help.aliyun.com/zh/fc/http-handlers-2

    使用限制
    一个HTTP函数的一个版本或别名,最多只能创建一个HTTP类型的触发器。详细信息,请参见管理版本和管理别名。

    HTTP Request限制

    Request Headers不支持以x-fc-开头的自定义字段和以下自定义字段:

    connection

    keep-alive

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

    Headers大小:Headers中的所有Key和Value的总大小不得超过8 KB。

    Path大小:包括所有的Query Params,Path的总大小不得超过4 KB。

    Body大小:同步调用请求的Body的总大小不得超过32 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的总大小不得超过8 KB。

    其他使用说明

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