全部产品

3. 测试函数

更新时间:2018-08-21 15:12:25

API网关触发函数执行时,API网关的信息以event作为输入参数传给函数,您可以将API 网关传入的event信息作为参数,调试函数,测试代码编写是否正确。

  • 首先,您需要确保API网关对接函数计算过程中的参数格式满足要求。
  • 然后,您可以在控制台编辑触发事件的格式,测试函数。

API网关与函数计算格式对接要求

API网关传入参数格式

当以函数计算作为API网关的后端服务时,API网关会把请求参数通过一个固定结构传给函数计算的入参event,函数计算通过如下结构去获取需要的参数,然后处理,结构如下:

  1. {
  2. "path":"api request path",
  3. "httpMethod":"request method name",
  4. "headers":{},
  5. "queryParameters":{},
  6. "pathParameters":{},
  7. "body":"string of request payload",
  8. "isBase64Encoded":true|false
  9. }
  • 如果isBase64Encoded的值为true,表示API网关传给函数计算的body内容已Base64编码。函数计算需要先对body内容Base64解码后再处理。
  • 如果isBase64Encoded的值为false,表示API网关没有对body内容Base64编码,在函数中可以直接获取body内容。

函数计算返回参数格式

函数计算需要将输出内容通过如下JSON格式返回给API网关,方便API网关解析。

  1. {
  2. "isBase64Encoded":true|false,
  3. "statusCode":httpStatusCode,
  4. "headers":{response headers},
  5. "body":"..."
  6. }
  • isBase64Encoded为函数计算返回给API网关的编码形式:
    • 当body内容为二进制编码时,需在函数计算中对body内容Base64编码,设置isBase64Encoded的值为true
    • 如果body内容无需Base64编码,isBase64Encoded的值为false
    • API网关会对isBase64Encoded的值为true的body内容Base64解码后,再返回给客户端。
  • 如果函数计算返回不符合格式要求的返回结果,API网关将返回503 Service Unavailable给客户端。

测试函数

在控制台的代码编辑页面

  • 点击代码执行,点击触发事件,将API网关的传入参数格式写入触发事件中。
  • 点击确定,保存测试事件。
  • 点击执行,触发函数运行。

下一步

创建API