本文介绍如何通过fun build
将源码构建成交付产物。
注意 本文介绍的内容后期将不再维护。如果您的函数计算资源是使用Funcraft管理的,建议您将资源迁移至Serverless Devs管理。
关于如何将函数计算的相关资源从Funcraft迁移到Serverless Devs进行管理的详细操作,请参见从Funcraft迁移到Serverless Devs。
关于Serverless Devs的详细信息,请参见什么是Serverless Devs。
关于如何使用Serverless Devs安装依赖,请参见使用s build的相关命令安装依赖。
由此带来的不便,敬请谅解!
背景信息
源码并不等于交付产物,例如Java型编译语言,您写好Java型代码后,不能直接上传代码,您还需要进行编译及打包,编译及打包的结果属于交付产物。由于函数计算只能接受一个ZIP包或JAR包,所以您需要将代码交付产物及其依赖一同打包到一个JAR包中,然后交付。
使用fun build
的构建过程可以理解为,Funcraft在函数代码目录中查找特定的manifest文件(清单文件)并根据manifest文件进行构造、下载依赖及编译。
目前Funcraft针对不同的语言分别支持一些主流的包管理器manifest文件。
- Funcraft定义的不限语言的Funfile文件。更多信息,请参见使用fun install安装第三方依赖。
- Java maven包管理器的pom.xml文件。
- Node.js npm包管理器的package.json文件。
- Python pip包管理器的requirements.txt文件。
- PHP composer包管理器的composer.json文件。
fun build功能介绍
执行以下命令获取
fun build
的相关功能介绍。fun build -h
预期输出:Usage: fun build [options] [[service/]function]
Build the dependencies.
Options:
-d, --use-docker Use docker container to build functions
-t, --template [template] The path of fun template file.
-h, --help display help for command
操作步骤
本文以Java8为例,介绍如何构建交付产物。
更多信息
您可以通过以下方式进行构建或其他操作:
- 通过以下命令对template.yml文件中的所有函数进行构建。
fun build
- 通过以下命令以本地模拟环境对所有函数进行构建。
fun build --use-docker
- 通过以下命令进行构建及调用。
fun build && fun local invoke
- 通过以下命令进行构建及部署。
fun build && fun deploy
构建示例
以下是一个初始化、构建、运行及修改Java的示例。