创建程序包
要创建FunctionGraph函数,首先需要创建函数部署程序包(包含代码和所有依赖项的文件)。用户可以自行创建部署程序包或直接在FunctionGraph函数控制台在线编辑代码,控制台将创建并上传部署程序包,从而实现FunctionGraph函数的创建。用户在编辑函数代码时支持类似工程方式的管理,可以创建文件、文件夹并对其进行编辑。如果用户代码是上传zip包的方式,则前端进行相应解压展示,提供编辑能力。
- 用户在本地开发程序之后打包,必须是ZIP包(Java、Node.js、Python、Go)或者JAR包(Java),上传至FunctionGraph即可运行,无需其它的部署操作。
- 制作ZIP包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
- 对于Go runtime,必须在编译之后打zip包,编译后的动态库文件名称必须与函数执行入口的插件名称保持一致,例如:动态库名称为testplugin.so,则“函数执行入口”命名为testplugin.Handler。
- 对于Java runtime,由于Java是编译型语言,所以不能在线编辑代码。如果函数没有引入其他第三方件,可以选择上传函数jar包。如果函数中引入其他三方件,则需要制作包含所有依赖三方件和函数jar的zip包,选择上传zip文件。
FunctionGraph函数支持的上传程序包的方式如表1。
运行时 |
在线编辑 |
上传ZIP文件 |
上传JAR包 |
从OBS上传文件 |
---|---|---|---|---|
支持 |
支持 |
不支持 |
支持 |
|
支持 |
支持 |
不支持 |
支持 |
|
不支持 |
支持 |
支持 |
支持 |
|
不支持 |
支持 |
不支持 |
支持 |
|
不支持 |
支持 |
不支持 |
支持 |
|
支持 |
支持 |
不支持 |
支持 |
|
支持 |
支持 |
不支持 |
支持 |
上传代码时,如果代码中包含敏感信息(如账户密码等),请您自行加密,以防止信息泄露。
代码上传方式 |
操作 |
---|---|
在线编辑 |
用户在编辑函数代码时支持类似工程方式的管理,可以创建文件、文件夹并对其进行编辑。如果用户代码是上传zip包的方式,则前端进行相应解压展示,并支持用户在函数详情页的“代码”页签,进行在线编辑修改。
|
上传ZIP文件 |
|
从OBS上传文件 |
|
当您部署的代码大于20M时,在线编辑器将不展示代码,但您仍可以测试您的函数。
Node.js程序包
在线编辑
FunctionGraph服务预装了适用于Node.js的开发工具包,如果自定义代码只需要软件开发工具包库,则可以使用FunctionGraph控制台的内联编辑器。使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。
上传程序包
如果编写的代码需要用到其他资源(如使用图形库进行图像处理),则需要先创建FunctionGraph函数部署程序包,然后再使用控制台上传部署程序包。Node.js编程语言支持以下两种方式上传程序包。
- 制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
- 解压后的源代码不能超过1.5G,超大代码请联系客服。
Python程序包
在线编辑
FunctionGraph服务预装了适用于Python的开发工具包,如果自定义代码只需要软件开发工具包库,则可以使用FunctionGraph控制台的内联编辑器。使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。
上传程序包
如果编写的代码需要用到其他资源(如使用图形库进行图像处理),则需要先创建FunctionGraph函数部署程序包,然后再使用控制台上传部署程序包。Python编程语言支持以下两种方式上传程序包。
- 制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
- 解压后的源代码不能超过1.5G,超大代码请联系客服。
- 用python语言写代码时,自己创建的包名不能与python标准库同名,否则会提示module加载失败。例如“json”、“lib”,“os”等。
Java程序包
由于Java是编译型语言,所以不能在线编辑代码,只能上传程序包,部署程序包可以是.zip文件或独立的jar文件。
上传Jar包
- 如果函数没有引入其他依赖包,可以直接上传函数jar包。
- 如果函数引入了其他依赖包,可以先将依赖包上传至OBS桶,创建函数时设置依赖包,并上传函数jar包。
上传zip
如果函数中引入其他三方件,也可以制作包含所有依赖三方件和函数jar的zip包,选择上传zip文件。您可参见使用IDEA工具创建普通Java项目、使用IDEA工具创建maven项目。
Java编程语言支持以下两种方式上传程序包。
- 制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
- 解压后的源代码不能超过1.5G,超大代码请联系客服。
GO语言程序包
上传程序包
只能上传程序包,部署程序包必须是.zip文件。Go编程语言支持以下两种方式上传程序包。
- 制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
- 解压后的源代码不能超过1.5G,超大代码请联系客服。
C#语言程序包
上传程序包
只能上传程序包,部署程序包必须是.zip文件。C#编程语言支持以下两种方式上传程序包。
- 制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
- 解压后的源代码不能超过1.5G,超大代码请联系客服。
PHP语言程序包
在线编辑
FunctionGraph服务预装了适用于PHP的开发工具包,如果自定义代码只需要软件开发工具包库,则可以使用FunctionGraph控制台的内联编辑器。使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。
上传程序包
如果编写的代码需要用到其他资源(如使用图形库进行图像处理),则需要先创建FunctionGraph函数部署程序包,然后再使用控制台上传部署程序包。PHP编程语言支持以下两种方式上传程序包。
- 制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
- 解压后的源代码不能超过1.5G,超大代码请联系客服。