Partager via


Configuration de connexion de base de données dans Azure Static Web Apps (préversion)

Les connexions de base de données Azure Static Web Apps fonctionnent avec différentes bases de données Azure.

Lorsque vous connectez une base de données à votre application web statique, vous devez configurer le pare-feu de votre base de données pour accepter l’accès réseau depuis des Workers Static Web Apps en autorisant l’accès réseau depuis les ressources Azure. L’autorisation d’adresses IP Static Web Apps spécifiques n’est pas prise en charge.

Si vous utilisez le type d’authentification Identité managée, vous devez configurer le profil Identité managée de votre application web statique pour accéder à votre base de données.

Utilisez ce tableau pour plus d’informations sur la configuration du pare-feu et de l’Identité managée pour votre base de données.

Nom Type Pare-feu Identité managée
Azure Cosmos DB Standard Configurer le pare-feu Configurer l'Identité managée
Azure SQL Standard Configurer le pare-feu Configurer l'Identité managée
Azure Database pour MySQL Flex Configurer le pare-feu Non pris en charge
Base de données Azure pour PostgreSQL Flex Configurer le pare-feu Non pris en charge
Azure Database pour PostgreSQL (unique) Unique Configurer le pare-feu Configurer l'Identité managée

Configuration

Vous définissez le comportement d’exécution de la connexion de base de données dans le fichier staticwebapp.database.config.json. Avant de lier une base de données à votre application web statique, vous devez créer ce fichier dans votre référentiel. Par convention, ce fichier se trouve dans le dossier swa-db-connections à la racine de votre référentiel, mais vous pouvez le déplacer si vous le souhaitez.

L’objectif du fichier config est de :

  • Mapper des chemins d’accès depuis le point de terminaison /data-api vers vos tables ou entités de base de données
  • Exposer les points de terminaison REST ou GraphQL (ou les deux)
  • Définir des règles de sécurité d’entité
  • Contrôler les paramètres de configuration du développement

Si vous utilisez Azure Cosmos DB avec GraphQL, vous devez également fournir un gql fichier de schéma.

Remarque

Les connexions de base de données Static Web Apps nécessitent un dossier contenant les fichiers config. Ce dossier doit contenir le fichier config staticwebapp.database.config.json pour tous les types de base de données. Pour les bases de données Cosmos DB pour NoSQL, un fichier de schéma staticwebapp.database.schema.gql est également requis.

Par convention, ce dossier est nommé swa-db-connections et placé à la racine du référentiel. Cette convention peut être outrepassée avec un custom-configuration-folder.

Exemple de fichier de configuration

L’exemple de fichier config suivant vous montre comment vous connecter à une base de données Azure SQL et exposer les points de terminaison REST et GraphQL. Pour plus d’informations sur le fichier config et ses fonctionnalités prises en charge, reportez-vous à la Documentation du générateur d’API de données.

{
  "$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"
        }
      ]
    }
  }
}
Propriété Description
$schema Version du Générateur d’API de base de données utilisée par Azure Static Web Apps pour interpréter le fichier config.
data-source Paramètres de configuration spécifiques à la base de données cible. La propriété database-type accepte mssql, postgresql, cosmosdb_nosql ou mysql.

La chaîne de connexion est remplacée au moment du déploiement lorsqu’une base de données est connectée à votre ressource Static Web Apps. Pendant le développement local, la chaîne de connexion définie dans le fichier config est ce qui est utilisé pour se connecter à la base de données.
runtime Section qui définit les points de terminaison exposés. Les propriétés rest et graphql contrôlent le fragment d’URL utilisé pour accéder au protocole API respectif. La section configuration host définit les paramètres spécifiques à votre environnement de développement. Vérifiez que le tableau origins inclut votre adresse et votre port localhost. Le host.mode est remplacé par production lorsqu’une base de données est connectée à votre ressource Static Web Apps.
entities Section qui mappe le chemin d’URL aux entités et tables de base de données. Les mêmes règles d’authentification basées sur les rôles utilisées pour sécuriser les chemins d’accès sécurisent également les entités de base de données et peuvent être utilisées pour définir des autorisations pour chaque entité. L’objet entités spécifie également les relations entre les entités.

Générer le fichier config

L’interface CLI Static Web Apps vous permet de générer un stub de fichier config.

Important

Pour améliorer la sécurité des déploiements à partir de l’interface CLI Static Web Apps, un changement cassant a été introduit, qui vous oblige à effectuer une mise à niveau vers la dernière version (2.0.2) de l’interface CLI Static Web Apps avant le15 janvier 2025.

Utilisez le swa db init --database-type <YOUR_DATABASE_TYPE> pour générer un fichier config. Par défaut, l’interface CLI crée un nouveau staticwebapp.database.config.json dans un dossier nommé swa-db-connections.

Les types de base de données pris en charge comprennent :

  • mssql
  • postgresql
  • cosmosdb_nosql
  • mysql

Dossier de configuration personnalisé

Le nom du dossier par défaut du fichier staticwebapp.database.config.json est swa-db-connections. Si vous voulez utiliser un autre dossier, vous devez mettre à jour votre fichier de flux de travail pour indiquer au runtime des applications web statiques où trouver votre fichier config. La propriété data_api_location vous permet de définir l’emplacement de votre dossier de configuration.

Remarque

Le dossier qui contient le fichier staticwebapp.database.config.json doit être à la racine de votre référentiel d’applications web statiques.

Le code suivant vous montre comment utiliser un dossier nommé db-config pour le fichier config de la base de données.

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

Configurez la connectivité de base de données

Azure Static Web Apps doit disposer d’un accès réseau à votre base de données pour que les connexions à la base de données fonctionnent. En outre, pour utiliser une base de données Azure pour le développement local, vous devez configurer votre base de données pour autoriser les requêtes provenant de votre propre adresse IP. Les étapes génériques suivantes s’appliquent à toutes les bases de données. Si vous avez besoin d’étapes spécifiques pour votre type de base de données, reportez-vous aux liens ci-dessus.

  • Accédez à votre base de données dans le Portail Azure.
  • Accédez à l’onglet Réseau.
  • Dans la section Règles de pare-feu, sélectionnez Ajouter l’adresse IPv4 de votre client. Cette étape garantit que vous pouvez utiliser cette base de données pour votre développement local.
  • Cochez la case Autoriser les services et les ressources Azure à accéder à ce serveur. Cette étape garantit que votre ressource de Static Web Apps déployée peut accéder à votre base de données.
  • Cliquez sur Enregistrer.

Connecter une base de données

La liaison d’une base de données à votre application web statique établit la connexion de production entre votre site web et votre base de données lorsqu’elle est publiée sur Azure.

  1. Sur le portail Azure, ouvrez votre application web statique.

  2. Dans la section Paramètres, sélectionnez Connexion de base de données.

  3. Dans la section Production, sélectionnez le lien Lier une base de données existante.

  4. Dans la fenêtre Lier une base de données existante, entrez les valeurs suivantes :

    Propriété Valeur
    Type de base de données Sélectionnez votre type de base de données dans la liste déroulante.
    Abonnement Sélectionnez votre abonnement Azure dans la liste déroulante.
    Nom de la ressource Sélectionnez le nom du serveur de base de données contenant la base de données souhaitée.
    Nom de la base de données Sélectionnez le nom de la base de données que vous souhaitez lier à votre application web statique.
    Type d’authentification Sélectionnez le type de connexion requis pour vous connecter à votre base de données.

Ajoutez une base de données à votre application web statique en utilisant l’une des bases de données suivantes :

En outre, vous pouvez découvrir comment utiliser le Générateur d’API de données avec Azure Static Web Apps.