要创建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函数支持的上传程序包的方式下表。
代码上传方式说明
运行时 | 在线编辑 | 上传ZIP文件 | 上传JAR包 | 从OBS上传文件 |
---|---|---|---|---|
Node.js | 支持 | 支持 | 不支持 | 支持 |
Python | 支持 | 支持 | 不支持 | 支持 |
Java | 不支持 | 支持 | 支持 | 支持 |
GO | 不支持 | 支持 | 不支持 | 支持 |
定制运行时 | 支持 | 支持 | 不支持 | 支持 |
注意上传代码时,如果代码中包含敏感信息(如帐户密码等),请您自行加密,以防止信息泄露。
函数代码上传方式表
代码上传方式说明 操作 在线编辑 用户在编辑函数代码时支持类似工程方式的管理,可以创建文件、文件夹并对其进行编辑。如果用户代码是上传zip包的方式,则前端进行相应解压展示,并支持用户在函数详情页的“代码”页签,进行在线编辑修改。
文件:支持创建文件和文件夹功能。其中包括新建文件,新建文件夹、保存、关闭所有文件功能。
编辑:支持在编码框中,对代码进行撤销、恢复、剪切、复制、粘贴、查找、替换操作。
- 设置:支持设置编码框中代码字体大小、自动格式化和编码框主题颜色。
上传ZIP文件
在函数详情页的“代码”页签,选择“上传自 > Zip文件”。
单击“添加文件”上传本地代码至平台。上传的zip文件大小限制为50M,如超过50M,请通过OBS上传。
从OBS上传文件
在函数详情页的“代码”页签,选择“上传自 > OBS地址”。
- 单击“添加文件”上传本地代码至平台。
Node.js程序包
在线编辑
FunctionGraph服务预装了适用于Node.js的开发工具包,如果自定义代码只需要软件开发工具包库,则可以使用FunctionGraph控制台的内联编辑器。使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。
上传程序包
如果编写的代码需要用到其他资源(如使用图形库进行图像处理),则需要先创建FunctionGraph函数部署程序包,然后再使用控制台上传部署程序包。Node.js编程语言支持以下两种方式上传程序包。
注意
制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
解压后的源代码不能超过1.5G。
- 直接上传程序包
在创建部署程序包后,可直接从本地上传ZIP程序包,ZIP程序包大小限制为50MB,如果超过该限制,请使用OBS存储桶。
更多函数资源的限制,请参见约束与限制。
- 上传至OBS存储桶
在创建部署程序包后,可先将.zip文件上传到要在其中创建FunctionGraph函数的区域中的OBS存储桶中,然后指定FunctionGraph函数中设置程序包的OBS存储地址,OBS中ZIP包大小限制为300MB。
更多函数资源的限制,请参见约束与限制。
Python程序包
在线编辑
FunctionGraph服务预装了适用于Python的开发工具包,如果自定义代码只需要软件开发工具包库,则可以使用FunctionGraph控制台的内联编辑器。使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。
使用Python语言在线编辑代码,需要输出中文时,请在编辑器中增加如下代码:
# -*- coding:utf-8 -*-
import json
def handler (event, context):
output = 'Hello message: ' + json.dumps(event,ensure_ascii=False)
return output
上传程序包
如果编写的代码需要用到其他资源(如使用图形库进行图像处理),则需要先创建FunctionGraph函数部署程序包,然后再使用控制台上传部署程序包。Python编程语言支持以下两种方式上传程序包。
注意
制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
解压后的源代码不能超过1.5G。
用python语言写代码时,自己创建的包名不能与python标准库同名,否则会提示module加载失败。例如“json”、“lib”,“os”等。
- 直接上传程序包
在创建部署程序包后,可直接从本地上传ZIP程序包,ZIP程序包大小限制为50MB,如果超过该限制,请使用OBS存储桶。
更多函数资源的限制,请参见约束与限制。
- 上传至OBS存储桶
在创建部署程序包后,可先将.zip文件上传到要在其中创建FunctionGraph函数的区域中的OBS存储桶中,然后指定FunctionGraph函数中设置程序包的OBS存储地址,OBS中ZIP包大小限制为300MB。
更多函数资源的限制,请参见约束与限制。
Java程序包
由于Java是编译型语言,所以不能在线编辑代码,只能上传程序包,部署程序包可以是.zip文件或独立的jar文件。
上传Jar包
- 如果函数没有引入其他依赖包,可以直接上传函数jar包。
- 如果函数引入了其他依赖包,可以先将依赖包上传至OBS桶,创建函数时设置依赖包,并上传函数jar包。
上传zip
如果函数中引入其他三方件,也可以制作包含所有依赖三方件和函数jar的zip包,选择上传zip文件。
Java编程语言支持以下两种方式上传程序包。
注意
制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
解压后的源代码不能超过1.5G。
- 直接上传程序包
在创建部署程序包后,可直接从本地上传ZIP程序包,ZIP程序包大小限制为50MB,如果超过该限制,请使用OBS存储桶。
更多函数资源的限制,请参见约束与限制。
- 上传至OBS存储桶
在创建部署程序包后,可先将.zip文件上传到要在其中创建FunctionGraph函数的区域中的OBS存储桶中,然后指定FunctionGraph函数中设置程序包的OBS存储地址,OBS中ZIP包大小限制为300MB。
更多函数资源的限制,请参见约束与限制
GO语言程序包
上传程序包
只能上传程序包,部署程序包必须是.zip文件。Go编程语言支持以下两种方式上传程序包。
注意
制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
解压后的源代码不能超过1.5G。
- 直接上传程序包
在创建部署程序包后,可直接从本地上传ZIP程序包,ZIP程序包大小限制为50MB,如果超过该限制,请使用OBS存储桶。
更多函数资源的限制,请参见约束与限制。
- 上传至OBS存储桶
在创建部署程序包后,可先将.zip文件上传到要在其中创建FunctionGraph函数的区域中的OBS存储桶中,然后指定FunctionGraph函数中设置程序包的OBS存储地址,OBS中ZIP包大小限制为300MB。
更多函数资源的限制,请参见约束与限制。
定制运行时程序包
在线编辑
使用控制台可以编辑代码并将代码上传到FunctionGraph,控制台会将代码及相关的配置信息压缩到FunctionGraph服务能够运行的部署程序包中。
上传程序包
如果编写的代码需要用到其他资源(如使用图形库进行图像处理),则需要先创建FunctionGraph函数部署程序包,然后再使用控制台上传部署程序包。定制运行时支持以下两种方式上传程序包。
注意
制作zip包的时候,单函数入口文件必须在根目录,保证解压后,直接出现函数执行入口文件,才能正常运行。
解压后的源代码不能超过1.5G。
- 直接上传程序包
在创建部署程序包后,可直接从本地上传ZIP程序包,ZIP程序包大小限制为50MB,如果超过该限制,请使用OBS存储桶。
更多函数资源的限制,请参见约束与限制。
- 上传至OBS存储桶
在创建部署程序包后,可先将.zip文件上传到要在其中创建FunctionGraph函数的区域中的OBS存储桶中,然后指定FunctionGraph函数中设置程序包的OBS存储地址,OBS中ZIP包大小限制为300MB。
更多函数资源的限制,请参见约束与限制。