Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

ローカル開発

最終更新 Markdown で表示Agent セットアップ

Hyperdrive は、Workers をローカルで開発・テストするときにも使えます。Workers のコマンドラインインターフェースである Wrangler には、ローカル開発用のオプションが 2 つあります。

  • wrangler dev(デフォルト): Worker のコードを自分のマシン上でローカル実行します。データベース(ローカルまたはリモート)に直接接続する localConnectionString を設定します。このモードでは Hyperdrive のクエリキャッシュは効きません。
  • wrangler dev --remote: デプロイ済みの Hyperdrive 設定を使い、Worker を Cloudflare 上で実行します。Hyperdrive のコネクションプーリングとクエリキャッシュを有効にした状態でテストしたいときに使います。

wrangler dev を使う

デフォルトでは、wrangler dev は Worker のコードを自分のマシン上でローカル実行します。ローカル開発中にデータベースへ接続するには、データベースを直接指す localConnectionString を設定します。

localConnectionString は、ローカルデータベースとリモートデータベースの両方に使えます。

  • ローカルデータベース: 自分のマシン上で動いているデータベースインスタンスに接続します(例: postgres://user:password@localhost:5432/database
  • リモートデータベース: TLS 経由でリモートデータベースに直接接続します(例: postgres://user:[email protected]:5432/database?sslmode=require または mysql://user:[email protected]:3306/database?sslMode=required)。必要な場合は SSL/TLS モードを指定してください。

環境変数で設定する

認証情報をソース管理にコミットしないよう、環境変数を使う方法を推奨します。

# Your configured Hyperdrive binding is "HYPERDRIVE"
export CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE="postgres://user:password@your-database-host:5432/database"
npx wrangler dev

環境変数の形式は CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME> です。<BINDING_NAME>Wrangler 設定ファイル で Hyperdrive に割り当てたバインディング名です。

環境変数を解除するには: unset CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_<BINDING_NAME>

たとえば、ローカルデータベースの接続文字列を設定するには:

export CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE="postgres://user:password@localhost:5432/databasename"
npx wrangler dev

Wrangler 設定ファイルで設定する

または、Wrangler 設定ファイルlocalConnectionString を設定できます。

{
	"hyperdrive": [
		{
			"binding": "HYPERDRIVE",
			"id": "c020574a-5623-407b-be0c-cd192bab9545",
			"localConnectionString": "postgres://user:password@localhost:5432/databasename"
		}
	]
}
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "c020574a-5623-407b-be0c-cd192bab9545"
localConnectionString = "postgres://user:password@localhost:5432/databasename"

環境変数と Wrangler 設定ファイルの localConnectionString の両方がある場合は、環境変数が優先されます。

wrangler dev --remote を使う

wrangler dev --remote を実行すると、Worker は Cloudflare のネットワーク上で動き、デプロイ済みの Hyperdrive 設定を使います。つまり次のとおりです。

  • Worker のコードはローカルではなく、Cloudflare の本番環境で実行されます
  • Hyperdrive のコネクションプーリングとクエリキャッシュが有効になります
  • wrangler hyperdrive create で作成した Hyperdrive 設定に指定したデータベースに接続します
  • セッション中の変更はリモートリソースに影響します

このモードは、デプロイ前に Hyperdrive の機能を有効にした状態で Worker の動作を確認したいときに便利です。

wrangler.jsonc で Hyperdrive バインディングを設定します。

{
	"hyperdrive": [
		{
			"binding": "HYPERDRIVE",
			"id": "your-hyperdrive-id",
		},
	],
}
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "your-hyperdrive-id"

リモート開発セッションを開始するには:

npx wrangler dev --remote

ローカル開発セッションの設定方法は、wrangler dev のドキュメント を参照してください。

関連リソース

役に立ちましたか?