跳转到正文

Google Cloud Run ​

Google Cloud Run 是 Google Cloud 提供的无服务器平台。你可以在响应事件时运行代码,底层计算资源由 Google 自动管理。

Google Cloud Run 使用容器运行服务。这意味着只需提供 Dockerfile,就能使用你喜欢的任何运行时(例如 Deno 或 Bun)。如果没有提供 Dockerfile,Google Cloud Run 会使用默认的 Node.js buildpack。

本指南假设你已经拥有 Google Cloud 账户和结算账户。

1. 安装 CLI ​

使用 Google Cloud Platform 时,通过 gcloud CLI 操作最为方便。

例如,在 macOS 上使用 Homebrew:

sh
brew install --cask gcloud-cli

通过 CLI 进行身份验证。

sh
gcloud auth login

2. 项目配置 ​

创建项目。在提示时接受自动生成的项目 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-compute@developer.gserviceaccount.com \
    --role=roles/run.builder

3. 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 dev

4. 部署 ​

开始部署,并按照交互式提示操作(例如选择区域)。

sh
gcloud run deploy my-app --source . --allow-unauthenticated

更换运行时 ​

如果想使用 Deno 或 Bun 运行时(或自定义 Node.js 容器)部署,请添加定义所需环境的 Dockerfile,也可以添加 .dockerignore。

容器化相关信息请参阅:

基于 MIT 许可证发布。