Skip to content

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

環境

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

Environments は、コードが実行される異なるコンテキストです。Cloudflare Developer Platform では、異なる環境を作成および管理できます。環境を通じて、同じプロジェクトを複数の場所へ、複数の名前でデプロイできます。

環境ごとに異なる D1 データベースを指定するには、Wrangler ファイルで次の構文を使います。

{
	"env": {
		// This is a staging environment
		"staging": {
			"d1_databases": [
				{
					"binding": "<BINDING_NAME_1>",
					"database_name": "<DATABASE_NAME_1>",
					"database_id": "<UUID1>"
				}
			]
		},
		// This is a production environment
		"production": {
			"d1_databases": [
				{
					"binding": "<BINDING_NAME_2>",
					"database_name": "<DATABASE_NAME_2>",
					"database_id": "<UUID2>"
				}
			]
		}
	}
}
[[env.staging.d1_databases]]
binding = "<BINDING_NAME_1>"
database_name = "<DATABASE_NAME_1>"
database_id = "<UUID1>"

[[env.production.d1_databases]]
binding = "<BINDING_NAME_2>"
database_name = "<DATABASE_NAME_2>"
database_id = "<UUID2>"

上記のコードでは、staging 環境は production 環境(DATABASE_NAME_2)とは別のデータベース(DATABASE_NAME_1)を使います。

Wrangler ファイルの構造

環境ごとに異なる D1 データベースを指定する必要がある場合、Wrangler 設定ファイル には次のようなバインディングが含まれることがあります。

{
	"env": {
		"production": {
			"d1_databases": [
				{
					"binding": "DB",
					"database_name": "DATABASE_NAME",
					"database_id": "DATABASE_ID"
				}
			]
		}
	}
}
[[env.production.d1_databases]]
binding = "DB"
database_name = "DATABASE_NAME"
database_id = "DATABASE_ID"

上記の設定では次のとおりです。

  • [[env.production.d1_databases]]env の下に production オブジェクトを作り、d1_databases プロパティを持ちます。d1_databases はオブジェクトの配列です。データベースが複数ある場合に複数の D1 バインディングを作成できるためです。
  • <key> = <value> 形式の行の下にあるプロパティは、d1_databases 配列内のオブジェクトのプロパティです。

したがって、上記のバインディングは次と同等です。

{
  "env": {
    "production": {
      "d1_databases": [
        {
          "binding": "DB",
          "database_name": "DATABASE_NAME",
          "database_id": "DATABASE_ID"
        }
      ]
    }
  }
}

{
	"env": {
		"staging": {
			"d1_databases": [
				{
					"binding": "BINDING_NAME_1",
					"database_name": "DATABASE_NAME_1",
					"database_id": "UUID_1"
				}
			]
		},
		"production": {
			"d1_databases": [
				{
					"binding": "BINDING_NAME_2",
					"database_name": "DATABASE_NAME_2",
					"database_id": "UUID_2"
				}
			]
		}
	}
}
[[env.staging.d1_databases]]
binding = "BINDING_NAME_1"
database_name = "DATABASE_NAME_1"
database_id = "UUID_1"

[[env.production.d1_databases]]
binding = "BINDING_NAME_2"
database_name = "DATABASE_NAME_2"
database_id = "UUID_2"

上記は次の JSON 構造と同等です。

{
  "env": {
    "production": {
      "d1_databases": [
        {
          "binding": "BINDING_NAME_2",
          "database_id": "UUID_2",
          "database_name": "DATABASE_NAME_2"
        }
      ]
    },
    "staging": {
      "d1_databases": [
        {
          "binding": "BINDING_NAME_1",
          "database_id": "UUID_1",
          "database_name": "DATABASE_NAME_1"
        }
      ]
    }
  }
}

役に立ちましたか?