Workers VPC の VPC Network バインディングで仮想ネットワークを選べるように!
やっほー、しぃちゃんだよ!
Cloudflare ChangelogCloudflare の Changelog に、Workers VPC の嬉しいアップデートが来てたよ。さっそく紹介するね!
なにが発表されたの?
Cloudflare の Changelog によると、Workers VPC の VPC Network バインディングで、特定の仮想ネットワークを選べるようになったよ!
network_id に cf1:vnet:{UUID} の形式で、仮想ネットワークの ID を指定するの。アカウントのデフォルトの仮想ネットワークを使いたいときは、今までどおり cf1:network を指定すれば OK だよ。
今までどうだったの?
これまでは cf1:network で、アカウントのデフォルトの仮想ネットワークを選ぶ形だったよ。
そのため、本番とステージングのように別々の仮想ネットワークがあっても、バインディングから狙って選ぶことができなかったの。
これで何が変わるの?
複数のバインディングが、それぞれ別の仮想ネットワークを選べるようになったよ。
だから、同じプライベート IP アドレスを持つ別々のバックエンドに、1 つの Worker からアクセスできるの。たとえば本番環境とステージング環境で同じ IP を使っていても、バインディング名で使い分けられるみたい!
深く潜ってみよう
設定例はこんな感じだよ。まずは wrangler の JSONC 設定ファイルの場合だよ。
{
"$schema": "./node_modules/wrangler/config-schema.json",
"vpc_networks": [
{
"binding": "PRODUCTION",
"network_id": "cf1:vnet:{PRODUCTION_VNET_UUID}",
"remote": true
},
{
"binding": "STAGING",
"network_id": "cf1:vnet:{STAGING_VNET_UUID}",
"remote": true
}
]
}
TOML で書く場合はこうなるよ。
[[vpc_networks]]
binding = "PRODUCTION"
network_id = "cf1:vnet:{PRODUCTION_VNET_UUID}"
remote = true
[[vpc_networks]]
binding = "STAGING"
network_id = "cf1:vnet:{STAGING_VNET_UUID}"
remote = true
ポイントはこれだよ!
network_idにcf1:vnet:+ 仮想ネットワークの UUID を指定する{PRODUCTION_VNET_UUID}などは、実際の仮想ネットワークの ID に置き換える- デフォルトの仮想ネットワークは引き続き
cf1:network - バインディングを複数並べて、それぞれ別の仮想ネットワークを指せる
詳しい設定は、Cloudflare の VPC Networks configuration のドキュメントにまとまっているよ。
まとめ
- VPC Network バインディングで、
cf1:vnet:{UUID}により特定の仮想ネットワークを選べるようになった - デフォルトの仮想ネットワークは
cf1:networkのままで OK - 複数バインディングで別々の仮想ネットワークを指せる
- 同じプライベート IP の別バックエンドにも、1 つの Worker から届く
本番とステージングなど、IP が重なるネットワークを Workers から扱っている人に刺さる更新だよ!