:使用Funfile文件安装第三方依赖

:使用Funfile文件安装第三方依赖

Funfile文件中包含了一系列命令,这些命令指定了构造函数计算交付物的步骤。Funcraft会执行这些命令,最终产出交付物,例如完成项目开发及打包编译后需要发布的内容。本文介绍如何通过Funfile文件安装第三方依赖。

前提条件

您已完成以下操作:

安装并配置Funcraft

安装并配置Docker

注意 本文介绍的内容后期将不再维护。如果您的函数计算资源是使用Funcraft管理的,建议您将资源迁移至Serverless Devs管理。

关于如何将函数计算的相关资源从Funcraft迁移到Serverless Devs进行管理的详细操作,请参见从Funcraft迁移到Serverless Devs。

关于Serverless Devs的详细信息,请参见什么是Serverless Devs。

关于如何使用Serverless Devs安装依赖,请参见多语言安装依赖示例。

由此带来的不便,敬请谅解!

Funfile支持的语法

Dockerfile支持的命令,例如COPY、RUN、ENV、USER和WORKDIR等,Funfile也同样支持。Dockerfile用于构造Docker镜像,Funfile可以用于构造函数计算的交付产物。您可以通过安装rlang了解Funfile支持的一些语法命令,详细信息,请参见rlang。

相较于Dockerfile命令,Funfile只需要在原来的apt-get及pip安装包的命令前加fun-install前缀即可。

使用Funfile的优势

标准化:通过Funfile文件描述安装依赖的详细步骤,有利于标准化开发流程。

便捷性:通过构建Funfile文件而不是将具体的某些依赖提交到版本控制系统中,也更有利于函数代码的维护。

原生态:Funfile文件的编写,与Dockerfile的编写类似,却更接近原生体验。结合fun install sbox,您可以先在交互式环境中进行各种尝试,然后将最终安装步骤编写到Funfile文件内。

高效性:Funfile也支持Dockerfile的Cache功能,如果项目的改动对Funfile不影响,那么Funfile可以利用Cache直接跳过相应的命令执行过程。这有助于加速对Funfile文件的执行过程,提升开发效率。

操作步骤

构建Funfile文件。

在项目目录中执行fun install init命令,初始化构建安装Funfile文件。

选择函数的运行环境。? Select a runtime (Use arrow keys)

> nodejs6

nodejs8

nodejs10

nodejs12

python2.7

python3

java8

(Move up and down to reveal more choices)

以安装python2.7为例,介绍如何安装第三方依赖。当选择python2.7后,会在当前目录中生成一个名为Funfile的文件,内容如下:RUNTIME python2.7

说明 由于Funfile是一个文本文件,您可以直接创建Funfile的文件,按需修改运行环境。

使用Funfile文件安装pip依赖。

安装PIP依赖时需要修改Funfile文件,内容如下。RUNTIME python2.7

RUN fun-install pip install flask

说明 如果需要安装APT依赖,您只需将pip修改为apt-get即可。

执行以下命令安装依赖。fun install预期输出:using template: template.yml

start installing function dependencies without docker

building pyzbar-srv/pyzbar-fun

Funfile exist, Fun will use container to build forcely

Step 1/2 : FROM aliyunfc/runtime-python3.6:build-1.6.1

---> 2110e9fa9393

Step 2/2 : RUN fun-install pip install flask

---> Using cache

---> 992b0d65136d

sha256:992b0d65136dfa63b9566b8280881bb4cf22c4f1b68155713545e4b61ada****

Successfully built 992b0d65136d

Successfully tagged fun-cache-e95a9bfa-a6fa-4d70-b5b4-0084613e****:latest

copying function artifact to /Users/tan/code/fun/examples/install/pyzbar_example

could not find any manifest file for pyzbar-srv/pyzbar-fun, [install] stage for manifest will be skipped

Tips for next step

======================

* Invoke Event Function: fun local invoke

* Invoke Http Function: fun local start

* Build Http Function: fun build

* Deploy Resources: fun deploy

更多信息

执行fun install命令后会将依赖安装到代码目录中。同时,您可以通过fun local的相关命令进行本地调试,也可以通过fun deploy将项目部署到云端。相关信息,请参见使用fun local实现本地调试及使用fun deploy部署应用。

相关推荐

HELP!为什么我的侠盗猎车手运行不了
mobile bt365体育投注

HELP!为什么我的侠盗猎车手运行不了

📅 11-03 👁️ 8713
ae插件如何卸载干净?
beat365在线下载

ae插件如何卸载干净?

📅 11-20 👁️ 6525
2024年中国超重与肥胖发生率、人群超重流行率、人群肥胖流行率及肥胖并发症情况分析:肥胖人群中,有超过八成的个体都面临着脂肪肝的威胁 [图]