本文将为您介绍如何创建Python函数,并使用Python函数作为API的前置或后置过滤器。
背景信息
使用限制
- 您需要购买DataWorks专业版及以上版本,才可以使用Python函数及过滤器功能。
- Python函数需要运行在公共数据服务资源组中。
- Python函数正在改造中,暂不支持新建、克隆和发布新的Python函数。如需使用函数功能,建议您使用Aviator函数。详情请参见创建和使用Aviator函数(过滤器)。
- 当使用函数作为API过滤器时,前置过滤器和后置过滤器的函数类型需要保持一致。即:均选择Aviator函数类型或Python函数类型。暂不支持对同一API的前置和后置过滤器选择不同的函数类型。
Python函数作为过滤器的使用限制如下:
- 过滤器仅支持Python 3.0的语法。
- 过滤器仅支持
import json,time,random,pickle,re,math
。 - 过滤器限定函数名
def handler(event,context):
。
函数结构说明
# -*- coding: utf-8 -*-
# event (str) : in filter it is the API result, in other cases, it is your param
# context : some environment information, temporarily useless
# import module limit: json,time,random,pickle,re,math
# do not modify function name
import json
def handler(event,context):
# load str to json object
obj = json.loads(event)
# add your code here
# end add
return obj
您可以基于该函数进行修改,并根据自身需求修改函数的入参名称。
参数1[context]:字符串类型,包含API执行的上下文环境,目前为空,暂未启用。
参数2[event]:字符串类型,包含API的请求参数,或者是上一个过滤器处理后的结果。
说明
- 系统会将API请求参数或上个过滤器的输出结果,从key-value map转换为JSON形式,并使用该JSON对event参数进行传参,且JSON中的value仅支持字符串类型。
- 前置过滤器的输出结果为key-value map。该输出结果将作为SQL语句执行入参,因此仅支持输出深度为1的key-value map。