← Hyperdrive (Postgres & MySQL) / hyperdrive / examples / connect-to-postgres / postgres-database-providers
Google Cloud SQL
В этом примере показано, как подключить Hyperdrive к инстансу базы данных Google Cloud SQL Postgres.
1. Разрешите доступ к Hyperdrive
Чтобы Hyperdrive мог подключаться к вашей базе данных, убедитесь, что у него есть действительные учётные данные пользователя и сетевой доступ.
Cloud Console
При создании инстанса или редактировании существующего инстанса в Google Cloud Console ↗:
Чтобы разрешить Hyperdrive доступ к вашему экземпляру:
- В Cloud Console ↗, выберите инстанс, к которому должен подключаться Hyperdrive.
- Развернуть Соединения > Сеть > убедитесь, что Публичный IP включён > Add a Network и введите
0.0.0.0/0. - Выберите Готово > Save чтобы сохранить изменения.
- Выберите Обзор на боковой панели и запишите Публичный IP-адрес вашего экземпляра.
Чтобы создать пользователя, от имени которого будет подключаться Hyperdrive:
- Выберите Пользователи в боковой панели.
- Выберите Добавить учётную запись пользователя > выберите Встроенная аутентификация.
- Укажите имя (например,
hyperdrive-user) > select Создать чтобы сгенерировать пароль. - Скопируйте этот пароль в буфер обмена, прежде чем нажать Add чтобы создать пользователя.
Имея имя пользователя, пароль, публичный IP-адрес и (необязательно) имя базы данных (по умолчанию: postgres), теперь вы можете создать конфигурацию базы данных Hyperdrive.
gcloud CLI
gcloud CLI ↗ позволяет создать нового пользователя и разрешить Hyperdrive подключаться к вашей базе данных.
Используйте gcloud sql чтобы создать нового пользователя (например, hyperdrive-user) с надежным паролем:
gcloud sql users create hyperdrive-user --instance=YOUR_INSTANCE_NAME --password=SUFFICIENTLY_LONG_PASSWORDВыполните следующую команду, чтобы включить Доступ в интернет ↗ к вашему экземпляру базы данных:
# If you have any existing authorized networks, ensure you provide those as a comma separated list.
# The gcloud CLI will replace any existing authorized networks with the list you provide here.
gcloud sql instances patch YOUR_INSTANCE_NAME --authorized-networks="0.0.0.0/0"См. документация Google Cloud ↗ с дополнительными параметрами конфигурации.
2. Создание конфигурации базы данных
Чтобы настроить Hyperdrive, вам потребуется:
- IP-адрес (или имя хоста) и порт вашей базы данных.
- Имя пользователя базы данных (например,
hyperdrive-demo) которую вы настроили на предыдущем шаге. - Пароль, связанный с этим именем пользователя.
- Имя базы данных, к которой должен подключиться Hyperdrive. Например,
postgres.
Hyperdrive принимает комбинацию этих параметров в стандартном формате строки подключения, который используется драйверами баз данных:
postgres://USERNAME:PASSWORD@HOSTNAME_OR_IP_ADDRESS:PORT/database_nameБольшинство провайдеров баз данных предоставляют строку подключения, которую можно напрямую скопировать и вставить прямо в Hyperdrive.
Чтобы создать конфигурацию Hyperdrive в панели управления Cloudflare:
-
На панели управления Cloudflare перейдите к разделу Hyperdrive страницу.
Перейдите в Hyperdrive ↗ -
Выберите Создать конфигурацию.
-
Заполните форму, включая строку подключения.
-
Выберите Создание.
Чтобы создать конфигурацию Hyperdrive с помощью Wrangler CLI:
-
Откройте терминал и выполните следующую команду. Замените
<NAME_OF_HYPERDRIVE_CONFIG>с именем для вашей конфигурации Hyperdrive и вставьте строку подключения, предоставленную хостом базы данных, либо заменитеuser,password,HOSTNAME_OR_IP_ADDRESS,port, а такжеdatabase_nameзаполнители значениями, соответствующими вашей базе данных:npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="postgres://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name" -
Эта команда выводит привязку для конфигурационный файл Wrangler:
{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "hyperdrive-example", "main": "src/index.ts", // Set this to today's date "compatibility_date": "2026-08-28", "compatibility_flags": [ "nodejs_compat" ], // Pasted from the output of `wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string=[...]` above. "hyperdrive": [ { "binding": "HYPERDRIVE", "id": "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>" } ] }"$schema" = "./node_modules/wrangler/config-schema.json" name = "hyperdrive-example" main = "src/index.ts" # Set this to today's date compatibility_date = "2026-08-28" compatibility_flags = [ "nodejs_compat" ] [[hyperdrive]] binding = "HYPERDRIVE" id = "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"
3. Использование Hyperdrive в вашем Worker
Установите node-postgres драйвер:
npm i pg@>8.16.3При использовании TypeScript установите пакет типов:
npm i -D @types/pgДобавьте необходимые флаги совместимости Node.js и привязку Hyperdrive в свой wrangler.jsonc файле:
{
// required for database drivers to function
"compatibility_flags": [
"nodejs_compat"
],
// Set this to today's date
"compatibility_date": "2026-08-28",
"hyperdrive": [
{
"binding": "HYPERDRIVE",
"id": "<your-hyperdrive-id-here>"
}
]
}compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-08-28"
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<your-hyperdrive-id-here>"Создайте новый Client экземпляр и передайте Hyperdrive connectionString:
// filepath: src/index.ts
import { Client } from "pg";
export default {
async fetch(
request: Request,
env: Env,
ctx: ExecutionContext,
): Promise<Response> {
// Create a new client instance for each request. Hyperdrive maintains the
// underlying database connection pool, so creating a new client is fast.
const client = new Client({
connectionString: env.HYPERDRIVE.connectionString,
});
try {
// Connect to the database
await client.connect();
// Perform a simple query
const result = await client.query("SELECT * FROM pg_tables");
return Response.json({
success: true,
result: result.rows,
});
} catch (error: any) {
console.error("Database error:", error.message);
return new Response("Internal error occurred", { status: 500 });
}
},
};Следующие шаги
- Подробнее о Как работает Hyperdrive.
- См. руководство по устранению неполадок чтобы отладить типичные проблемы.
- Узнайте больше о других варианты хранения доступен для Cloudflare Workers.