Condividi tramite


Configurazione della connessione al database in App Web statiche di Azure (anteprima)

Le connessioni di database delle app Web statiche di Azure funzionano con vari database di Azure.

Quando si connette un database all'app Web statica, è necessario configurare il firewall del database per accettare l'accesso di rete dai ruoli di lavoro App Web statiche consentendo l'accesso alla rete dalle risorse di Azure. L'autorizzazione di indirizzi IP specifici App Web statiche non è supportata.

Se si usa il tipo di autenticazione identità gestita, è necessario configurare il profilo di identità gestita dell'app Web statica per accedere al database.

Usare questa tabella per informazioni dettagliate sulla configurazione del firewall e dell'identità gestita per il database.

Nome Type Firewall Identità gestita
Azure Cosmos DB Standard Configurare il firewall Configurare l'identità gestita
Azure SQL Standard Configurare il firewall Configurare l'identità gestita
Database di Azure per MySQL Flex Configurare il firewall Non supportato
Database di Azure per PostgreSQL Flex Configurare il firewall Non supportato
Database di Azure per PostgreSQL (singolo) Singolo Configurare il firewall Configurare l'identità gestita

Impostazione

Definire il comportamento di runtime della connessione al database nel staticwebapp.database.config.json file. Prima di collegare un database all'app Web statica, è necessario creare questo file all'interno del repository. Per convenzione, questo file esiste nella cartella swa-db-connections nella radice del repository, ma è possibile rilocarlo se lo si desidera.

Lo scopo del file di configurazione è:

  • Eseguire il mapping dei percorsi dall'endpoint /data-api alle tabelle o alle entità del database
  • Esporre endpoint REST o GraphQL (o entrambi)
  • Definire le regole di sicurezza delle entità
  • Controllare le impostazioni di configurazione dello sviluppo

Se si usa Azure Cosmos DB con GraphQL, è necessario specificare anche un gql file di schema.

Nota

App Web statiche connessioni di database richiede una cartella contenente i file di configurazione. Questa cartella deve contenere il file di configurazione staticwebapp.database.config.json per tutti i tipi di database. Per i database Cosmos DB per NoSQL, è necessario anche un file di schema staticwebapp.database.schema.gql .

Per convenzione, questa cartella è denominata swa-db-connections e posizionata nella radice del repository. Questa convenzione può essere sottoposta a override con una cartella custom-configuration-folder.

File di configurazione di esempio

Il file di configurazione di esempio seguente illustra come connettersi a un database SQL di Azure ed esporre endpoint REST e GraphQL. Per informazioni dettagliate sul file di configurazione e sulle relative funzionalità supportate, vedere la documentazione di Generatore API dati.

{
  "$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"
        }
      ]
    }
  }
}
Proprietà Descrizione
$schema Versione del generatore di API di database usata da App Web statiche di Azure per interpretare il file di configurazione.
data-source Impostazioni di configurazione specifiche del database di destinazione. La database-type proprietà accetta mssql, postgresql, cosmosdb_nosqlo mysql.

Il stringa di connessione viene sovrascritto al momento della distribuzione quando un database è connesso alla risorsa App Web statiche. Durante lo sviluppo locale, il stringa di connessione definito nel file di configurazione è ciò che viene usato per connettersi al database.
runtime Sezione che definisce gli endpoint esposti. Le rest proprietà e graphql controllano il frammento di URL usato per accedere al rispettivo protocollo API. La host sezione di configurazione definisce le impostazioni specifiche dell'ambiente di sviluppo. Assicurarsi che la matrice includa l'indirizzo origins e la porta localhost. Il file host.mode viene sovrascritto quando production un database è connesso alla risorsa App Web statiche.
entities Sezione che esegue il mapping del percorso URL alle entità e alle tabelle di database. Le stesse regole di autenticazione basate sui ruoli usate per proteggere i percorsi proteggono anche le entità di database e possono essere usate per definire le autorizzazioni per ogni entità. L'oggetto entità specifica anche le relazioni tra entità.

Generare il file di configurazione

L'interfaccia della riga di comando App Web statiche consente di generare uno stub del file di configurazione.

Importante

Per migliorare la sicurezza delle distribuzioni dall'interfaccia della riga di comando di App Web statiche, è stata introdotta una modifica di rilievo che richiede l'aggiornamento alla versione più recente (2.0.2) dell'interfaccia della riga di comando di App Web statiche entro il 15 gennaio 2025.

swa db init --database-type <YOUR_DATABASE_TYPE> Usare per generare un file di configurazione. Per impostazione predefinita, l'interfaccia della riga di comando crea un nuovo staticwebapp.database.config.json in una cartella denominata swa-db-connections.

I tipi di database supportati includono:

  • mssql
  • postgresql
  • cosmosdb_nosql
  • mysql

Cartella di configurazione personalizzata

Il nome predefinito della cartella per il file staticwebapp.database.config.json è swa-db-connections. Se si vuole usare una cartella diversa, è necessario aggiornare il file del flusso di lavoro per indicare al runtime delle app Web statiche dove trovare il file di configurazione. La data_api_location proprietà consente di definire il percorso della cartella di configurazione.

Nota

La cartella che contiene il file staticwebapp.database.config.json deve trovarsi nella radice del repository delle app Web statiche.

Il codice seguente illustra come usare una cartella denominata db-config per il file di configurazione del database.

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

Configurare la connettività del database

App Web statiche di Azure deve disporre dell'accesso di rete al database per consentire il funzionamento delle connessioni al database. Inoltre, per usare un database di Azure per lo sviluppo locale, è necessario configurare il database per consentire le richieste provenienti dal proprio indirizzo IP. Di seguito sono riportati i passaggi generici che si applicano a tutti i database. Per i passaggi specifici per il tipo di database, vedere i collegamenti precedenti.

  • Passare al database nel portale di Azure.
  • Passare alla scheda Rete.
  • Nella sezione Regole del firewall selezionare Aggiungi l'indirizzo IPv4 del client. Questo passaggio garantisce che sia possibile usare questo database per lo sviluppo locale.
  • Selezionare la casella di controllo Consenti a servizi e risorse di Azure di accedere a questo server . Questo passaggio garantisce che l'App Web statiche risorsa distribuita possa accedere al database.
  • Seleziona Salva.

Connettere un database

Il collegamento di un database all'app Web statica stabilisce la connessione di produzione tra il sito Web e il database quando viene pubblicato in Azure.

  1. Aprire l'app Web statica nel portale di Azure.

  2. Nella sezione Impostazioni selezionare Connessione database.

  3. Nella sezione Produzione selezionare il collegamento Collega database esistente.

  4. Nella finestra Collega database esistente immettere i valori seguenti:

    Proprietà valore
    Tipo di database Selezionare il tipo di database dall'elenco a discesa.
    Abbonamento Selezionare la sottoscrizione di Azure dall'elenco a discesa.
    Nome della risorsa Selezionare il nome del server di database con il database desiderato.
    Nome database Selezionare il nome del database da collegare all'app Web statica.
    Tipo di autenticazione Selezionare il tipo di connessione necessario per connettersi al database.

Aggiungere un database all'app Web statica usando uno dei database seguenti:

È anche possibile ottenere informazioni su come usare il generatore di API dati con App Web statiche di Azure.