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

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

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

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

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

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

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

Доступные места

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

  • Азия-Восток1
  • asia-east2
  • Азия-северо-восток1
  • Азия-северо-восток2
  • Азия-северо-восток3
  • asia-south1
  • Азия-Юго-Восток1
  • Азия-Юго-Восток2
  • Австралия-юго-восток1
  • Австралия-юго-восток2
  • europe-central2
  • europe-north1
  • Европа-юго-запад1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • me-west1
  • североамерика-северо-восток1
  • northamerica-northeast2
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4

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

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

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

Эти алгоритмы также помогут вам в следующем:

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

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

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

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

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

Выберите роли для включения определенных рабочих процессов.

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

Команда командной строки, другие варианты рабочего процесса Требуемые должности
firebase init dataconnect
  • Нет прав доступа (если не подключен экземпляр Cloud SQL).
  • roles/cloudsql.admin (при создании экземпляра Cloud SQL)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/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 for PostgreSQL может повлиять на ваш пользовательский опыт.

  • Для использования сервиса Cloud SQL for 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 не поддерживаются в рамках 3-месячного бесплатного пробного периода :

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

Ограничения временных баз данных для приема на работу.

Добавив Data Connect в свой проект Firebase, вы можете сразу же начать прототипирование модели данных и загрузку данных, поскольку данные будут храниться во временной базе данных. Обратите внимание, что создание постоянного экземпляра Cloud SQL for PostgreSQL займет от 5 до 20 минут. Все первоначально загруженные данные будут автоматически перенесены в вашу постоянную базу данных PostgreSQL после ее создания.

Эта временная база данных отлично подходит для изучения вашей схемы и операций CRUD.

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

Временная база данных не является базой данных PostgreSQL и не предоставляет всех функций PostgreSQL.

Существенными ограничениями являются:

  • Размер базы данных должен быть менее 1 МБ.
  • Количество строк в таблице должно быть меньше 1000.
  • Менее 1 запроса в секунду
  • Полнотекстовый поиск не поддерживается.
  • Отсутствует поддержка генерации векторных вложений.
  • Отсутствует поддержка функций прямого SQL, таких как @view , @col(dataType)

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

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

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

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

Предоставить пользователям PostgreSQL роли

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

В некоторых случаях может потребоваться прямое подключение к управляемой Data Connect базе данных Cloud SQL через выбранный вами 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 CLI вы можете предоставлять предопределенные роли PostgreSQL пользователям или учетным записям служб, связанным с вашим проектом, используя команду firebase dataconnect:sql:grant .

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

firebase dataconnect:sql:grant --role writer

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

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

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

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

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

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

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

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

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

  3. Создайте схему GraphQL Data Connect , которая будет соответствовать схеме вашей базы данных.

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

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

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

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