开发者社区> 阿里云Serverless Compute> 正文

Fun Package 功能介绍

简介: 前言首先介绍下在本文出现的几个比较重要的概念:函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。

前言

首先介绍下在本文出现的几个比较重要的概念:

函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考

Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考

备注: 本文介绍的技巧需要 Fun 版本大于等于 3.0.0+。

功能介绍

Fun Package 是用来将代码、编译产物、静态资源等本地资源上传到 OSS 的功能。

使用 Fun Package 的场景,通常是,想仅仅通过一个模板文件进行部署的场景。比如,本地开发完成后,可以通过 fun package,将模板依赖的本地资源上传到 OSS,这样,无论是在其他服务器上部署,还是使用 ROS 部署时,仅仅通过一个文本格式的模板文件,就可以完成了。

命令格式

使用 fun package 可以查看相关的帮助文档:

$ fun package -h
Usage: fun package [options]

packages the local artifacts to oss. In order that you can deploy your application directly through a template file

Options:
  -t, --template <template>              The template file path
  -b, --oss-bucket <bucket>              The name of the oss bucket where Fun uploads local artifacts
  -o, --output-template-file <filename>  The output path of the packaged template file
  -h, --help                             output usage information

其中各参数的解释如下:

  1. -t 或 --template.yml: 表示的是要操作的模板文件,如果不指定,则使用默认值。
  2. -b 或 --oss-bucket: 表示的是将本地资源上传到的 OSS bucket 名称。
  3. -o 或 --output-template-file: 表示的是生成的新模板的路径以及名称,如果不指定,则使用默认值,即 template.packaged.yml

使用示例

1. 初始化示例项目

直接执行下面的命令即可初始化一个简单的函数示例:

fun init -n RosDemo event-nodejs8

2. 项目打包

# -t 以及 -o 均使用默认值
fun package --oss-bucket bucket
# 指定要打包的模板位置
fun package --oss-bucket bucket -t demos/template.yml
# 指定输出模板的位置 
fun package --oss-bucket bucket -o demos/template.packaged.yml

打包完成后,就可以进行后续的部署操作了,可以自行选择 fun deploy 或者 fun deploy --use-ros 的方式进行部署。

通过将打包后的模板文件与原文件相比较,可以发现,差异仅仅在使用了本地资源的场景,比如:

- CodeUri: './'
+ CodeUri: 'oss://bucket/PackageDemo/function/39ce6e9109a23d313bc267b1a5211273'

总结

通过 Fun Package 可以将模板文件包含的本地资源一键上传到 OSS 上,完成资源的打包操作,省却了手工打包时需要一个函数一个函数进行上传的繁琐步骤。

打包完成后,后续的部署操作,只需要完全基于这个打包后的模板文件即可,不再依赖本地的代码等资源,可以简化部署的难度,同时也支持了通过 ROS 的部署方式

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
上一篇:Fun 2.16.0 发布——资源部署、NAS 支持、镜像拉取等功能又又又增强啦! 下一篇:Funfile 功能介绍

Serverless微服务应用实践分享

函数计算官网