创建Python函数

更新时间:2024-11-14 10:08:43

本文将为您介绍如何创建Python函数。

前提条件

已创建完成业务流程,详情请参见创建并管理业务流程

背景信息

您可以在数据服务中创建函数、测试函数、发布函数,发布后的函数可被进一步关联至API,作为API的过滤器,对API的请求参数或返回结果进行加工处理,从而实现API的复杂查询需求,灵活适配各类业务场景。

使用限制

  • 您需要购买DataWorks专业版及以上版本,才可以使用Python函数及过滤器功能。

  • Python函数需要运行在公共数据服务资源组中。

  • Python函数正在改造中,暂不支持新建、克隆和发布新的Python函数。如需使用函数功能,建议您使用Aviator函数。详情请参见创建Aviator函数

  • 当使用函数作为API过滤器时,前置过滤器和后置过滤器的函数类型需要保持一致。即:均选择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形式,并使用该JSONevent参数进行传参,且JSON中的value仅支持字符串类型。

  • 前置过滤器的输出结果为key-value map。该输出结果将作为SQL语句执行入参,因此仅支持输出深度为1key-value map。

进入数据服务页面

登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据服务,在下拉框中选择对应工作空间后单击进入数据服务

创建函数

  1. 服务开发页面,鼠标悬停至image.png图标,单击新建函数 > 新建Python函数

    您也可以找到相应的业务流程,右键单击函数,选择新建 > 新建Python函数

  2. 新建Python函数对话框中,配置各项参数。

    PYthon

    参数

    描述

    参数

    描述

    函数名称

    自定义函数的名称,不得超过256个字符。

    函数模板

    仅支持Python3 Standard v1模板。

    运行环境

    仅支持Python 3.0。

    函数描述

    对函数进行简单描述,不得超过512个字符。

    目标文件夹

    存放函数的目录。

  3. 单击确认

  4. 在函数的编辑页面,配置函数。

    1. 编辑代码区域,输入函数的代码。

    2. 环境配置区域,设置内存超时时间

  5. 单击工具栏中的保存图标。

后续步骤

  • 创建函数后您可以对函数进行测试和发布。详情请参见测试函数发布函数

  • 发布后的函数可以进一步关联至API,作为API的前置和后置过滤器,对请求参数和返回结果进行加工处理,详情请参见:使用函数作为API过滤器

  • 本页导读 (1)
  • 前提条件
  • 背景信息
  • 使用限制
  • 函数结构说明
  • 进入数据服务页面
  • 创建函数
  • 后续步骤
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等