使用 Serverless Devs 插件快速部署前端应用

简介: 近期函数计算和 @serverless-devs/s 都更新了一系列的功能, 目前部署静态网站的步骤可以更为简洁了!

作者:邓超  Serverless Devs 开源贡献者

背景

我们在上文 [Aliyun] [FC] 如何使用 @serverless-devs/s 部署静态网站到函数计算 中,详细的介绍了如何通过 @serverless-devs/s 将已经开发好了的静态网站部署到阿里云函数计算(FC)上, 但是近期函数计算和 @serverless-devs/s 都更新了一系列的功能, 目前部署静态网站的步骤可以更为简洁了!

使用 website-fc 插件部署静态网站到 Custom Runtime 函数

假设我们现在有如下结构的前端工程:

/
├ dist/ 待部署的构建产物
│  └ index.html 
├ src/
└ package.json

step 3.安装 @serverless-devs/s 并编写 s.yaml

你问我步骤 1 和 2 去哪儿了? 当然是省掉了!

添加 @serverless-devs/s 命令行工具到工程:

然后在根目录下创建一个基础的 s.yaml 配置文件:

# https://github.com/devsapp/fc/blob/main/docs/zh/yaml/
edition: 1.0.0
name: my-awesome-website-project
services:my-service: # 任意的名称actions:pre-deploy:- plugin: website-fc     # 在 pre-deploy 插槽中安装 website-fc 插件component: devsapp/fc       # 使用 fc 组件props:region: cn-shenzhen       # 部署到任意的可用区, 例如深圳.service:name: my-awesome-websites   # 深圳可用区的 my-awesome-websites 服务function:name: website-fc-plugin    # my-awesome-websites 服务下的一个函数runtime: custom        # 使用 custom 运行环境handler: dummy-handler     # 由于使用了 custom 运行环境, 所以这里可以随便填codeUri: ./dist        # 部署 dist 文件夹下的全部内容triggers:- name: httptype: http        # 创建一个 HTTP 类型的触发器, 以便客户端可以通过 HTTP 协议进行访问config:authType: anonymous    # 允许匿名访问methods: [ HEAD, GET ]  # 静态网站只需要处理 HEAD 和 GET 请求就够了

与上文中不同的地方在于:

actions:pre-deploy:- plugin: website-fc     # 在 pre-deploy 插槽中安装 website-fc 插件

在 pre-deploy 插槽中安装的 website-fc 插件能代替上文中的步骤 1 和步骤 2;

以及:

现在不必将整个工程部署到函数中, 只需要部署构建好的静态文件了。

step 4.部署到函数计算

配置好 AccessKey 和 AccessSecret 后(opens new window), 详情参考:Redirecting,执行命令:

你的网站就部署上去啦。

接下来就是配置自定义域名了, 配置好以后就可以通过你自己的域名访问到这个网站了。

step 5. 配置自定义域名

以自定义域名 deploy-static-website-with-website-fc-plugin.example.dengchao.fun 为例。

首先添加 CNAME 记录, 解析值填写 ${UID}.${REGION}.fc.aliyuncs.com。因为我们的 s.yaml 中设置的 region 是 cn-shenzhen, 所以对应的值就是 xxxxxx.cn-shenzhen.fc.aliyuncs.com 。

接下来设置函数计算控制台上的自定义域名:

访问一下试试看: http://deploy-static-website-with-website-fc-plugin.example.dengchao.fun(opens new window)

样本工程

本文中的样本工程已经上传到 GitHub:

https://github.com/DevDengChao/deploy-static-website-with-website-fc-plugin-example(opens new window)

参考

[1] 阿里云函数计算-产品简介(opens new window)

什么是函数计算 - 函数计算 - 阿里云

[2] 资源使用限制(opens new window)

资源使用限制 - 函数计算 - 阿里云

[3] 自定义运行环境(opens new window)

Custom Runtime简介 - 函数计算 - 阿里云

[4] 配置自定义域名(opens new window)

配置自定义域名 - 函数计算 - 阿里云

[5] Serverless devs 官网(opens new window)

Serverless Devs - Serverless 应用全生命周期管理工具 / Serverless 中文社区

[6] 配置 AccessKey 和 AccessSecret(opens new window)

Redirecting

[7] website-fc 插件

https://github.com/devsapp/website-fc

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 EventBridge 构建数据库应用集成

简介:本文重点介绍 EventBridge 的新特性:数据库 Sink 事件目标。 作者:赵海 引言 事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务,支持将阿里云服务、自定义应用、SaaS 应用以标准化、中心化的方式接入&#x…

如何合理使用 CPU 管理策略,提升容器性能?

简介:CPU Burst、拓扑感知调度是阿里云容器服务 ACK 提升应用性能的两大利器,它们解决了不同场景下的 CPU 资源管理,可以共同使用。点击下文,查看详情! 作者:张佐玮(佑祎) 前言 在…

自己会用的一些网址

npm网址git网址谷歌插件查兼容的git教程廖雪峰vant官网vue3官网webpack官网iocnfont图标库猫云(免费的前端开源项目)javascript教程lodashreact官网智能PNG和JPEG压缩antd Ui插件chart 官网图标库css三角形产生器网易云Apinvm的安装教程

技术盘点:容器技术的演进路线是什么?未来有哪些想象空间?

简介:回顾2021年,云原生领域有哪些重要意义的事件? 回顾2021年,云原生领域有哪些重要意义的事件? 1. 基于容器的分布式云管理加速落地: 2021年5月阿里云峰会上,阿里云发布了一云多形态的部署…

