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

Připojení k databázím 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 umožňovala 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.

Název Typ Firewall Spravovaná identita
Azure Cosmos DB Standard Nakonfigurujte bránu firewall Nakonfigurovat spravovanou identitu
Azure SQL Standard Nakonfigurujte bránu firewall Nakonfigurujte spravovanou identitu
Azure Database for MySQL Flex Konfigurovat bránu firewall Nepodporováno
Azure Database for PostgreSQL Flex Nakonfigurovat bránu firewall Nepodporováno
Azure Database for PostgreSQL (single) Samostatný Konfigurovat bránu firewall Nakonfigurujte spravovanou identitu

Konfigurace

V souboru staticwebapp.database.config.json definujete chování modulu runtime připojení k databázi. Než propojíte databázi se statickou webovou aplikací, musíte tento soubor vytvořit v rámci vašeho úložiště. 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:

  • Mapujte cesty z koncového bodu /data-api k databázovým tabulkám nebo entitám
  • Zpřístupněte koncové body REST nebo GraphQL (nebo obojí)
  • Definovat pravidla zabezpečení entit
  • Nastavení konfigurace vývoje ovládacího prvku

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

Poznámka

Připojení k databázi ve Static Web Apps vyžaduje 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 je také vyžadován soubor schématu staticwebapp.database.schema.gql.

Podle konvence se tato složka jmenuje swa-db-connections a je umístěna v kořenovém adresáři úložiště. Tuto konvenci je možné přebít pomocí custom-configuration-folder.

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 používaná službou Azure Static Web Apps k interpretaci konfiguračního souboru.
data-source Nastavení konfigurace specifické pro cílovou databázi. Vlastnost database-type přijímá mssql, postgresql, cosmosdb_nosql nebo mysql.

Připojovací řetězec se při nasazení přepíše, pokud 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 zpřístupněné endpointy. Vlastnosti rest a graphql řídí fragment adresy URL použitý pro přístup k příslušnému protokolu rozhraní API. Oddíl host konfigurace definuje nastavení specifická pro vaše vývojové prostředí. Ujistěte se, že pole origins obsahuje adresu localhostu a port. Režim host.mode se přepíše na production, když je k vašemu prostředku Static Web Apps připojená databáze.
entities Oddíl, který mapuje cestu URL k databázovým entitám 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 entities také určuje vztahy mezi entitami.

Vygenerovat konfigurační soubor

Static Web Apps CLI umožňuje vygenerovat šablonu konfiguračního souboru.

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, abyste upgradovali na nejnovější verzi rozhraní příkazového řádku Static Web Apps (2.0.2) do 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ří nový soubor 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 informoval modul runtime statických webových aplikací, kde má najít váš konfigurační soubor. 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

Nakonfigurujte 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 IPv4 adresu 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řipojte databázi

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

  1. Otevřete statickou webovou aplikaci v Azure portalu.

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

  3. V části Produkce vyberte odkaz Propojit existující databázi.

  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 zdroje 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 Data API builder se službou Azure Static Web Apps.