Skip to main content
AWS Lambda 是一种无服务器计算服务,让你无需预置或管理服务器即可运行代码。 本指南使用 Dockerfile 将一个 Bun HTTP 服务器部署到 AWS Lambda。
在继续之前,请确保你已准备:
  • 一个可供部署的 Bun 应用
  • 一个 AWS 账户
  • 已安装并配置好 AWS CLI
  • 已安装 Docker 并将其添加到你的 PATH

1

创建新的 Dockerfile

在项目的根目录下创建一个新的 Dockerfile。该文件包含初始化容器、将本地项目文件复制到其中、安装依赖和启动应用程序的指令。
Dockerfile
确保启动命令与你的应用程序入口点对应。如果你的 package.json 中有 start 脚本,也可以是 CMD ["bun", "run", "start"]如果你的应用没有依赖项,可以省略 RUN bun install --production --frozen-lockfile 这一行。
在项目的根目录下创建一个新的 .dockerignore 文件。它列出了要从容器镜像中_排除_的文件和目录,例如 node_modules,这有助于使构建更快、更小:
.dockerignore
2

构建 Docker 镜像

确保你在包含 Dockerfile 的目录中,然后构建 Docker 镜像。本示例将镜像命名为 bun-lambda-demo 并标记为 latest
terminal
3

创建 ECR 仓库

在推送镜像之前,创建一个 ECR 仓库 用于推送。以下命令:
  • us-east-1 区域创建一个名为 bun-lambda-demo 的 ECR 仓库
  • 将仓库 URI 导出为环境变量。这是可选的,但可以使后续步骤更容易。
terminal
如果你使用 IAM Identity Center (SSO) 或已配置带有 profile 的 AWS CLI,请在 AWS CLI 命令中添加 --profile 标志。例如,如果你的 profile 名为 my-sso-app,请使用 --profile my-sso-app。运行 aws configure list-profiles 查看你可用的 profiles。
terminal
4

向 ECR 仓库进行身份验证

登录到 ECR 仓库:
terminal
如果使用 profile,请使用 --profile 标志:
terminal
5

标记并将 Docker 镜像推送到 ECR 仓库

确保你在包含 Dockerfile 的目录中,然后将 Docker 镜像标记上 ECR 仓库 URI。
terminal
然后,将镜像推送到 ECR 仓库。
terminal
6

创建 AWS Lambda 函数

前往 AWS 控制台 > Lambda > 创建函数 > 选择 容器镜像
确保你选择了正确的区域。此 URL 默认为 us-east-1
创建函数
给函数起一个名称,例如 my-bun-function
7

选择容器镜像

前往 容器镜像 URI 部分,点击 浏览镜像。选择你推送到 ECR 仓库的镜像。
选择容器仓库
然后,选择 latest 镜像并点击 选择镜像
选择容器镜像
8

配置函数

要为函数获取公共 URL,请前往 其他配置 > 网络 > 函数 URL将其设置为 启用,认证类型为 NONE
设置函数 URL
9

创建函数

点击页面底部的 创建函数
创建函数
10

获取函数 URL

函数创建完成后,你将被重定向到其页面。函数 URL 位于 “函数 URL” 部分。
函数 URL
11

测试函数

你的应用现已上线。要测试函数,可以前往 测试 标签页或直接调用函数 URL。
terminal