技术盘点:2022年云原生架构趋势解读

简介:在云原生等技术的加持下,2022 年的架构领域有哪些值得关注的趋势?云原生如何撑起架构的未来? 作者:辛晓亮 采访嘉宾:至简、彦林 软件架构发展至今,经历了从单体架构、垂直架构、SOA 架构…

js组装知识(待续……)

object.assign() 这个方法回使源对象上的[[Get]]取得属性的值,然后使用目标对象上的[[Set]]设置属性的值 实际上对每个源对象执行的是浅复制,如果多个源对象都有相同的属性,则使用最后一个赋值的值 let obj1 {get a() {return aaa} } let obj2 {set a(val) {console.log(val)…

如何快速构建服务发现的高可用能力

简介:保障云上业务的永远在线,是 MSE 一直在追求的目标,本文通过面向失败设计的服务发现高可用能力的分享,以及 MSE 的服务治理能力快速构建起服务发现高可用能力的演示,模拟了线上不可预期的服务发现相关异常发生时的…

火山引擎发布新一代数智平台VeDI,以数据驱动企业数字化增长

数据是“新石油”,经过提炼加工才能创造价值。 9月2日,火山引擎数据智能科技峰会在杭州举办。会上,火山引擎发布新一代企业级数据产品——数智平台VeDI(Volcengine Data Intelligence),包括数据引擎、数据…

阿里云服务网格 ASM 正式发布商业化版本

简介:为了更好地满足企业日益加深的大规模使用服务网格产品、服务多语言互通、服务精细治理等需求,2022 年 4 月 1 日起,阿里云服务网格产品 ASM 正式发布商业化版本,为企业在生产环境下大规模落地服务网格能力提供性能、安全、高…

组件通信之pubsub

pubsub 释:消息订阅与发布 点击进入gitee 消息订阅与发布机制 1,先订阅,在发布 2,使用于任意组件间通信 3,要在组件的componentWillUnmount中取消订阅 作用 使用于任意组件间通信 安装 yarn add pubsub-js 引入(每个组件使用时都需要) 使用es6引入&#xff1a…

Redis消息队列发展历程

简介:Redis是目前最受欢迎的kv类数据库,当然它的功能越来越多,早已不限定在kv场景,消息队列就是Redis中一个重要的功能。Redis从2010年发布1.0版本就具备一个消息队列的雏形,随着10多年的迭代,其消息队列的…

手机+卫星,到底有多难?

作者 | 小枣君来源 | 鲜枣课堂这几天,关于卫星手机的新闻又火了。根据媒体报道,9月6日即将发布的华为Mate 50系列手机,将具备“卫星通信能力”,在没有网络的地方,可通过卫星系统发送紧急短信。无独有偶,另有…

一线技术人的成长思考总结

简介: 作为长期奋战在一线的技术人,我深刻体会到几个思维能力对技术人成长的重要性,熟练运用这几种思维可以帮助我们快速的进入到新的领域,在分析、定位和解决问题上有很大帮助。作为长期奋战在一线的技术人,我深刻体会…

算法篇(暂时就接触一个)

diff算法 逐层对比,最小的力度是标签 1、虚拟DOM中key的作用: 1-1、简单的说:key是虚拟DOM对象的标识,在更新显示时key起着极其重要的作用。2-2、详细的说:当状态的数据发生变化时,react会根据【新数据】…

sealer背后实现整个集群一键交付的奥秘 | 龙蜥技术

简介:解读集群镜像“开箱即用”神器——sealer! 编者按:集群镜像把整个集群看成一台服务器,把 k8s 看成云操作系统,实现整个集群的镜像化打包和交付,为企业级软件提供一种“开箱即用”的应用封装技术。本文…

突发!GitHub 将关闭 Trending 热榜,开发者不答应

作者 | 苏宓出品 | CSDN(ID:CSDNnews)今天,当登录到 GitHub 上时,GitHub Trending 页面突然显示了这样一则通知:Heads up! This Trending tab is being deprecated. Due to low usage of Trending Reposito…

如何设计一条稳定的应用交付流程?|云效工程师指北

简介:如何设计一条稳定的应用交付流程?为持续交付的过程提供了规范化的可能,也引入了让人不时埋首于配置文件的小山里的麻烦。我们不妨从一次略有波折、稍显隐患的集成部署案例开始,看看如何着手设计一条更为稳定的应用交付流程。…

阿里云混合云开放网络生态的探索与实践

简介:2022年F5多云应用服务科技峰会于4月正式召开。阿里云智能混合云平台高级网络架构师张然(然犀)应邀于合作伙伴生态专场分享了阿里云混合云在开放网络生态领域的探索与实践。 2022年F5多云应用服务科技峰会于4月正式召开。阿里云智能混合…

阿里云启动超级智算中心,总算力达12 EFLOPS

8月30日,阿里云宣布正式启动张北超级智算中心,总建设规模为12 EFLOPS(每秒1200亿亿次浮点运算)AI算力,将超过谷歌的9 EFLOPS和特斯拉的1.8 EFLOPS,成为全球最大的智算中心,可为AI大模型训练、自…

领域驱动编程,代码怎么写?

简介:领域驱动开发最重要的当然是正确地进行领域拆解,这个拆解工作可以在理论的指导下,结合设计者对业务的深入分析和充分理解进行。本文假定开发前已经进行了领域划分,侧重于研究编码阶段具体如何实践才能体现领域驱动的优势。 …