如何使用 Serverless Devs 部署静态网站到函数计算

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 手把手教你:如何使用 Serverless Devs 部署静态网站到函数计算。

前言

公司经常有一些网站需要发布上线,对比了几款不同的产品后,决定使用阿里云的函数计算(FC)来托管构建出来的静态网站。 FC 弹性实例自带的500 Mb 存储空间对静态网站来说简直是太充足了 。


函数计算资源使用:https://help.aliyun.com/document_detail/51907.html


部署静态网站到 Custom Runtime 函数


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

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


step 1. 编写一个简单的 HTTP 服务器


Express 为例, 首先添加依赖到工程:

yarn add express

然后新建app.js并写入:

let Express = require("express");
let app = new Express();
app.use(Express.static('dist')); // 使用 dist 文件夹中的内容对外提供静态文件访问
app.use((req, res) => { res.redirect("/"); }); // 重定向无法处理的请求到网站的根目录
let port = 9000;
app.listen(port, () => { console.log(`App started on port ${port}`); }); // 监听 FC custom 运行时默认的 9000 端口


通过node app.js启动这个简单的 Express 服务器, 并访问http://localhost:9000确认/dist/index.html能被访问到。

接下来就是把app.jsdist一起发布到函数计算上就行了。


step 2. 编写 bootstrap


函数计算custom运行时要求用户提供一个bootstrap文件用于启动自定义的 HTTP 服务器, 所以我们需要在根目录下创建这个文件:

#! /bin/bash
node app.js


注意第一行的 #! /bin/bash是必须的, 不然函数计算不知道该用哪一个解释器来执行脚本中的内容. Windows 用户记得把这个文件的换行符从/r/n改成/n, 不然会遇到函数计算启动超时的问题。


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


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

yarn add @serverless-devs/s -D

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

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


step 4. 部署到函数计算


配置好 AccessKey 和 AccessSecret 后, 执行命令:

s deploy

你的网站就部署上去了。


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


step 5. 配置自定义域名


以自定义域名deploy-static-website-to-fc.example.dengchao.fun为例;


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



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



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


样本工程


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

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


参考链接:



本文作者:邓超(Serverless Devs 开源贡献者)

更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
8天前
|
人工智能 搜索推荐 安全
基于函数计算一键部署 AI 陪练,快速打造你的专属口语对练伙伴
AI 口语学习涵盖发音训练、对话交流、即时反馈、个性化场景模拟和流利度提升等。本方案以英语口语学习的场景为例,利用函数计算 FC 部署 Web 应用,结合智能媒体服务(AI 实时互动)的 AI 智能体和百炼工作流应用,实现英语口语陪练。
|
14天前
|
人工智能 安全 搜索推荐
基于函数计算一键部署 AI 陪练,快速打造你的专属口语对练伙伴
基于函数计算一键部署 AI 陪练,快速打造你的专属口语对练伙伴
|
14天前
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
1月前
|
自然语言处理 Serverless 测试技术
DeepSeek 模型快速体验,魔搭+函数计算一键部署模型上云
DeepSeek模型近期备受关注,其开源版本DeepSeek-V3和DeepSeek-R1在多个基准测试中表现出色,性能比肩OpenAI顶尖模型。为降低本地部署门槛,Modelscope社区推出DeepSeek-R1-Distill-Qwen模型的一键部署服务,支持函数计算FC平台的闲置GPU实例,大幅降低成本。用户可选择不同参数量的小模型进行快速部署和推理,体验DeepSeek的强大性能。
DeepSeek 模型快速体验,魔搭+函数计算一键部署模型上云
|
12天前
|
人工智能 运维 架构师
Serverless + AI 让应用开发更简单,加速应用智能化
Serverless + AI 让应用开发更简单,加速应用智能化
|
14天前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
1月前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
155 15
|
2月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
2月前
|
存储 人工智能 Serverless
7分钟玩转 AI 应用,函数计算一键部署 AI 生图大模型
人工智能生成图像(AI 生图)的领域中,Stable Diffusion WebUI 以其强大的算法和稳定的输出质量而闻名。它能够快速地从文本描述中生成高质量的图像,为用户提供了一个直观且高效的创作平台。而 ComfyUI 则以其用户友好的界面和高度定制化的选项所受到欢迎。ComfyUI 的灵活性和直观性使得即使是没有技术背景的用户也能轻松上手。本次技术解决方案通过函数计算一键部署热门 AI 生图大模型,凭借其按量付费、卓越弹性、快速交付能力的特点,完美实现低成本,免运维。
|
3月前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
113 12

相关产品

  • 函数计算