文档首页> > 开发指南> 概述> 函数工程打包规范

函数工程打包规范

分享
更新时间: 2019/08/16 11:45

打包规范说明

函数除了支持在线编辑代码,还支持上传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.3

不支持该方式

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

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

Java 8

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

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

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

Go 1.8

不支持该方式

必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler,其中Handler为入口函数。

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

C#

不支持该方式

必须在编译之后打zip包,必须包含“工程名.deps.json“,”工程名.dll“,”工程名.runtimeconfig.json“,”工程名.pdb“和”HC.Serverless.Function.Common.dll“文件。

将工程打成ZIP包,直接上传函数或上传到OBS存储桶。

定制运行时

不支持该方式

打zip包,必须包含“bootstrap“可执行引导文件。

将工程打成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                            示例工程包
    |--- DISTest.jar                       业务功能JAR包
    |--- commons-lang-2.6.jar              第三方依赖JAR包
    |--- commons-beanutils-1.9.1.jar       第三方依赖JAR包
    |--- commons-collections-3.2.1.jar     第三方依赖JAR包
    |--- commons-logging-1.1.1.jar         第三方依赖JAR包
    |--- ezmorph-1.0.6.jar                 第三方依赖JAR包
    |--- json-lib-2.4.jar                  第三方依赖JAR包
  • Go工程ZIP包目录示例
    Example.zip                            示例工程包
    |--- testplugin.so                     业务功能包
  • C#工程ZIP包目录示例
    Example.zip                                   示例工程包
    |--- fssExampleCsharp2.0.deps.json            工程编译产生文件
    |--- fssExampleCsharp2.0.dll                  工程编译产生文件
    |--- fssExampleCsharp2.0.pdb                  工程编译产生文件
    |--- fssExampleCsharp2.0.runtimeconfig.json   工程编译产生文件
    |--- Handler                                  帮助文件,可直接使用
    |--- HC.Serverless.Function.Common.dll        函数工作流提供的dll
  • 定制运行时
    Example.zip                                   示例工程包
    |--- bootstrap                               可执行引导文件
如果您喜欢这篇文档,您还可以:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区