Поделиться через


Конфигурация подключения к базе данных в Статические веб-приложения Azure (предварительная версия)

Статические веб-приложения Azure подключения к базе данных работать с различными базами данных Azure.

При подключении базы данных к статическому веб-приложению необходимо настроить брандмауэр базы данных для приема сетевого доступа от работников Статические веб-приложения, разрешая доступ к сети из ресурсов Azure. Разрешение определенных Статические веб-приложения IP-адресов не поддерживается.

Если вы используете тип проверки подлинности управляемого удостоверения, необходимо настроить профиль управляемого удостоверения статического веб-приложения для доступа к базе данных.

Используйте эту таблицу для получения сведений о настройке брандмауэра и управляемого удостоверения для базы данных.

Имя. Тип Брандмауэр Управляемое удостоверение
Azure Cosmos DB Стандартные Настройка брандмауэра Настройка управляемого удостоверения
Azure SQL Стандартные Настройка брандмауэра Настройка управляемого удостоверения
База данных Azure для MySQL общая панель. Настройка брандмауэра Не поддерживается
База данных Azure для PostgreSQL общая панель. Настройка брандмауэра Не поддерживается
База данных Azure для PostgreSQL (одиночный) Одна Настройка брандмауэра Настройка управляемого удостоверения

Настройка

Вы определяете поведение среды выполнения подключения к базе данных в staticwebapp.database.config.json файле. Перед связыванием базы данных со статическим веб-приложением необходимо создать этот файл в репозитории. По соглашению этот файл существует в папке swa-db-connections в корне репозитория, но при желании его можно переместить.

Целью файла конфигурации является:

  • Сопоставление путей с конечной /data-api точки с таблицами или сущностями базы данных
  • Предоставление конечных точек REST или GraphQL (или обоих)
  • Определение правил безопасности сущностей
  • Управление параметрами конфигурации разработки

Если вы используете Azure Cosmos DB с GraphQL, необходимо также предоставить gql файл схемы.

Примечание.

Статические веб-приложения подключения к базе данных требуется папка, содержащая файлы конфигурации. Эта папка должна содержать файл конфигурации staticwebapp.database.config.json для всех типов баз данных. Для баз данных Cosmos DB для NoSQL также требуется файл схемы staticwebapp.database.schema.gql .

По соглашению эта папка называется swa-db-connections и помещается в корневой каталог репозитория. Это соглашение можно переопределить с помощью пользовательской папки configuration-folder.

Образец файла конфигурации

В следующем примере файла конфигурации показано, как подключиться к базе данных SQL Azure и предоставлять конечные точки REST и GraphQL. Полные сведения о файле конфигурации и его поддерживаемых функциях см. в документации по API Api Builder.

{
  "$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
  "data-source": {
    "database-type": "mssql",
    "options": {
      "set-session-context": false 
    },
    "connection-string": "@env('DATABASE_CONNECTION_STRING')"
  },
  "runtime": {
    "rest": {
      "enabled": true,
      "path": "/rest"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": true,
      "path": "/graphql"
    },
    "host": {
      "mode": "production",
      "cors": {
        "origins": ["http://localhost:4280"],
        "allow-credentials": false
      },
      "authentication": {
        "provider": "StaticWebApps"
      }
    }
  },
  "entities": {
    "Person": {
      "source": "dbo.MyTestPersonTable",
      "permissions": [
        {
          "actions": ["create", "read", "update", "delete"],
          "role": "anonymous"
        }
      ]
    }
  }
}
Свойство Description
$schema Версия построителя API базы данных, используемая Статические веб-приложения Azure для интерпретации файла конфигурации.
data-source Параметры конфигурации, относящиеся к целевой базе данных. Свойство database-type принимает mssql, postgresqlcosmosdb_nosqlили mysql.

Строка подключения перезаписывается при развертывании при подключении базы данных к ресурсу Статические веб-приложения. Во время локальной разработки строка подключения, определенный в файле конфигурации, используется для подключения к базе данных.
runtime Раздел, определяющий предоставляемые конечные точки. graphql И rest свойства управляют фрагментом URL-адреса, используемым для доступа к соответствующему протоколу API. Раздел host конфигурации определяет параметры, относящиеся к среде разработки. Убедитесь, origins что массив содержит адрес и порт localhost. Host.mode перезаписывается production при подключении базы данных к ресурсу Статические веб-приложения.
entities Раздел, который сопоставляет путь URL-адреса к сущностям и таблицам базы данных. Те же правила проверки подлинности на основе ролей, используемые для защиты путей, также защищают сущности базы данных и могут использоваться для определения разрешений для каждой сущности. Объект сущностей также указывает связи между сущностями.

Создание файла конфигурации

Интерфейс командной строки Статические веб-приложения позволяет создать заглушку файла конфигурации.

swa db init --database-type <YOUR_DATABASE_TYPE> Используйте для создания файла конфигурации. По умолчанию интерфейс командной строки создает новую staticwebapp.database.config.json в папке с именем swa-db-connections.

Поддерживаемые типы баз данных включают:

  • mssql
  • postgresql
  • cosmosdb_nosql
  • mysql

Папка настраиваемой конфигурации

Имя папки по умолчанию для файла staticwebapp.database.config.jsonswa-db-connections. Если вы хотите использовать другую папку, необходимо обновить файл рабочего процесса, чтобы сообщить среде выполнения статических веб-приложений, где найти файл конфигурации. Свойство data_api_location позволяет определить расположение папки конфигурации.

Примечание.

Папка, содержащая файл staticwebapp.database.config.json , должна находиться в корне репозитория статических веб-приложений.

В следующем коде показано, как использовать папку с именем db-config для файла конфигурации базы данных.

app_location: "/src"
api_location: "api"
output_location: "/dist"
data_api_location: "db-config" # Folder holding the staticwebapp.database.config.json file

Настройка подключения к базе данных

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

  • Перейдите в базу данных в портал Azure.
  • Откройте вкладку Сеть.
  • В разделе правил брандмауэра выберите "Добавить адрес IPv4 клиента". На этом шаге вы можете использовать эту базу данных для локальной разработки.
  • Установите флажок "Разрешить службам и ресурсам Azure" доступ к этому серверу. Этот шаг гарантирует, что развернутый ресурс Статические веб-приложения может получить доступ к базе данных.
  • Выберите Сохранить.

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

Связывание базы данных со статическим веб-приложением устанавливает рабочее подключение между веб-сайтом и базой данных при публикации в Azure.

  1. Откройте статическое веб-приложение на портале Azure.

  2. В разделе "Параметры" выберите "Подключение к базе данных".

  3. В разделе "Рабочая среда" выберите ссылку "Связать существующую базу данных".

  4. В окне "Ссылка существующей базы данных" введите следующие значения:

    Свойство Значение
    Тип базы данных Выберите тип базы данных из раскрывающегося списка.
    Отток подписок Выберите подписку Azure в раскрывающемся списке.
    Имя ресурса Выберите имя сервера базы данных с требуемой базой данных.
    Имя базы данных Выберите имя базы данных, которую вы хотите связать со статическим веб-приложением.
    Тип проверки подлинности Выберите тип подключения, необходимый для подключения к базе данных.

Добавьте базу данных в статическое веб-приложение с помощью одной из следующих баз данных:

Кроме того, вы можете узнать, как использовать построитель API данных с Статические веб-приложения Azure.