在 AWS Lambda 上部署 Bun 應用
AWS Lambda 是一項無伺服器計算服務,允許您無需設定或管理伺服器即可執行程式碼。
本指南使用 Dockerfile 將 Bun HTTP 伺服器部署到 AWS Lambda。
- 建立新的 Dockerfile
在專案根目錄中建立一個新的
Dockerfile。此檔案包含初始化容器、將本地專案檔案複製到容器中、安裝相依項以及啟動應用的指令。Dockerfile# Use the official AWS Lambda adapter image to handle the Lambda runtime FROM public.ecr.aws/awsguru/aws-lambda-adapter:1.0.1 AS aws-lambda-adapter # 使用官方 Bun 映象來執行應用 FROM oven/bun:debian AS bun_latest # 將 Lambda 介面卡複製到容器中 COPY --from=aws-lambda-adapter /lambda-adapter /opt/extensions/lambda-adapter # 設定埠為 8080,AWS Lambda 介面卡需要此埠 ENV PORT=8080 # 設定工作目錄為 `/var/task`,這是 Lambda 的預設工作目錄 WORKDIR "/var/task" # 複製 package.json 和 bun.lock 到容器中 COPY package.json bun.lock ./ # 安裝相依 RUN bun install --production --frozen-lockfile # 複製其餘應用檔案到容器中 COPY . /var/task # 執行應用 CMD ["bun", "index.ts"]在專案根目錄中建立一個新的
.dockerignore檔案。此檔案列出要從容器映像中_排除_的檔案和目錄,例如node_modules。排除這些檔案和目錄可以加快建置速度並減小映像體積:.dockerignorenode_modules Dockerfile* .dockerignore .git .gitignore README.md LICENSE .vscode .env # 任何其他想排除的檔案或目錄 - 建置 Docker 映象
確保您位於包含
Dockerfile的目錄中,然後建置 Docker 映象。本範例將映象命名為bun-lambda-demo,並將標籤設定為latest。terminal# cd /path/to/your/app docker build --provenance=false --platform linux/amd64 -t bun-lambda-demo:latest . - 建立 ECR 儲存庫
推送映象之前,請建立一個用於存放映象的 ECR 儲存庫。
以下命令:
- 在
us-east-1區域中建立名為bun-lambda-demo的 ECR 儲存庫 - 將儲存庫 URI 匯出為環境變數。匯出是可選的,但可以讓後續步驟更加簡單。
terminalexport ECR_URI=$(aws ecr create-repository --repository-name bun-lambda-demo --region us-east-1 --query 'repository.repositoryUri' --output text) echo $ECR_URIText[id].dkr.ecr.us-east-1.amazonaws.com/bun-lambda-demo - 在
- 認證登入 ECR 儲存庫
登入到 ECR 儲存庫:
terminalaws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin $ECR_URITextLogin Succeeded - 標記 Docker 映象並將其推送到 ECR 儲存庫
確保您位於包含
Dockerfile的目錄中,然後使用 ECR 儲存庫 URI 為 Docker 映象新增標籤。terminaldocker tag bun-lambda-demo:latest ${ECR_URI}:latest接著,將映象推送到 ECR 儲存庫。
terminaldocker push ${ECR_URI}:latest - 建立 AWS Lambda 函式
- 選擇容器映像
前往 容器映像 URI 部分,然後點選 瀏覽映像。選擇您推送到 ECR 儲存庫的映象。

然後選擇
latest映象並點選 選擇映像。
- 設定函式
要獲取函式的公共 URL,請前往 其他設定 > 網路 > 函式 URL。
將其設定為 啟用,認證型別選擇 NONE。

- 建立函式
點選頁面底部的 建立函式。

- 獲取函式 URL
函式建立完成後,您會被重定向到其頁面。函式 URL 位於 “函式 URL” 部分。

- 測試函式
您的應用現在已經上線。要測試該函式,可以前往 測試 選項卡,或直接呼叫函式 URL。
terminalcurl -X GET https://[your-function-id].lambda-url.us-east-1.on.aws/TextHello from Bun on Lambda!
