后端使用函数计算

API网关 APIGW

  • 功能发布记录
  • 产品描述
    • 介绍
    • 使用限制
    • 产品优势
    • 产品功能
    • 核心概念
  • 相关协议
    • API网关服务等级协议(SLA)
  • 快速入门
    • API配置
  • 操作指南
    • 后端密钥管理
    • 后端使用函数计算
    • 访问控制
    • 私有网络VPC开放API
    • 流控管理
    • API的导入导出
    • Model管理
    • APP管理
    • 跨域资源共享CORS
    • 分组管理
    • API管理
  • 常见问题
    • 常见问题
    • 常见错误码
  • 调用指南
    • 步骤3-调用API
    • 步骤1-创建应用
    • APP认证签名串生成
    • 步骤2-获取API授权
  • 产品定价
    • 产品定价
  • API中心使用指南
    • 产品描述
    • 操作指南
      • 标签管理
      • 服务管理
      • 数据模型管理
      • API管理
All documents
menu
No results found, please re-enter

API网关 APIGW

  • 功能发布记录
  • 产品描述
    • 介绍
    • 使用限制
    • 产品优势
    • 产品功能
    • 核心概念
  • 相关协议
    • API网关服务等级协议(SLA)
  • 快速入门
    • API配置
  • 操作指南
    • 后端密钥管理
    • 后端使用函数计算
    • 访问控制
    • 私有网络VPC开放API
    • 流控管理
    • API的导入导出
    • Model管理
    • APP管理
    • 跨域资源共享CORS
    • 分组管理
    • API管理
  • 常见问题
    • 常见问题
    • 常见错误码
  • 调用指南
    • 步骤3-调用API
    • 步骤1-创建应用
    • APP认证签名串生成
    • 步骤2-获取API授权
  • 产品定价
    • 产品定价
  • API中心使用指南
    • 产品描述
    • 操作指南
      • 标签管理
      • 服务管理
      • 数据模型管理
      • API管理
  • Document center
  • arrow
  • API网关APIGW
  • arrow
  • 操作指南
  • arrow
  • 后端使用函数计算
Table of contents on this page
  • 介绍
  • 配置方式
  • 函数计算配置
  • 网关配置
  • Body传递规则
  • 网关到函数
  • 按Json处理
  • 按字符串处理
  • 按二进制处理(经过Base64Encode)
  • 函数到网关
  • 测试方式

后端使用函数计算

Updated at:2025-08-20

介绍

函数计算CFC(Cloud Function Compute)提供基于事件触发、全托管的云端计算能力。由于其“无服务器”特性,您仅需要开发业务代码并上传,无需关注和配置服务器资源。 使用API网关,您可直接将函数计算作为您的后端,在无需关注后端服务资源的同时,使用API网关的流控、认证、访问控制等API管理能力。

配置方式

函数计算配置

API网关使用函数计算作为后端时,API网关收到客户端的http/https请求后,会将请求信息封装成符合函数计算输入的event格式。网关调用CFC时函数接受到的event格式(适用于js/python)如下:

JSON
1{
2    "path": "HTTP请求的路径",  
3    "httpMethod": "HTTp请求的方法", 
4    "headers": {请求头},  
5    "queryStringParameters": {query string 参数},  
6    "pathParameters":  {代理路径参数},  
7    "requestContext": {请求上下文},  
8    "body": "请求体",  
9    "isBase64Encoded": "请求体是否为Base64编码"  
10}

注意:API网关接入时,event定义中的path与CFC http触发器的event定义略有不同。API网关接入时,包含resource字段表示在API网关中定义的请求路径,pathParameters表示匹配到的路径参数,而path表示的为函数计算本身的请求路径。

函数计算处理事件后,需要将计算结果封装成固定格式,以便于API网关使用这些信息构造成http response。网关调用CFC时函数需要的返回格式(适用于js/python)如下:

JSON
1{
2    "isBase64Encoded": true|false,
3    "statusCode": httpStatusCode,
4    "headers": { "headerName": "headerValue", ... },
5    "body": "..."
6}

JAVA情况下,函数的输入为InputStream,输出为OutputStream。InputStream转为Json后的格式与event格式一致,返回的结果通过UTF-8编码后写到OutputStream中即可。

网关配置

基本的API配置方法请参考API开放指南。

在配置API后端时,后端服务类型选择『函数计算』,如下图。

选择函数计算后,在后端服务地址中输入函数的BRN,其他配置与普通后端的配置方法一致,如下图。

函数的BRN可通过如下步骤获取。

点击『查看函数计算列表』。

点击具体函数进入函数详情。

选择版本后,在BRN一栏点击『复制』按钮复制函数BRN。

Body传递规则

网关到函数

网关需要将客户端请求中的body封装到为json格式的入参event中的"body"字段,对于不同的body格式,处理方式不同。如果客户端到网关的body为key-value形式的请求,body将直接处理为json;对body为text形式的请求,网关发往后端为string;对于发往后端为包含文件等二进制的情况,则经过Base64编码后以字符串形式放到event的body字段。具体处理如下:

按Json处理
  • application/json
  • application/x-www-form-urlencoded
按字符串处理
  • text/*
  • application/xml
  • application/rss+xml
  • application/problem+xml
  • application/atom+xml
按二进制处理(经过Base64Encode)
  • multipart/form-data
  • 其他所有情况

函数到网关

函数返回跟业务需求选择是否进行Base64编码,并在isBase64Encoded说明body是否经过编码。如果函数返回的body经过Base64编码,则网关会进行Base64解码后再讲body返回给API用户。

注意:如果返回给网关的Header未给定Conten-Type,则网关返回给用户时默认使用application/json;charset=UTF-8。

测试方式

特别的需要注意以下几点:

  • 函数的调用是否正常
  • 发往函数的event中path/query/header/body的内容是否正确
  • 有参数映射的情况下发往函数的请求映射是否正确
  • 返回的header是否符合预期
  • 不同content-type对编码的处理是否正确
  • 对函数返回的body进行编码,确认网关层面是否有对body做解码操作

Previous
后端密钥管理
Next
访问控制