函数工程打包规范
打包规范说明
函数除了支持在线编辑代码,还支持上传ZIP、JAR、引入OBS文件等方式上传代码,函数工程的打包规范说明如表1所示。
编程语言 |
JAR包 |
ZIP包 |
OBS文件 |
---|---|---|---|
Node.js |
不支持该方式 |
|
将工程打成ZIP包,上传到OBS存储桶。 |
PHP |
不支持该方式 |
|
将工程打成ZIP包,上传到OBS存储桶。 |
Python 2.7 |
不支持该方式 |
|
将工程打成ZIP包,上传到OBS存储桶。 |
Python 3.6 |
不支持该方式 |
|
将工程打成ZIP包,上传到OBS存储桶。 |
Java 8 |
如果函数没有引用第三方件,可以直接将函数工程编译成Jar包。 |
如果函数引用第三方件,将函数工程编译成Jar包后,将所有依赖三方件和函数jar包打成ZIP包。 |
将工程打成ZIP包,上传到OBS存储桶。 |
Go 1.8 |
不支持该方式 |
必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler,其中Handler为入口函数。 |
将工程打成ZIP包,上传到OBS存储桶。 |
Go 1.x |
不支持该方式 |
必须在编译之后打zip包,编译后的二进制文件必须与执行函数入口保持一致,例如二进制名称为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项目管理文件
- PHP工程ZIP包目录示例
Example.zip 示例工程包 |--- ext 扩展库目录 |--- pear PHP扩展与应用仓库 |--- index.php 入口PHP文件
- 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 业务功能包
- 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 可执行引导文件