コンテンツにスキップ

データベースへの接続

Cloudflare Workersは、SQLおよびNoSQLデータベースに接続してデータをクエリできます。これには以下が含まれます:

  • PostgresやMySQLを含む従来のホスティングされたリレーショナルデータベース。
  • サーバーレスデータベース:Supabase、MongoDB Atlas、PlanetScale、FaunaDB、Prisma。
  • Cloudflare独自の D1 、サーバーレスのSQLベースのデータベース。
データベース統合ライブラリまたはドライバ接続方法
Postgres-Postgres.jsnode-postgresHyperdrive
Postgres-deno-postgresTCP Socketを介してデータベースドライバ
MySQL-deno-mysqlTCP 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いいえAPIfetch()を介したGraphQL API
Upstash Redisはい@upstash/redisクライアントライブラリを介したAPI
TiDB Cloudいいえ@tidbcloud/serverlessクライアントライブラリを介したAPI

必要なパッケージをインストールしたら、これらのパッケージが提供するAPIを使用してデータベースに接続し、操作を実行します。サービス固有の指示については、詳細なリンクを参照してください。

Workerからデータベースに接続する

Workerからデータベースに接続する方法は4つあります:

  1. Hyperdriveを使用する(推奨)。これは従来のデータベースへのアクセスを大幅に高速化します。Hyperdriveは現在、PostgreSQLおよびPostgreSQL互換のデータベースプロバイダーをサポートしています。
  2. データベース統合: 認証を簡素化し、あなたの代わりに資格情報を管理し、PlanetScale、Neon、Supabaseをサポートします。
  3. TCP Socket API: データベースへの直接TCP接続。TCPは、PostgreSQLやMySQLなどの多くのデータベースがクライアント接続に使用する事実上の標準プロトコルです。
  4. HTTPまたはWebSocketベースのサーバーレスドライバ:多くのホスティングされたデータベースは、TCPをサポートしない環境からクライアントが接続できるようにするHTTPまたはWebSocket APIをサポートしています。

認証

データベースが認証を必要とする場合は、Wranglerシークレットを使用して資格情報を安全に保存します。これを行うには、次のwrangler secretコマンドを使用して、Cloudflare Workersプロジェクトにシークレットを作成します:

Terminal window
wrangler secret put <SECRET_NAME>

次に、次のコードスニペットを使用してコード内でシークレット値を取得します:

const secretValue = env.<SECRET_NAME>;

シークレット値を使用して外部サービスに認証します。たとえば、外部サービスが認証のためにAPIキーやデータベースのユーザー名とパスワードを必要とする場合、これらを関連するサービスのライブラリまたはAPIを使用して含めます。

mTLS認証が必要なサービスには、mTLS証明書を使用してクライアント証明書を提示します。

次のステップ