環境
Wranglerを使用すると、各環境に対して異なる設定で同じWorkerアプリケーションをデプロイできます。Workerアプリケーションのwrangler.tomlファイルで環境を設定する必要があります。
以下の環境フローを確認してください:
my-workerという名前のWorkerアプリケーションを作成しました。- Workerの
wrangler.toml設定ファイルに、例えばdevという環境を作成します。 wrangler.tomlで、バインディングやルートを追加してdev環境を設定します。npx wrangler deploy -e devを使用してWorkerをデプロイします。- 背景で、Wranglerは
my-worker-devという新しいWorkerを作成します。 - これで、
my-workerのWorkerコードと設定を変更し、変更をデプロイする環境を選択できます。
環境は、wrangler dev、npx wrangler deploy、およびwrangler secretの--envまたは-eフラグと共に使用されます。
環境を作成するには:
- Workerの
wrangler.tomlファイルを開きます。 [env.<NAME>]を追加し、<NAME>を希望する環境の名前に変更します。- 複数の環境を作成するには、ステップ2を繰り返します。
環境の名前を付ける際には、migrating-service-from-company1-to-company2やcompany1-acquisition-load-testのような機密情報を含まないように注意してください。
カスタムdev.example.comルートを設定する例の[env.dev]環境のレイアウトを確認してください:
name = "your-worker"route = "example.com"
[env.dev]route = "dev.example.com"同じ名前の複数の環境を指定することはできません。
Wranglerは、Workerをデプロイするために環境名をトップレベルの名前に追加します。例えば、my-workerという名前のWorkerプロジェクトに[env.dev]環境がある場合、my-worker-devという名前のWorkerがデプロイされます。
環境を設定した後、変更を反映させるためにWorkerプロジェクトディレクトリでnpx wrangler deployを実行します。
継承できないキーはトップレベルで設定可能ですが、環境によって継承されることはなく、各環境ごとに指定する必要があります。
バインディングや環境変数は、wrangler.tomlファイル内の各環境ごとに指定する必要があります。
以下の例のwrangler.tomlファイルを確認してください:
name = "my-worker"
vars = { API_HOST = "example.com" }
kv_namespaces = [ { binding = "<BINDING_NAME>", id = "<KV_NAMESPACE_ID_DEV>" }]
[env.production]
vars = { API_HOST = "production.example.com" }
kv_namespaces = [ { binding = "<BINDING_NAME>", id = "<KV_NAMESPACE_ID_PRODUCTION>" }]環境固有のシークレットを割り当てるには、コマンドwrangler secret put <KEY> -envを実行します。
以下のwrangler.tomlファイルは、wrangler.tomlファイルに2つの環境、[env.staging]と[env.production]を追加します。カスタムドメインやルートにデプロイする場合は、各環境に対してrouteまたはroutesキーを提供する必要があります。
name = "my-worker"route = "dev.example.com/*"vars = { ENVIRONMENT = "dev" }
[env.staging]vars = { ENVIRONMENT = "staging" }route = "staging.example.com/*"
[env.production]vars = { ENVIRONMENT = "production" }routes = [ "example.com/foo/*", "example.com/bar/*"]この設定で環境を使用するには、--envフラグを介して環境の名前を渡すことができます。
この設定では、Wranglerは以下のように動作します:
npx wrangler deployUploaded my-workerPublished my-worker dev.example.com/*npx wrangler deploy --env stagingUploaded my-worker-stagingPublished my-worker-staging staging.example.com/*npx wrangler deploy --env productionUploaded my-worker-productionPublished my-worker-production example.com/*定義された環境変数(varsキー)は、Workerに対してグローバル変数として公開されます。
この設定では、ENVIRONMENT変数を使用して、与えられた環境に応じて特定のコードを呼び出すことができます:
if (ENVIRONMENT === "staging") { // ステージング特有のコード} else if (ENVIRONMENT === "production") { // 本番特有のコード}コードを*.workers.devサブドメインにデプロイするには、希望する環境にworkers_dev = trueを含めます。wrangler.tomlファイルは次のようになります:
name = "my-worker"route = "example.com/*"
[env.staging]workers_dev = trueこの設定では、Wranglerは以下のように動作します:
npx wrangler deployUploaded my-workerPublished my-worker example.com/*npx wrangler deploy --env stagingUploaded my-workerPublished my-worker https://my-worker-staging.<YOUR_SUBDOMAIN>.workers.dev