← Cloudflare Workers VPC / workers-vpc / configuration
VPC sítě
VPC Networks umožňují vašim Workerům přistupovat k jakékoli službě ve vaší privátní síti bez nutnosti předem registrovat jednotlivé hostitele nebo porty. Můžete se navázat na konkrétní Cloudflare Tunnel pro dosažení libovolné služby za tímto tunelem, nebo pro navázání na Cloudflare Mesh pro dosažení libovolného uzlu Mesh, klientského zařízení, trasy podsítě nebo trasy hostname oznámené přes Cloudflare Tunnel nebo Mesh, případně cíle dostupného přes Cloudflare WAN on-ramp (GRE, IPsec nebo CNI).
Za běhu adresa URL, kterou předáte do fetch() nebo adresu, kterou předáte do connect() určuje cíl: libovolný hostname nebo IP adresu dostupné přes navázaný Cloudflare Tunnel nebo přes Cloudflare Mesh. Použijte fetch() pro provoz HTTP a connect() pro spojení raw TCP (Redis, MQTT, vlastní protokoly a další služby, které nejsou HTTP). To se liší od VPC služby, což vyžaduje vytvořit samostatný binding pro každou kombinaci cílového hostitele a portu.
Navázání na Cloudflare Tunnel
Odkažte na konkrétní Cloudflare Tunnel přímo pomocí jeho UUID:
{
"vpc_networks": [
{
"binding": "MY_VPC",
"tunnel_id": "550e8400-e29b-41d4-a716-446655440000",
"remote": true
}
]
}[[vpc_networks]]
binding = "MY_VPC"
tunnel_id = "550e8400-e29b-41d4-a716-446655440000"
remote = true remote příznak musí být nastaven na true pro povolení vzdálených bindingů během lokálního vývoje.
Navázání na Cloudflare Mesh
Cloudflare Mesh (dříve WARP Connector) propojuje vaše služby, zařízení a Workers prostřednictvím globální sítě Cloudflare. Když Worker navážete vazbu na Cloudflare Mesh pomocí network_id: "cf1:network", váš Worker se může připojit k:
- Libovolný uzel Mesh nebo klientské zařízení ve vašem účtu
- Trasy podsítí a trasy názvů hostitelů oznamované prostřednictvím Cloudflare Tunnel nebo Cloudflare Mesh
- Cíle dostupné přes Cloudflare WAN on-rampy (GRE, IPsec a CNI)
- Veřejné internetové cíle prostřednictvím Cloudflare Gateway : platí vaše stávající zásady provozu Zero Trust a provoz se zaznamenává do logů DNS, HTTP a Network
To vše bez nutnosti uvádět konkrétní UUID Cloudflare Tunnel.
Použijte cf1:network když:
- Vaše Workers potřebují dosáhnout na privátní služby napříč více Cloudflare Tunnels, uzly Mesh nebo přístupovými body Cloudflare WAN
- Chcete z Workeru přistupovat k celé své privátní síti bez správy jednotlivých vazeb Cloudflare Tunnel
- Topologie vaší privátní sítě se může měnit (nová připojení, nové uzly, nové trasy) a vy nechcete při každé změně aktualizovat konfiguraci Workeru
- Chcete, aby odchozí provoz Workeru na veřejné cíle procházel přes Cloudflare Gateway kvůli vynucování zásad a přehledu
Navázání na Cloudflare Mesh pomocí network_id: "cf1:network":
{
"vpc_networks": [
{
"binding": "MY_VPC",
"network_id": "cf1:network",
"remote": true
}
]
}[[vpc_networks]]
binding = "MY_VPC"
network_id = "cf1:network"
remote = truePoužití za běhu
HTTP prostřednictvím fetch()
Za běhu přistupujte k libovolné službě HTTP ve vaší síti pomocí fetch():
export default {
async fetch(request: Request, env: Env) {
// Access a service by private IP
const response = await env.MY_VPC.fetch("http://10.0.1.50/data");
// Access another service on a different port
const dbResponse = await env.MY_VPC.fetch("http://10.0.5.42:5432");
return response;
},
};Když VPC Network nemůže navázat připojení k cílové službě, fetch() vyvolá výjimku.
TCP přes connect()
Otevírání nezpracovaných TCP připojení k libovolnému privátnímu cíli pomocí connect(). To se hodí pro protokoly jiné než HTTP, jako je Redis, Memcached, MQTT nebo vlastní binární protokoly:
export default {
async fetch(request: Request, env: Env) {
// Open a TCP connection to a private Redis instance
const socket = await env.MY_VPC.connect("10.0.1.50:6379");
// Write a Redis PING command
const writer = socket.writable.getWriter();
await writer.write(new TextEncoder().encode("PING\r\n"));
await writer.close();
return new Response(socket.readable);
},
};Když VPC Network nemůže navázat TCP připojení, connect() vyvolá výjimku.
VPC Networks vs. VPC Services
VPC Networks a VPC služby oba propojují Workers se soukromou infrastrukturou, ale každý má jiné kompromisy.
- Použití VPC Services pokud máte známou sadu cílů a chcete, aby byl každý binding omezen na konkrétní hostitele a port.
- Použití VPC Networks pokud potřebujete širší přístup, například k celému Cloudflare Tunnel nebo celé síti Cloudflare Mesh, a chcete mít adresu URL ve svém
fetch()volání pro řízení směrování za běhu.
Následující tabulka shrnuje rozdíly:
| Funkce | VPC sítě | VPC služby |
|---|---|---|
| Rozsah | Jediný Cloudflare Tunnel, nebo trasy Cloudflare Mesh a Cloudflare WAN | Konkrétní hostitel + port |
| Konfigurace | tunnel_id (jeden Cloudflare Tunnel) nebo cf1:network (pro celý účet) |
service_id |
| Protokoly | HTTP (fetch()) a TCP (connect()) |
HTTP (fetch()) nebo TCP (přes Hyperdrive) |
| Registrace služby | Není vyžadováno | Povinné pro každý cíl |
| Kdy použít | Dynamické zjišťování, přístup v rámci celé sítě, dosažení služeb napříč celým účtem | Pevně definované, katalogizované služby |
Další kroky
- Nastavení Cloudflare Tunnel
- Nastavte Cloudflare Mesh
- Nastavení Cloudflare WAN
- Vyzkoušejte Připojení Workers ke Cloudflare Mesh příklad
- Přečtěte si o Workers Binding API