文档首页> 函数工作流 FunctionGraph> 用户指南(吉隆坡区域)> 常见问题> 创建函数> FunctionGraph函数工程打包有哪些规范(限制)?
更新时间:2023-06-01 GMT+08:00

FunctionGraph函数工程打包有哪些规范(限制)?

函数除了支持在线编辑代码,还支持上传ZIP、JAR、引入OBS文件等方式上传代码。具体规范请参考打包规范说明ZIP工程包示例

打包规范说明

函数除了支持在线编辑代码,还支持上传ZIP、JAR、引入OBS文件等方式上传代码,函数工程的打包规范说明如表1所示。

表1 函数工程打包规范

编程语言

JAR包

ZIP包

OBS文件

Node.js

不支持该方式

  • 假如函数工程文件保存在“~/Code/”文件夹下,在打包的时候务必进入Code文件夹下选中所有工程文件进行打包,这样做的目的是:入口函数是程序执行的入口,确保解压后,入口函数所在的文件位于根目录。
  • 如果函数工程引入了第三方依赖,可以将第三方依赖打成ZIP包,在函数代码界面设置外部依赖包;也可以将第三方依赖和函数工程文件一起打包。

将工程打成ZIP包,上传到OBS存储桶。

Python 2.7

不支持该方式

  • 假如函数工程文件保存在“~/Code/”文件夹下,在打包的时候务必进入Code文件夹下选中所有工程文件进行打包,这样做的目的是:入口函数是程序执行的入口,确保解压后,入口函数所在的文件位于根目录。
  • 如果函数工程引入了第三方依赖,可以将第三方依赖打成ZIP包,在函数代码界面设置外部依赖包;也可以将第三方依赖和函数工程文件一起打包。

将工程打成ZIP包,上传到OBS存储桶。

Python 3.6

不支持该方式

  • 假如函数工程文件保存在“~/Code/”文件夹下,在打包的时候务必进入Code文件夹下选中所有工程文件进行打包,这样做的目的是:入口函数是程序执行的入口,确保解压后,入口函数所在的文件位于根目录。
  • 如果函数工程引入了第三方依赖,可以将第三方依赖打成ZIP包,在函数代码界面设置外部依赖包;也可以将第三方依赖和函数工程文件一起打包。

将工程打成ZIP包,上传到OBS存储桶。

Java 8

如果函数没有引用第三方件,可以直接将函数工程编译成Jar包。

如果函数引用第三方件,将函数工程编译成Jar包后,将所有依赖三方件和函数jar包打成ZIP包。

将工程打成ZIP包,上传到OBS存储桶。

Go 1.x

不支持该方式

必须在编译之后打zip包,编译后的二进制文件必须与执行函数入口保持一致,例如二进制名称为Handler,则执行入口为Handler。

将工程打成ZIP包,上传到OBS存储桶。

ZIP工程包示例

  • Nods.js工程ZIP包目录示例
    Example.zip                            示例工程包
    |--- lib                               业务文件目录
    |--- node_modules                      npm三方件目录
    |--- index.js                          入口js文件(必选)
    |--- package.json                      npm项目管理文件
  • Python工程ZIP包目录示例
    Example.zip                            示例工程包
    |--- com                               业务文件目录
    |--- PLI                               第三方依赖PLI目录
    |--- index.py                          入口py文件(必选)
    |--- watermark.py                      实现打水印功能的py文件
    |--- watermark.png                     水印图片
  • Java工程ZIP包目录示例
    Example.zip                            示例工程包
    |--- obstest.jar                       业务功能JAR包
    |--- esdk-obs-java-3.20.2.jar          第三方依赖JAR包
    |--- jackson-core-2.10.0.jar           第三方依赖JAR包
    |--- jackson-databind-2.10.0.jar       第三方依赖JAR包
    |--- log4j-api-2.12.0.jar              第三方依赖JAR包
    |--- log4j-core-2.12.0.jar             第三方依赖JAR包
    |--- okhttp-3.14.2.jar                 第三方依赖JAR包
    |--- okio-1.17.2.jar                   第三方依赖JAR包
  • Go工程ZIP包目录示例
    Example.zip                            示例工程包
    |--- testplugin.so                     业务功能包