Sdílet prostřednictvím


Konfigurace připojení k databázi ve službě Azure Static Web Apps (Preview)

Připojení databáze Azure Static Web Apps fungují s různými databázemi Azure.

Při připojování databáze ke statické webové aplikaci je potřeba nakonfigurovat bránu firewall databáze tak, aby přijímala přístup k síti z pracovních procesů Static Web Apps tím, že povolíte přístup k síti z prostředků Azure. Povolení konkrétních IP adres statických webových aplikací se nepodporuje.

Pokud používáte typ ověřování spravované identity, musíte pro přístup k databázi nakonfigurovat profil spravované identity vaší statické webové aplikace.

V této tabulce najdete podrobnosti o konfiguraci brány firewall a spravované identity pro vaši databázi.

Name Type Brána firewall Spravovaná identita
Azure Cosmos DB Standard Konfigurace brány firewall Konfigurace spravované identity
Azure SQL Standard Konfigurace brány firewall Konfigurace spravované identity
Azure Database for MySQL Ohýbat Konfigurace brány firewall Nepodporováno
Azure Database for PostgreSQL Ohýbat Konfigurace brány firewall Nepodporováno
Azure Database for PostgreSQL (jeden) Jeden Konfigurace brány firewall Konfigurace spravované identity

Konfigurace

V souboru definujete chování modulu runtime připojení staticwebapp.database.config.json k databázi. Než propojíte databázi se statickou webovou aplikací, musíte tento soubor vytvořit v úložišti. Podle konvence tento soubor existuje ve složce swa-db-connections v kořenovém adresáři úložiště, ale pokud chcete, můžete ho přemístit .

Účelem konfiguračního souboru je:

  • Mapování cest mimo /data-api koncový bod k databázovým tabulkám nebo entitám
  • Zveřejnění koncových bodů REST nebo GraphQL (nebo obojí)
  • Definování pravidel zabezpečení entit
  • Řízení nastavení konfigurace vývoje

Pokud používáte Službu Azure Cosmos DB s GraphQL, musíte také zadat soubor schématu.gql

Poznámka:

Připojení databáze Static Web Apps vyžadují složku obsahující konfigurační soubory. Tato složka musí obsahovat konfigurační soubor staticwebapp.database.config.json pro všechny typy databází. Pro databáze Cosmos DB for NoSQL se vyžaduje také soubor schématu staticwebapp.database.schema.gql .

Podle konvence se tato složka jmenuje swa-db-connections a umístí se do kořenového adresáře úložiště. Tuto konvenci je možné přepsat pomocí vlastní složky konfigurace.

Ukázkový konfigurační soubor

Následující ukázkový konfigurační soubor ukazuje, jak se připojit k databázi Azure SQL a vystavit koncové body REST i GraphQL. Úplné podrobnosti o konfiguračním souboru a jeho podporovaných funkcích najdete v dokumentaci ke službě Data 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"
        }
      ]
    }
  }
}
Vlastnost Popis
$schema Verze tvůrce rozhraní API pro databáze, kterou služba Azure Static Web Apps používá k interpretaci konfiguračního souboru.
data-source Nastavení konfigurace specifické pro cílovou databázi. Vlastnost database-type přijímá , mssqlpostgresql, cosmosdb_nosql, nebo mysql.

Připojovací řetězec se při nasazení přepíše, když je databáze připojená k vašemu prostředku Static Web Apps. Během místního vývoje se připojovací řetězec definované v konfiguračním souboru používá k připojení k databázi.
runtime Oddíl, který definuje vystavené koncové body. Fragment rest adresy URL použitý pro přístup k příslušnému protokolu rozhraní API a graphql vlastnosti řídí. Oddíl host konfigurace definuje nastavení specifická pro vaše vývojové prostředí. Ujistěte se, že pole origins obsahuje vaši adresu místního hostitele a port. Režim host.mode se přepíše, když production je databáze připojená k vašemu prostředku Static Web Apps.
entities Oddíl, který mapuje cestu URL k databázovým entitě a tabulkám. Stejná pravidla ověřování na základě role používaná k zabezpečení cest také zabezpečují databázové entity a lze je použít k definování oprávnění pro každou entitu. Objekt entity také určuje vztahy mezi entitami.

Generování konfiguračního souboru

Rozhraní příkazového řádku Static Web Apps umožňuje vygenerovat zástupný soubor konfigurace.

Důležité

Kvůli zlepšení zabezpečení nasazení z rozhraní příkazového řádku Static Web Apps jsme zavedli zásadní změnu, která vyžaduje upgrade na nejnovější verzi rozhraní příkazového řádku Static Web Apps (2.0.2) od 15. ledna 2025.

swa db init --database-type <YOUR_DATABASE_TYPE> Použijte k vygenerování konfiguračního souboru. Rozhraní příkazového řádku ve výchozím nastavení vytvoří novou staticwebapp.database.config.json ve složce s názvem swa-db-connections.

Mezi podporované typy databází patří:

  • mssql
  • postgresql
  • cosmosdb_nosql
  • mysql

Vlastní konfigurační složka

Výchozí název složky pro soubor staticwebapp.database.config.json je swa-db-connections. Pokud chcete použít jinou složku, musíte soubor pracovního postupu aktualizovat tak, aby informovat modul runtime statických webových aplikací, kam chcete konfigurační soubor najít. Tato data_api_location vlastnost umožňuje definovat umístění vaší konfigurační složky.

Poznámka:

Složka, která obsahuje soubor staticwebapp.database.config.json , musí být v kořenovém adresáři úložiště statických webových aplikací.

Následující kód ukazuje, jak použít složku s názvem db-config pro konfigurační soubor databáze.

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

Konfigurace připojení k databázi

Azure Static Web Apps musí mít síťový přístup k vaší databázi, aby připojení k databázi fungovala. Pokud chcete navíc použít databázi Azure pro místní vývoj, musíte databázi nakonfigurovat tak, aby umožňovala požadavky z vaší vlastní IP adresy. Následují obecné kroky, které platí pro všechny databáze. Konkrétní kroky pro váš typ databáze najdete na výše uvedených odkazech.

  • Přejděte do databáze na webu Azure Portal.
  • Přejděte na kartu Sítě.
  • V části Pravidla brány firewall vyberte Přidat adresu IPv4 klienta. Tento krok zajistí, že tuto databázi můžete použít pro místní vývoj.
  • Zaškrtněte políčko Povolit službám a prostředkům Azure přístup k tomuto serveru. Tento krok zajistí, že váš nasazený prostředek Static Web Apps bude mít přístup k vaší databázi.
  • Zvolte Uložit.

Připojení databáze

Propojení databáze se statickou webovou aplikací vytvoří produkční připojení mezi webem a databází při publikování do Azure.

  1. Otevřete statickou webovou aplikaci na webu Azure Portal.

  2. V části Nastavení vyberte Připojení k databázi.

  3. V části Produkční vyberte propojení existující databáze .

  4. V okně Propojit existující databázi zadejte následující hodnoty:

    Vlastnost Hodnota
    Typ databáze V rozevíracím seznamu vyberte typ databáze.
    Předplatné V rozevíracím seznamu vyberte své předplatné Azure.
    Název prostředku Vyberte název databázového serveru, který má požadovanou databázi.
    Název databáze Vyberte název databáze, kterou chcete propojit se statickou webovou aplikací.
    Typ ověřování Vyberte typ připojení vyžadovaný pro připojení k databázi.

Přidejte do statické webové aplikace databázi pomocí jedné z následujících databází:

Kromě toho se dozvíte, jak používat Tvůrce rozhraní DATA API se službou Azure Static Web Apps.