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

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

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 чтобы предъявить клиентский сертификат.

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