Google Cloud Run
Google Cloud Run 是 Google Cloud 提供的 Serverless 平台。你可以根据事件触发运行代码,底层计算资源由 Google 自动管理。
Cloud Run 使用容器运行服务,这意味着你可以通过提供 Dockerfile 来选择任意运行时(例如 Deno 或 Bun)。如果没有提供 Dockerfile,Cloud Run 会使用默认的 Node.js Buildpack。
本指南假设你已有 Google Cloud 账号和计费账号。
1. 安装 CLI
使用 gcloud CLI 能更高效地操作 Google Cloud 平台。
例如在 macOS 上,可通过 Homebrew 安装:
sh
brew install --cask google-cloud-sdk安装完成后进行身份验证:
sh
gcloud auth login2. 项目初始化
创建项目,并在提示时接受自动生成的项目 ID:
sh
gcloud projects create --set-as-default --name="my app"为方便重复使用,可保存项目 ID 与项目编号。项目创建成功可能需要约 30 秒,请稍候再执行 gcloud projects list。
sh
PROJECT_ID=$(gcloud projects list \
--format='value(projectId)' \
--filter='name="my app"')
PROJECT_NUMBER=$(gcloud projects list \
--format='value(projectNumber)' \
--filter='name="my app"')
echo $PROJECT_ID $PROJECT_NUMBER查看计费账号 ID:
sh
gcloud billing accounts list将计费账号与项目关联:
sh
gcloud billing projects link $PROJECT_ID \
--billing-account=[billing_account_id]启用所需的 API:
sh
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com为服务账号授予 Cloud Build 权限:
sh
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:$PROJECT_NUMBER[email protected] \
--role=roles/run.builder3. Hello World
通过 create-hono 初始化项目,选择 nodejs 模板:
sh
npm create hono@latest my-app进入 my-app 并安装依赖:
sh
cd my-app
npm i将 src/index.ts 中的端口改为 8080:
ts
import { serve } from '@hono/node-server'
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => {
return c.text('Hello Hono!')
})
serve({
fetch: app.fetch,
port: 3000
port: 8080
}, (info) => {
console.log(`Server is running on http://localhost:${info.port}`)
})启动本地开发服务器,并在浏览器访问 http://localhost:8080:
sh
npm run dev4. 部署
执行以下命令启动部署,根据提示选择区域等信息:
sh
gcloud run deploy my-app --source . --allow-unauthenticated更换运行时
如果希望使用 Deno、Bun 或自定义 Node.js 镜像,请在项目中添加 Dockerfile(可选配 .dockerignore),构建所需的运行环境。
有关容器化的更多信息可参考: