集成 TiDB Cloud 与 Cloudflare Workers
Cloudflare Workers 是一个平台,允许你在特定事件发生时运行代码,例如 HTTP 请求或数据库变更。Cloudflare Workers 易于使用,可用于构建各种应用,包括自定义 API、无服务器函数和微服务。它对于需要低延迟性能或需要快速扩展的应用尤其有用。
你可能会发现从 Cloudflare Workers 连接到 TiDB Cloud 有一定难度,因为 Cloudflare Workers 运行在 V8 引擎上,无法直接建立 TCP 连接。你可以使用 TiDB Cloud serverless driver 通过 HTTP 连接帮助你连接到 Cloudflare Workers。
本文档将逐步演示如何使用 TiDB Cloud serverless driver 连接到 Cloudflare Workers。
开始之前
在尝试本文步骤之前,你需要准备以下内容:
- 一个 TiDB Cloud 账号,以及在 TiDB Cloud 上创建的 TiDB Cloud Serverless 集群。详情请参见 TiDB Cloud 快速入门。
- 一个 Cloudflare Workers 账号。
- 已安装 npm。
步骤 1:设置 Wrangler
Wrangler 是官方的 Cloudflare Worker CLI。你可以用它来生成、构建、预览和发布你的 Workers。
安装 Wrangler:
npm install wrangler认证 Wrangler,运行 wrangler login:
wrangler login使用 Wrangler 创建一个 worker 项目:
wrangler init tidb-cloud-cloudflare在终端中,你会被询问一系列与项目相关的问题。所有问题均选择默认值即可。
步骤 2:安装 serverless driver
进入你的项目目录:
cd tidb-cloud-cloudflare使用 npm 安装 serverless driver:
npm install @tidbcloud/serverless这会在
package.json
中添加 serverless driver 依赖。
步骤 3:开发 Cloudflare Worker 函数
你需要根据需求修改 src/index.ts
。
例如,如果你想展示所有数据库,可以使用如下代码:
import { connect } from '@tidbcloud/serverless'
export interface Env {
DATABASE_URL: string;
}
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
const conn = connect({url:env.DATABASE_URL})
const resp = await conn.execute("show databases")
return new Response(JSON.stringify(resp));
},
};
步骤 4:在环境中设置 DATABASE_URL
DATABASE_URL
遵循 mysql://username:password@host/database
格式。你可以使用 wrangler cli 设置环境变量:
wrangler secret put <DATABASE_URL>
你也可以通过 Cloudflare Workers 控制台编辑 DATABASE_URL
secret。
步骤 5:发布到 Cloudflare Workers
现在你已经可以部署到 Cloudflare Workers 了。
在你的项目目录下,运行以下命令:
npx wrangler publish
步骤 6:测试你的 Cloudflare Workers
前往 Cloudflare 控制台 查找你的 worker。你可以在概览页面找到 worker 的 URL。
访问该 URL,你将获得结果。