コンテンツにスキップ

環境

背景

Wranglerを使用すると、各環境に対して異なる設定で同じWorkerアプリケーションをデプロイできます。Workerアプリケーションのwrangler.tomlファイルで環境を設定する必要があります。

以下の環境フローを確認してください:

  1. my-workerという名前のWorkerアプリケーションを作成しました。
  2. Workerのwrangler.toml設定ファイルに、例えばdevという環境を作成します。
  3. wrangler.tomlで、バインディングルートを追加してdev環境を設定します。
  4. npx wrangler deploy -e devを使用してWorkerをデプロイします。
  5. 背景で、Wranglerはmy-worker-devという新しいWorkerを作成します。
  6. これで、my-workerのWorkerコードと設定を変更し、変更をデプロイする環境を選択できます。

環境は、wrangler devnpx wrangler deploy、およびwrangler secret--envまたは-eフラグと共に使用されます。

設定

環境を作成するには:

  1. Workerのwrangler.tomlファイルを開きます。
  2. [env.<NAME>]を追加し、<NAME>を希望する環境の名前に変更します。
  3. 複数の環境を作成するには、ステップ2を繰り返します。

環境の名前を付ける際には、migrating-service-from-company1-to-company2company1-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は以下のように動作します:

Terminal window
npx wrangler deploy
Uploaded my-worker
Published my-worker
dev.example.com/*
Terminal window
npx wrangler deploy --env staging
Uploaded my-worker-staging
Published my-worker-staging
staging.example.com/*
Terminal window
npx wrangler deploy --env production
Uploaded my-worker-production
Published my-worker-production
example.com/*

定義された環境変数varsキー)は、Workerに対してグローバル変数として公開されます。

この設定では、ENVIRONMENT変数を使用して、与えられた環境に応じて特定のコードを呼び出すことができます:

if (ENVIRONMENT === "staging") {
// ステージング特有のコード
} else if (ENVIRONMENT === "production") {
// 本番特有のコード
}

*.workers.devを使用したステージング環境

コードを*.workers.devサブドメインにデプロイするには、希望する環境にworkers_dev = trueを含めます。wrangler.tomlファイルは次のようになります:

name = "my-worker"
route = "example.com/*"
[env.staging]
workers_dev = true

この設定では、Wranglerは以下のように動作します:

Terminal window
npx wrangler deploy
Uploaded my-worker
Published my-worker
example.com/*
Terminal window
npx wrangler deploy --env staging
Uploaded my-worker
Published my-worker
https://my-worker-staging.<YOUR_SUBDOMAIN>.workers.dev