環境は、特定の依存関係と設定でコードが動く、分離された空間です。互換性テストやバージョン管理など、さまざまな目的に使えます。環境を分けると、コードの一貫性、テスト、本番との分離に役立ち、デプロイ時のミスを減らせます。
Wrangler を使うと、同じ Worker アプリケーションを、環境 ごとに異なる設定でデプロイできます。
Wrangler 環境を使う場合は、使いたい Durable Object バインディング を環境ごとに指定する必要があります。
Durable Object バインディングは継承されません。たとえば、staging という環境は次のように定義できます。
{
"env": {
"staging": {
"durable_objects": {
"bindings": [
{
"name": "EXAMPLE_CLASS",
"class_name": "DurableObjectExample"
}
]
}
}
}
}[[env.staging.durable_objects.bindings]]
name = "EXAMPLE_CLASS"
class_name = "DurableObjectExample"Wrangler は公開時に、環境名 をトップレベルの名前に付けます。そのため、Worker 名が worker-name の場合、上の例は次と同じです。
{
"env": {
"staging": {
"durable_objects": {
"bindings": [
{
"name": "EXAMPLE_CLASS",
"class_name": "DurableObjectExample",
"script_name": "worker-name-staging"
}
]
}
}
}
}[[env.staging.durable_objects.bindings]]
name = "EXAMPLE_CLASS"
class_name = "DurableObjectExample"
script_name = "worker-name-staging"staging 環境の "EXAMPLE_CLASS" は、トップレベルの "EXAMPLE_CLASS" バインディングとは別の Worker コード名に結び付きます。そのため、永続ストレージも異なる、別の Durable Objects にアクセスします。
トップレベルのバインディングと同じオブジェクトにアクセスする、環境固有のバインディングが必要な場合は、script_name でトップレベルの Worker コード名を明示します。
{
"env": {
"another": {
"durable_objects": {
"bindings": [
{
"name": "EXAMPLE_CLASS",
"class_name": "DurableObjectExample",
"script_name": "worker-name"
}
]
}
}
}
}[[env.another.durable_objects.bindings]]
name = "EXAMPLE_CLASS"
class_name = "DurableObjectExample"
script_name = "worker-name"Durable Object のマイグレーションは、各環境とトップレベルの両方で定義できます。環境レベルのマイグレーションは、トップレベルのマイグレーションを上書きします。
詳細は、Migration Wrangler Configuration を参照してください。
ローカル開発セッションは、本番環境を模したスタンドアロンのローカル専用環境を作ります。本番へデプロイする前に、Worker と Durable Objects をテストできます。
既存の Durable Object バインディング DB は、ローカル実行時に Worker から使えます。
Workers の ローカル開発 を参照してください。
KV バックエンドの Durable Objects は、ダッシュボードの playground でリモート開発できます。ダッシュボードの playground はブラウザー版の Visual Studio Code を使い、ブラウザーだけで Worker をすばやく反復できます。
リモート開発を始めるには、次の手順を実行します。
-
Cloudflare ダッシュボードで、Workers & Pages ページを開きます。
Workers & Pages を開く ↗ -
既存の Worker を選びます。
-
画面右上の Edit code アイコンを選びます。