← Cloudflare Workers VPC / workers-vpc / examples
Доступ к частному API или веб-сайту
В этом примере показано, как получить доступ к приватному REST API, недоступному из публичного интернета. В этом руководстве мы настроим VPC Service для внутреннего API, создадим Worker, который отправляет запросы к этому API, и развернём Worker, чтобы проверить внесённые изменения.
Предварительные требования
- Виртуальная машина/экземпляр EC2, запущенный в вашей VPC/виртуальной сети
- Частный API или веб-сайт, запущенный в вашей VPC/виртуальной сети, с правилами безопасности, разрешающими доступ к виртуальной машине, на которой будет запущен
cloudflared - Аккаунт Workers с доступом к Workers VPC
1. Настройте Cloudflare Tunnel
Cloudflare Tunnel создаёт защищённое соединение между вашей частной сетью и Cloudflare. Этот туннель позволяет Workers безопасно обращаться к вашим частным ресурсам.
-
Перейдите в Панель управления Workers VPC ↗ и выберите Tunnels на вкладке.
-
Выберите Создание чтобы создать новый туннель.
-
Введите имя туннеля (например,
private-api-tunnel) и выберите Сохранить туннель. -
Выберите операционную систему и архитектуру. Панель управления покажет инструкции по установке для вашей среды.
-
Следуйте приведённым командам, чтобы скачать и установить
cloudflaredна вашей виртуальной машине и выполните команду установки службы с вашим уникальным токеном.
Панель управления подтвердит успешное подключение туннеля. Запишите ID туннеля для следующего шага.
2. Создайте Workers VPC Service
Сначала создайте Workers VPC Service для внутреннего API:
npx wrangler vpc service create api-service \
--type http \
--tunnel-id <YOUR_TUNNEL_ID> \
--ipv4 10.0.1.50 \
--http-port 8080Вы также можете создать VPC Service для службы, используя её имя хоста:
npx wrangler vpc service create api-service \
--type http \
--tunnel-id <YOUR_TUNNEL_ID> \
--hostname internal-hostname.example.comЗапишите ID сервиса, возвращённый для следующего шага.
3. Настройте Worker
Обновите файл конфигурации Wrangler:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "private-api-gateway",
"main": "src/index.js",
// Set this to today's date
"compatibility_date": "2026-08-28",
"vpc_services": [
{
"binding": "INTERNAL_API",
"service_id": "<YOUR_SERVICE_ID>",
"remote": true
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "private-api-gateway"
main = "src/index.js"
# Set this to today's date
compatibility_date = "2026-08-28"
[[vpc_services]]
binding = "INTERNAL_API"
service_id = "<YOUR_SERVICE_ID>"
remote = true4. Реализуйте Worker
В коде Workers используйте привязку VPC Service, чтобы отправлять запросы к сервису:
export default {
async fetch(request, env, ctx) {
try {
// Fetch data from internal API and process it before returning
const response = await env.INTERNAL_API.fetch("http://10.0.1.50:8080/api/data");
// Use the response of the private API to perform more logic in Workers, before returning the final response
return response;
} catch (error) {
return new Response("Service unavailable", { status: 503 });
}
},
};В этом руководстве показано, как можно создать простой прокси в ваших Workers. Однако вы можете использовать VPC Services для прямых обращений к API и обработки ответов, что позволяет реализовать более полноценную full-stack и backend функциональность в Workers.
5. Разверните и протестируйте
Теперь можно развернуть и протестировать созданный Worker:
npx wrangler deploy# Test GET request
curl https://private-api-gateway.workers.devСледующие шаги
- Добавить аутентификация и авторизация
- Реализуйте ограничение частоты запросов
- Настройка мониторинг и оповещения
- Изучите другие примеры