Документация Запланировать пилот

Подключение к базам данных

Cloudflare Workers может подключаться к вашим данным и выполнять запросы как в SQL, так и в NoSQL базах данных, включая:

SQL-база данных D1

D1 является собственной бессерверной SQL-базой данных Cloudflare. Она оптимизирована для глобального доступа из Workers и масштабируется за счёт множества небольших баз данных (до 10 ГБ), например отдельных баз для каждого пользователя, арендатора или сущности. Как и у некоторых других бессерверных баз данных, стоимость D1 складывается из затрат на запросы и хранение.

База данных Библиотека или драйвер Способ подключения
D1 привязка Workers, интегрируется с Prisma ↗, Drizzle ↗, и другие ORM привязка Workers, REST API

Традиционные SQL-базы данных

Традиционные базы данных используют SQL-драйверы, которые используют TCP-сокеты чтобы подключаться к базе данных. TCP является фактическим стандартным протоколом, который используют многие базы данных, такие как PostgreSQL и MySQL, для подключения клиентов. Эти драйверы также широко совместимы с вашими предпочитаемыми ORM-библиотеками и построителями запросов.

Сюда также входят бессерверные базы данных, совместимые с PostgreSQL или MySQL, например Supabase, Neon, либо PlanetScale (либо MySQL или PostgreSQL), к которому можно подключиться, используя как встроенные TCP-сокеты и Hyperdrive или серверлесс-драйверы на основе HTTP (подробности ниже).

База данных Интеграция Библиотека или драйвер Способ подключения
Postgres Прямое подключение node-postgres ↗,Postgres.js ↗ TCP-сокет через драйвер базы данных, используя Hyperdrive для оптимальной производительности (необязательно, но рекомендуется)
MySQL Прямое подключение mysql2 ↗, mysql ↗ TCP-сокет через драйвер базы данных, используя Hyperdrive для оптимальной производительности (необязательно, но рекомендуется)

Бессерверные базы данных

Бессерверные базы данных могут предоставлять прямое подключение к базовой базе данных либо HTTP-прокси и драйверы (также известные как serverless-драйверы).

Для бессерверных баз данных PostgreSQL и MySQL можно подключаться напрямую к базе данных, используя привычные драйверы и ORM, а для ускорения подключения и пулинга соединений применять Hyperdrive (рекомендуется). При использовании Hyperdrive пул соединений управляется во всех регионах Cloudflare и оптимизирован для использования из Workers.

Также можно использовать библиотеки бессерверных драйверов для подключения к HTTP-прокси, которыми управляет провайдер базы данных. Они также могут обеспечивать пул соединений для традиционных SQL баз данных и сокращать количество обращений, необходимых для установления безопасного соединения, подобно Hyperdrive.

База данных Библиотека или драйвер Способ подключения
PlanetScale ↗ Hyperdrive (MySQL), Hyperdrive (PostgreSQL), @planetscale/database ↗ mysql2, mysql, node-postgres, Postgres.js, либо через API с помощью клиентской библиотеки
Supabase ↗ Hyperdrive, @supabase/supabase-js ↗ node-postgres,Postgres.js, либо через API с помощью клиентской библиотеки
Prisma ↗ prisma ↗ API через клиентскую библиотеку
Neon ↗ Hyperdrive, @neondatabase/serverless ↗ node-postgres,Postgres.js, либо через API с помощью клиентской библиотеки
Hasura ↗ API GraphQL API через fetch()
Upstash Redis ↗ @upstash/redis ↗ API через клиентскую библиотеку
TiDB Cloud ↗ @tidbcloud/serverless ↗ API через клиентскую библиотеку

После установки необходимых пакетов используйте API, предоставляемые этими пакетами, для подключения к базе данных и выполнения операций с ней. Подробные инструкции для конкретных сервисов см. по ссылкам ниже.

Аутентификация

Если ваша база данных требует аутентификации, используйте Wrangler secrets для безопасного хранения учётных данных. Для этого создайте секрет в проекте Cloudflare Workers с помощью следующей команды wrangler secret команда:

wrangler secret put <SECRET_NAME>

Затем получите значение секрета в коде с помощью следующего фрагмента кода:

const secretValue = env.<SECRET_NAME>;

Используйте значение секрета для аутентификации во внешнем сервисе. Например, если внешний сервис требует для аутентификации ключ API или имя пользователя и пароль базы данных, укажите их через библиотеку или API соответствующего сервиса.

Для служб, которым требуется аутентификация mTLS, используйте сертификаты mTLS чтобы предъявить клиентский сертификат.

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

Запросите бесплатный пилот

Запланировать пилот