Connexion à une base de données avec Azure Static Web Apps (préversion)
Article
La fonctionnalité de connexion à la base de données Azure Static Web Apps vous permet d’accéder à une base de données à partir de votre application web statique sans écrire de code côté serveur personnalisé.
Une fois que vous avez créé une connexion entre votre application web et votre base de données, vous pouvez manipuler des données avec une prise en charge complète des opérations CRUD, une autorisation intégrée et des relations.
En fonction du générateur d’API de données, Azure Static Web Apps prend des requêtes REST et GraphQL et les convertit en requêtes de base de données.
Les fonctionnalités prises en charge par les connexions de base de données sont les suivantes :
Fonctionnalité
Description
Sécurité intégrée
Intégration intégrée à l’authentification Static Web Apps et au modèle de sécurité d’autorisation. La même sécurité basée sur les rôles utilisée pour sécuriser les itinéraires est disponible pour les points de terminaison d’API.
Opérations CRUD complètes
Reportez-vous aux tutoriels pour Azure Cosmos DB, Azure SQL, MySQLou PostgreSQL pour obtenir un exemple sur la façon de manipuler des données dans votre application.
Prend en charge les SQL et NoSQL
Vous pouvez utiliser des bases de données relationnelles et de documents comme base de données de votre application.
Architecture serverless
Les connexions sont mises à l’échelle de 0 à 1 Worker (pendant la préversion).
Relations de base de données
Pris en charge uniquement via le point de terminaison GraphQL.
Prise en charge CLI
Développez localement avec l’interface CLI Static Web Apps. Utilisez l’option --data-api-location pour gérer les demandes adressées aux API de données dans le développement, tout comme elles sont gérées dans le cloud.
Bases de données prises en charge
Le tableau suivant présente la prise en charge des différentes bases de données relationnelles et NoSQL.
Base de données en tant que service PostgreSQL entièrement managée qui gère les charges de travail stratégiques avec des performances prévisibles et une scalabilité dynamique.
Points de terminaison de connexion à la base de données qui prennent en charge les requêtes REST et GraphQL.
example.com/*
Contenu statique
Lorsque vous configurez des connexions de base de données sur votre site web, vous pouvez configurer le suffixe REST ou GraphQL de l’itinéraire /data-api/*. Le préfixe /data-api est une convention de Static Web Apps et ne peut pas être modifié.
Configuration
Il y a deux étapes pour configurer une connexion à la base de données dans Static Web Apps. Vous devez connecter votre base de données à votre application web statique dans le portail Azure et mettre à jour votre fichier de configuration des connexions de base de données.
L’interface CLI Azure Static Web Apps (SWA CLI) inclut la prise en charge de l’utilisation des connexions de base de données pendant le développement local.
L’interface CLI active le point de terminaison de /data-api local et les requêtes de proxy du port 4280 vers le port approprié pour l’accès à la base de données.
Voici un exemple de commande qui démarre l’interface CLI SWA avec une connexion à la base de données :
Cette commande démarre l’interface CLI SWA dans le répertoire src. L’option --data-api-location indique à l’interface CLI qu’un dossier nommé swa-db-connections contient le fichier staticwebapp.database.config.json.
Notes
En cours de développement, si vous utilisez une chaîne de connexion pour l’authentification, utilisez la fonction env() pour lire une chaîne de connexion à partir d’une variable d’environnement. La chaîne transmise à la fonction env doit être entourée de guillemets.
Sécurité basée sur les rôles
Lorsque vous définissez une entité dans le fichier staticwebapp.database.config.json, vous pouvez spécifier une liste de rôles requis pour accéder à un point de terminaison d’entité.
Le fragment de configuration suivant nécessite que le rôle administrateur accède à toutes les actions (create, read, update, delete) sur l’entité commandes.
Lorsque vous effectuez des appels à un point de terminaison nécessitant un rôle, les conditions suivantes sont requises :
L’utilisateur actuel doit être authentifié.
L’utilisateur actuel doit être membre du rôle requis.
La requête REST ou GraphQL doit inclure un en-tête avec la clé de X-MS-API-ROLE et une valeur du nom de rôle correspondant à ce qui est répertorié dans les règles de configuration d’entité.
Par exemple, l’extrait de code suivant montre comment transmettre le rôle administrateur dans un en-tête de requête.
Azure Static Web Apps est un service d’applications web modernes qui offre un développement complet simplifié, du code source à la haute disponibilité mondiale.
Administrer une infrastructure de base de données SQL Server pour les bases de données relationnelles cloud, locales et hybrides à l’aide des offres de bases de données relationnelles Microsoft PaaS.