データベースへの接続
Cloudflare Workersは、SQLおよびNoSQLデータベースに接続してデータをクエリできます。これには以下が含まれます:
- PostgresやMySQLを含む従来のホスティングされたリレーショナルデータベース。
- サーバーレスデータベース:Supabase、MongoDB Atlas、PlanetScale、FaunaDB、Prisma。
- Cloudflare独自の D1 、サーバーレスのSQLベースのデータベース。
| データベース | 統合 | ライブラリまたはドライバ | 接続方法 |
|---|---|---|---|
| Postgres | - | Postgres.js ↗、node-postgres ↗ | Hyperdrive |
| Postgres | - | deno-postgres ↗ | TCP Socketを介してデータベースドライバ |
| MySQL | - | deno-mysql ↗ | TCP Socketを介してデータベースドライバ |
| Fauna ↗ | はい | fauna ↗ | クライアントライブラリを介したAPI |
| PlanetScale ↗ | はい | @planetscale/database ↗ | クライアントライブラリを介したAPI |
| Supabase ↗ | はい | @supabase/supabase-js ↗ | クライアントライブラリを介したAPI |
| Mongo ↗ | いいえ | realm-web ↗ | クライアントライブラリを介したAPI |
| Prisma ↗ | いいえ | prisma ↗ | クライアントライブラリを介したAPI |
| Neon ↗ | はい | @neondatabase/serverless ↗ | クライアントライブラリを介したAPI |
| Hasura ↗ | いいえ | API | fetch()を介したGraphQL API |
| Upstash Redis ↗ | はい | @upstash/redis ↗ | クライアントライブラリを介したAPI |
| TiDB Cloud ↗ | いいえ | @tidbcloud/serverless ↗ | クライアントライブラリを介したAPI |
必要なパッケージをインストールしたら、これらのパッケージが提供するAPIを使用してデータベースに接続し、操作を実行します。サービス固有の指示については、詳細なリンクを参照してください。
Workerからデータベースに接続する方法は4つあります:
- Hyperdriveを使用する(推奨)。これは従来のデータベースへのアクセスを大幅に高速化します。Hyperdriveは現在、PostgreSQLおよびPostgreSQL互換のデータベースプロバイダーをサポートしています。
- データベース統合: 認証を簡素化し、あなたの代わりに資格情報を管理し、PlanetScale、Neon、Supabaseをサポートします。
- TCP Socket API: データベースへの直接TCP接続。TCPは、PostgreSQLやMySQLなどの多くのデータベースがクライアント接続に使用する事実上の標準プロトコルです。
- HTTPまたはWebSocketベースのサーバーレスドライバ:多くのホスティングされたデータベースは、TCPをサポートしない環境からクライアントが接続できるようにするHTTPまたはWebSocket APIをサポートしています。
データベースが認証を必要とする場合は、Wranglerシークレットを使用して資格情報を安全に保存します。これを行うには、次のwrangler secretコマンドを使用して、Cloudflare Workersプロジェクトにシークレットを作成します:
wrangler secret put <SECRET_NAME>次に、次のコードスニペットを使用してコード内でシークレット値を取得します:
const secretValue = env.<SECRET_NAME>;シークレット値を使用して外部サービスに認証します。たとえば、外部サービスが認証のためにAPIキーやデータベースのユーザー名とパスワードを必要とする場合、これらを関連するサービスのライブラリまたはAPIを使用して含めます。
mTLS認証が必要なサービスには、mTLS証明書を使用してクライアント証明書を提示します。
- Hyperdriveを使用して、既存のPostgreSQLデータベースに接続する方法を学びます。
- Workersで使用できる他のストレージオプションを発見します。
- Cloudflare D1で最初のデータベースを作成します。