Google Cloud Run
Google Cloud Run 是 Google Cloud 提供的无服务器(serverless)平台。你可以在响应事件时运行代码,Google 会自动管理底层的计算资源。
Google Cloud Run 使用容器(container)来运行服务。这意味着你可以通过提供一个 Dockerfile 使用任何你喜欢的运行时(例如 Deno 或 Bun)。如果没有提供 Dockerfile,Google Cloud Run 将使用默认的 Nodejs buildpack。
本指南假设你已经拥有 Google Cloud 账号和一个计费账号(billing account)。
1. 安装 CLI
使用 Google Cloud Platform 时,最简单的方法是使用 gcloud CLI。
例如,在 macOS 上使用 Homebrew 安装:
brew install --cask google-cloud-sdk
使用 CLI 登录认证:
gcloud auth login
2. 项目设置
创建一个项目。提示时接受自动生成的项目 ID:
gcloud projects create --set-as-default --name="my app"
为项目 ID 和项目编号创建环境变量,便于后续使用。注意 gcloud projects list
命令返回结果可能需要约 30 秒。
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:
gcloud billing accounts list
将你的计费账号绑定到该项目:
gcloud billing projects link $PROJECT_ID \
--billing-account=[billing_account_id]
启用所需的 API:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com
更新服务账号权限,以便访问 Cloud Build:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role=roles/run.builder
3. Hello World
使用 “create-hono” 命令启动项目,选择 nodejs
模板。
npm create hono@latest my-app
进入 my-app
并安装依赖:
cd my-app
npm i
将 src/index.ts
中的端口改为 8080
:
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:
npm run dev
4. 部署
启动部署并根据提示操作(例如选择区域):
gcloud run deploy my-app --source . --allow-unauthenticated
切换运行时
如果想使用 Deno 或 Bun 运行时(或自定义 Nodejs 容器)进行部署,请添加一个 Dockerfile
(可选 .dockerignore
),并配置你想要的环境。
有关容器化的更多信息,请参考: