← Cloudflare Workers VPC / workers-vpc / examples
Připojení Workers ke Cloudflare Mesh
Tento příklad ukazuje, jak použít binding VPC Network s Cloudflare Mesh (dříve WARP Connector) k připojení k libovolné soukromé službě ve vašem účtu z Workeru, aniž byste museli předem registrovat jednotlivé hostitele nebo zadávat UUID Cloudflare Tunnel.
Když vytváříte vazbu na Cloudflare Mesh pomocí network_id: "cf1:network", váš Worker se může připojit k libovolnému uzlu Mesh, klientskému zařízení, podsíti nebo trase hostname oznámené prostřednictvím Cloudflare Tunnel nebo Cloudflare Mesh, případně k cíli připojenému přes Cloudflare WAN on-ramp (GRE, IPsec nebo CNI).
Předpoklady
- A Cloudflare Mesh uzel připojený k vaší soukromé síti
- Privátní služby běžící za vaším uzlem Mesh (například interní API, databáze nebo webová aplikace)
1. Nakonfigurujte svůj Worker
Navažte svého Workera na Cloudflare Mesh pomocí network_id: "cf1:network" ve vaší konfiguraci Wrangler:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "mesh-gateway",
"main": "src/index.js",
// Set this to today's date
"compatibility_date": "2026-08-28",
"vpc_networks": [
{
"binding": "MESH",
"network_id": "cf1:network",
"remote": true
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "mesh-gateway"
main = "src/index.js"
# Set this to today's date
compatibility_date = "2026-08-28"
[[vpc_networks]]
binding = "MESH"
network_id = "cf1:network"
remote = trueDíky této jediné vazbě může váš Worker dosáhnout na libovolnou službu napříč všemi Cloudflare Tunnels, uzly Mesh a přístupovými body Cloudflare WAN ve vašem účtu.
2. Implementujte Worker
Pomocí bindingu VPC Network přistupujte ke službám podle privátní IP adresy. Cloudflare Mesh v současnosti podporuje pouze směrování na základě IP adres.
// You can target a Mesh node directly by its Mesh IP or any private IP
// on a subnet route behind the node
const SERVICE_IP = "10.0.1.50";
const SERVICE_PORT = 8080;
export default {
async fetch(request, env, ctx) {
try {
const response = await env.MESH.fetch(
`http://${SERVICE_IP}:${SERVICE_PORT}/api/data`,
);
return response;
} catch (error) {
// fetch() throws if the VPC Network cannot connect to the target
return new Response("Service unavailable", { status: 503 });
}
},
};Na rozdíl od VPC služby, adresa URL, kterou předáte do fetch() nebo adresu, kterou předáte do connect() určuje skutečný cíl. Můžete se tak dostat k libovolné IP adrese a portu dostupným přes vaši síť Mesh, aniž byste museli pro každou službu vytvářet samostatnou vazbu.
Připojení TCP
Můžete také použít connect() pro otevření syrových TCP soketů k jiným než HTTP službám přes stejný binding:
// You can target a Mesh node directly by its Mesh IP or any private IP
// on a subnet route behind the node
const REDIS_IP = "10.0.1.50";
const REDIS_PORT = 6379;
export default {
async fetch(request, env, ctx) {
try {
const socket = await env.MESH.connect(`${REDIS_IP}:${REDIS_PORT}`);
const writer = socket.writable.getWriter();
await writer.write(new TextEncoder().encode("PING\r\n"));
await writer.close();
return new Response(socket.readable);
} catch (error) {
// connect() throws if the VPC Network cannot connect to the target
return new Response("Service unavailable", { status: 503 });
}
},
};3. Nasaďte a otestujte
Nasaďte svého Workera a ověřte, že se dokáže připojit k vašim privátním službám:
npx wrangler deploy# Test accessing the internal user API
curl https://mesh-gateway.workers.dev/api/users
# Test accessing metrics by private IP
curl https://mesh-gateway.workers.dev/api/metricsDalší kroky
- Další informace o VPC sítě možnosti konfigurace
- Viz Workers Binding API reference
- Nastavte Cloudflare Mesh pro váš účet
- Prozkoumejte další příklady