Управление службами и базами данных Data Connect

Ваши проекты Data Connect состоят из двух основных элементов инфраструктуры:

  • Один или несколько экземпляров службы Data Connect
  • Один или несколько экземпляров Cloud SQL для PostgreSQL.

В этом руководстве описывается, как настраивать экземпляры службы Data Connect и управлять ими, а также рассказывается, как управлять связанными экземплярами Cloud SQL.

Настройка регионов для Firebase Data Connect

Для проектов, использующих Data Connect требуется настройка местоположения.

При создании нового экземпляра службы Data Connect вам будет предложено выбрать расположение службы.

Доступные локации

Услуги Data Connect могут быть созданы в следующих регионах .

  • Азия-Восток1
  • Азия-Восток2
  • Азия-Северо-Восток1
  • Азия-Северо-Восток2
  • Азия-Северо-Восток3
  • Азия-Юг1
  • Азия-Юго-Восток1
  • Азия-Юго-Восток2
  • Австралия-Юго-Восток1
  • Австралия-Юго-Восток2
  • Европа-Центральная2
  • Европа-Север1
  • Европа-Юго-Запад1
  • Европа-Запад1
  • Европа-Запад2
  • Европа-Запад3
  • Европа-Запад4
  • Европа-Запад6
  • Европа-Запад8
  • Европа-Запад9
  • я-запад1
  • Северная Америка-Северо-Восток1
  • Северная Америка-Северо-Восток2
  • Южная Америка-Восток1
  • Южная Америка-Запад1
  • США-Центральный1
  • США-Восток1
  • США-Восток4
  • США-Юг1
  • США-Запад1
  • США-Запад2
  • США-Запад3
  • США-Запад4

Управление экземплярами службы Data Connect

Создание сервисов

Чтобы создать новый сервис, используйте консоль Firebase или запустите инициализацию локального проекта с помощью интерфейса командной строки Firebase . Эти рабочие процессы создают новую службу Data Connect .

Эти потоки также помогут вам:

  • Предоставление нового экземпляра Cloud SQL (бесплатный уровень)
  • Привязка существующего экземпляра Cloud SQL к Data Connect (план Blaze)

Управление пользователями

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

Чтобы добавить участников проекта в качестве пользователей, которые могут изменять экземпляры Data Connect в вашем проекте, используйте консоль Firebase для выбора соответствующих предопределенных ролей пользователей.

Эти роли предоставляют разрешения с помощью управления идентификацией и доступом (IAM). Роль — это набор разрешений. Когда вы назначаете роль участнику проекта, вы предоставляете этому участнику проекта все разрешения, которые содержит роль. Дополнительную информацию смотрите в:

Выберите роли, чтобы включить определенные рабочие процессы

Роли IAM позволяют использовать рабочие процессы Firebase CLI, позволяя вам управлять проектами Data Connect .

Команда CLI, другой рабочий процесс Требуется роль(и)
firebase init dataconnect
  • Нет разрешений (если нет привязки экземпляра Cloud SQL)
  • roles/cloudsql.admin (при создании экземпляра Cloud SQL)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • роли/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • roles/cloudsql.admin в целевом экземпляре Cloud SQL.
firebase dataconnect:sql:grant
  • roles/cloudsql.admin в целевом экземпляре Cloud SQL.

Мониторинг производительности службы Data Connect

Понять эффективность обслуживания

Производительность службы Data Connect и службы Cloud SQL для PostgreSQL может повлиять на вашу работу.

  • Информацию о службе Cloud SQL для PostgreSQL см. в общих указаниях в документации по квотам и ограничениям .
  • Для сервиса Data Connect существует квота на запросы GraphQL, влияющая на скорость, с которой вы можете вызывать и выполнять запросы:

    • Общая квота на проект — 6000 запросов в минуту от соединителей клиентских приложений.
    • Общая квота на проект — 6000 запросов в минуту от Firebase Admin SDK и REST API.
    • Квота на пользователя — 1200 запросов в минуту. Здесь ограничение для каждого пользователя означает, что ограничение применяется к запросам, инициированным одним IP-адресом, будь то из клиентского приложения, из Firebase Admin SDK или из REST API.

    Если вы столкнулись с этими ограничениями квоты, обратитесь в службу поддержки Firebase, чтобы скорректировать соответствующую квоту.

Мониторинг производительности, использования и выставления счетов за услуги

Вы можете отслеживать запросы, ошибки и частоту операций как глобально, так и для каждой операции в консоли Firebase .

Управление экземплярами Cloud SQL

Ограничения бесплатной пробной версии

Следующие функции Cloud SQL для PostgreSQL не поддерживаются в трехмесячной бесплатной пробной версии :

  • Версии PostgreSQL, отличные от 15.x
  • Использование существующих экземпляров Cloud SQL для PostgreSQL.
  • Другой уровень машины, чем db-f1-micro
  • Изменение ресурсов вашего экземпляра, таких как хранилище, память, процессор.
  • Чтение реплик
  • IP-адрес частного экземпляра
  • Высокая доступность (многозонность); поддерживаются только экземпляры с одной зоной
  • Версия Enterprise Plus
  • Автоматическое резервное копирование
  • Автоматическое увеличение памяти.

