INTEGRITY Документация

Доступ к частному API или веб-сайту

В этом примере показано, как получить доступ к приватному REST API, недоступному из публичного интернета. В этом руководстве мы настроим VPC Service для внутреннего API, создадим Worker, который отправляет запросы к этому API, и развернём Worker, чтобы проверить внесённые изменения.

Предварительные требования

1. Настройте Cloudflare Tunnel

Cloudflare Tunnel создаёт защищённое соединение между вашей частной сетью и Cloudflare. Этот туннель позволяет Workers безопасно обращаться к вашим частным ресурсам.

  1. Перейдите в Панель управления Workers VPC ↗ и выберите Tunnels на вкладке.

  2. Выберите Создание чтобы создать новый туннель.

  3. Введите имя туннеля (например, private-api-tunnel) и выберите Сохранить туннель.

  4. Выберите операционную систему и архитектуру. Панель управления покажет инструкции по установке для вашей среды.

  5. Следуйте приведённым командам, чтобы скачать и установить 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 = true

4. Реализуйте Worker

В коде Workers используйте привязку VPC Service, чтобы отправлять запросы к сервису:

index.js
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

Следующие шаги