Администрирование экземпляров Cloud SQL

Как правило, вы можете управлять своими экземплярами Cloud SQL с помощью консоли Google Cloud для выполнения следующих рабочих процессов.

  • Остановите и перезапустите экземпляры Cloud SQL.
  • Создание и удаление баз данных Cloud SQL (внутри экземпляров)
  • Запускайте экземпляры базы данных PostgreSQL с флагами и используйте различные расширения.
  • Отслеживайте производительность с помощью функций наблюдения Cloud SQL в консоли Google Cloud
  • Управляйте доступом и безопасностью Cloud SQL с помощью таких функций, как IAM, менеджер секретов, шифрование данных и прокси-сервер аутентификации.
  • Добавляйте, удаляйте и администрируйте пользователей Cloud SQL.

Сведения об этих и других рабочих процессах см. в документации Cloud SQL для PostgreSQL .

Предоставление ролей пользователей PostgreSQL

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

В некоторых случаях вам может потребоваться подключиться к базе данных Cloud SQL, управляемой Data Connect , напрямую через выбранный вами клиент SQL, используя, например, Cloud Run , Cloud Functions или GKE.

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

  • Назначение роли IAM roles/cloudsql.client учетной записи пользователя или службы, которой необходимо подключиться к экземпляру, либо из консоли Google Cloud , либо с помощью gcloud CLI
  • Предоставление необходимой роли PostgreSQL с помощью Firebase CLI

Назначьте роль Cloud SQL IAM

Информацию о работе с Cloud SQL для PostgreSQL для назначения роли IAM roles/cloudsql.client см. в разделе Роли и разрешения .

Предоставление ролей PostgreSQL

Используя интерфейс командной строки Firebase , вы можете предоставить предопределенные роли PostgreSQL пользователям или учетным записям служб, связанным с вашим проектом, с помощью команды firebase dataconnect:sql:grant .

Например, чтобы предоставить роль писателя, запустите в CLI следующую команду:

firebase dataconnect:sql:grant --role writer

Подробности смотрите в справочном руководстве по CLI .

Интегрируйте существующие базы данных Cloud SQL для PostgreSQL.

Поток подготовки базы данных и управления ею по умолчанию предполагает, что ваш проект использует новые (с нуля) базы данных, и когда вы вызываете firebase deploy , Data Connect отобразит изменения схемы базы данных, которые необходимо внести, и выполнит любые миграции после вашего одобрения.

Для существующих баз данных (задействованных) у вас может быть собственный рабочий процесс для управления схемами, и вы не можете использовать инструменты Data Connect для миграции, но хотели бы использовать свою базу данных в проекте Data Connect чтобы воспользоваться преимуществами создания SDK для мобильных устройств и Интернета, авторизации на основе запросов, управления клиентскими подключениями и многого другого.

В этом разделе представлены рекомендации по последнему случаю: интеграции существующих баз данных с Data Connect .

Интегрируйте существующую базу данных в проект Data Connect

Рабочий процесс интеграции существующей базы данных обычно включает в себя следующие шаги:

  1. Во время настройки проекта Data Connect в консоли Firebase выберите экземпляр и базу данных.
  2. Используя интерфейс командной строки Firebase , запустите команду firebase dataconnect:sql:setup и отклоните опцию, позволяющую Data Connect обрабатывать миграцию SQL.

    Чтобы предотвратить изменения в схеме вашей базы данных, не вызванные вашими пользовательскими инструментами, команда setup назначит соответствующие роли чтения и записи, но не роль owner . Дополнительную информацию о команде setup и ролях PostgreSQL можно найти в справочном руководстве по CLI .

  3. Напишите схему Data Connect GraphQL, соответствующую схеме вашей базы данных.

    Вы можете развернуть свою схему GraphQL, запросы и мутации только в том случае, если ваша схема GraphQL совместима с вашей схемой PostgreSQL.

    Чтобы упростить согласование обеих схем, мы предоставляем команду firebase dataconnect:sql:diff , которая предоставит вам необходимые инструкции SQL для миграции вашей базы данных. Вы можете использовать это для итеративного уточнения схемы GraphQL в соответствии с существующей схемой базы данных.

  4. Двигаясь вперед, вы можете быстро перебирать схему, запросы и мутации GraphQL в локальной среде разработки. Затем, когда все будет удовлетворено, вы можете использовать firebase dataconnect:sql:diff для получения операторов миграции SQL, которые вы можете применить к PostgreSQL, используя свои собственные инструменты и потоки.

  5. Альтернативно вы можете сначала внести изменения непосредственно в базу данных PostgreSQL, а затем попытаться перенести их обратно в схему GraphQL. Мы рекомендуем подход GraphQL-first, поскольку могут быть случаи, когда изменения схемы не поддерживаются. Кроме того, если вы развернете изменения, которые сделают вашу схему PostgreSQL несовместимой с развернутыми запросами или мутациями соединителей, эти соединители могут перестать работать или работать неправильно.