Sdílet prostřednictvím


Rychlý start: Reakce na změny azure SQL Database pomocí Azure Functions

V tomto rychlém startu pomocí editoru Visual Studio Code vytvoříte aplikaci, která reaguje na změny v tabulce Azure SQL Database. Po místním otestování kódu ho nasadíte do nové aplikace funkcí bez serveru spuštěné v plánu Flex Consumption ve službě Azure Functions.

Zdroj projektu používá rozšíření Azure Developer CLI (azd) se sadou Visual Studio Code ke zjednodušení inicializace a ověření kódu projektu místně a nasazení kódu do Azure. Toto nasazení se řídí aktuálními osvědčenými postupy pro zabezpečená a škálovatelná nasazení Azure Functions.

Důležité

Zatímco reakce na změny v databázi Azure SQL je podporovaná pro všechny jazyky, tento scénář rychlého startu v současné době obsahuje pouze příklady pro C#, Python a TypeScript. K dokončení tohoto rychlého startu vyberte jeden z těchto podporovaných jazyků v horní části článku.

Požadavky

  • Node.js 18.x nebo vyšší. Pomocí příkazu node --version zkontrolujte svou verzi.

Inicializace projektu

Pomocí příkazu azd init z palety příkazů můžete vytvořit projekt kódu Azure Functions místně ze šablony.

  1. V editoru Visual Studio Code otevřete složku nebo pracovní prostor, ve kterém chcete vytvořit projekt.

  2. Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Initialize App (init)a pak zvolte Vybrat šablonu.

  3. Po zobrazení výzvy vyhledejte a vyberte Azure Functions with SQL Triggers and Bindings.

  4. Po zobrazení výzvy zadejte jedinečný název prostředí, například sqldbchanges.

Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru. V azdprostředí se používá k zachování jedinečného kontextu nasazení pro vaši aplikaci a můžete definovat více než jedno. Je také součástí názvu skupiny prostředků, kterou vytvoříte v Azure.

Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru. V azdprostředí se používá k zachování jedinečného kontextu nasazení pro vaši aplikaci a můžete definovat více než jedno. Je také součástí názvu skupiny prostředků, kterou vytvoříte v Azure.

Tento příkaz načte soubory projektu z úložiště šablon a inicializuje projekt v aktuální složce nebo pracovním prostoru. V azdprostředí se používá k zachování jedinečného kontextu nasazení pro vaši aplikaci a můžete definovat více než jedno. Je také součástí názvu skupiny prostředků, kterou vytvoříte v Azure.

Než budete moct aplikaci spustit místně, musíte prostředky vytvořit v Azure.

Vytvoření zdrojů Azure

Tento projekt je nakonfigurovaný tak, aby pomocí azd provision příkazu vytvořil aplikaci funkcí v plánu Flex Consumption a další požadované prostředky Azure, které dodržují aktuální osvědčené postupy.

  1. V editoru Visual Studio Code stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Sign In with Azure Developer CLIa pak se přihlaste pomocí svého účtu Azure.

  2. Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Provision Azure resources (provision) a vytvořte požadované prostředky Azure.

  3. Po zobrazení výzvy v okně terminálu zadejte tyto požadované parametry nasazení:

    Podnět Description
    Vyberte předplatné Azure, které chcete použít. Vyberte předplatné, ve kterém chcete, aby byly prostředky vytvořeny.
    parametr nasazení location Oblast Azure, ve které se má vytvořit skupina prostředků, která obsahuje nové prostředky Azure. Zobrazí se pouze oblasti, které aktuálně podporují plán Flex Consumption.
    Parametr nasazení vnetEnabled I když šablona podporuje vytváření prostředků ve virtuální síti, pro zjednodušení nasazení a testování zvolte False.

Tento azd provision příkaz použije vaši odpověď na tyto výzvy s konfiguračními soubory Bicep k vytvoření a konfiguraci těchto požadovaných prostředků Azure podle nejnovějších osvědčených postupů:

  • Plán Flex Consumption a aplikace funkcí
  • Azure SQL Database (výchozí název: ToDo)
  • Azure Storage (povinné) a Application Insights (doporučeno)
  • Zásady přístupu a role pro váš účet
  • Připojení mezi službami pomocí spravovaných identit (místo uložených připojovací řetězec)

Volání po zřízení také generují soubor local.settings.json, který je potřebný pro místní spuštění. Tento soubor obsahuje nastavení potřebná pro připojení k databázi v Azure.

Kontrola kódu (volitelné)

Ukázka definuje dvě funkce:

Název funkce Soubor kódu Typ aktivační události Description
httptrigger-sql-output sql_output_http_trigger.cs HTTP spouštěč Přijímá správně naformátovanou datovou část JSON a pomocí výstupní vazby SQL vloží objekt jako řádek do ToDo tabulky.
ToDoTrigger sql_trigger.cs SQL trigger Naslouchá v ToDo tabulce pro změny na úrovni řádků a vrátí objekt, který představuje změněný řádek.

Typ ToDoItem je definován v ToDoItem.cs.

Název funkce Soubor kódu Typ aktivační události Description
http_trigger_sql_output function_app.py HTTP spouštěč Přijímá správně naformátovanou datovou část JSON a pomocí výstupní vazby SQL vloží objekt jako řádek do ToDo tabulky.
httptrigger-sql-output sql_trigger_todo SQL trigger Naslouchá v ToDo tabulce pro změny na úrovni řádků a vrátí objekt, který představuje změněný řádek.

Typ ToDoItem je definován v todo_item.py.

Název funkce Soubor kódu Typ aktivační události Description
httpTriggerSqlOutput sql_output_http_trigger.ts HTTP spouštěč Přijímá správně naformátovanou datovou část JSON a pomocí výstupní vazby SQL vloží objekt jako řádek do ToDo tabulky.
sqlTriggerToDo sql_trigger.ts SQL trigger Naslouchá v ToDo tabulce pro změny na úrovni řádků a vrátí objekt, který představuje změněný řádek.

Typ ToDoItem je definován v ToDoItem.ts.

Obě funkce používají proměnné prostředí na úrovni AZURE_SQL_CONNECTION_STRING_KEY_* aplikace, které definují připojení založené na identitě k instanci služby Azure SQL Database pomocí ověřování Microsoft Entra ID. Tyto proměnné prostředí jsou vytvořeny pro vás jak v Azure (nastavení funkční aplikace), tak i místně (local.settings.json) během azd provision operace.

Připojení k databázi SQL

K připojení k nové databázi můžete použít rozšíření SQL Server (mssql) pro Visual Studio Code. Toto rozšíření vám pomůže provést aktualizace v tabulce ToDo, aby se aktivovala funkce triggeru SQL.

  1. Stiskněte klávesu F1 a v paletě příkazů vyhledejte a spusťte příkaz MS SQL: Add Connection.

  2. V dialogovém okně Připojení změňte typ vstupu na Procházet Azure a pak nastavte tyto zbývající možnosti:

    Možnost Zvolit Description
    Server Vaše instance SQL Serveru Ve výchozím nastavení se zobrazí všechny servery přístupné pro váš účet Azure. Seznam serverů můžete filtrovat pomocí předplatného, skupiny prostředků a umístění .
    Databáze ToDo Databáze vytvořená během procesu zřizování.
    Typ ověřování Microsoft Entra ID Pokud ještě nejste přihlášení, vyberte Přihlásit se a přihlásit se ke svému účtu Azure.
    ID nájemníka Konkrétní tenant účtu. Pokud má váš účet více než jednoho tenanta, zvolte správného tenanta pro vaše předplatné.
  3. Vyberte Připojit a připojte se k databázi. Připojení používá váš místní uživatelský účet, který má na hostitelském serveru udělená administrátorská oprávnění a je mapován na dbo v databázi.

  4. V zobrazení SQL Serveru vyhledejte a rozbalte připojení a potom nový server v průzkumníku SQL Serveru. Rozbalte tabulky a ověřte, že ToDo tabulka existuje. Pokud neexistuje, možná budete muset spustit azd provision znovu a zkontrolovat chyby.

Místní spuštění funkce

Visual Studio Code se integruje s nástroji Azure Functions Core, které vám umožní spustit tento projekt na místním vývojovém počítači před publikováním do nové aplikace funkcí v Azure.

  1. Stiskněte klávesu F1 a v paletě příkazů vyhledejte a spusťte příkaz Azurite: Start.

  2. Pokud chcete funkci spustit místně, stiskněte klávesu F5 nebo ikonu Spustit a ladit na panelu aktivit na levé straně.

    Na panelu Terminálu se zobrazí výstup nástrojů Core Tools. Aplikace se spustí na panelu Terminálu a zobrazí se název funkce, která je spuštěná místně.

Při spuštění aplikace můžete ověřit a ladit oba spouštěče funkcí.

Chcete-li ověřit funkci HTTP triggeru, která zapisuje do výstupní vazby SQL:

  1. Zkopírujte tento objekt JSON, který můžete najít také v test.http souboru projektu:

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Tato data představují řádek, který vložíte do databáze SQL při volání koncového bodu HTTP. Výstupní vazba přeloží datový objekt do INSERT operace v databázi.

  2. Když je aplikace spuštěná, v zobrazení Azure v části Pracovní prostor rozbalte funkce místního projektu>.

  3. Vyberte funkci HTTP pravým tlačítkem (nebo stiskněte Ctrl a klikněte na macOS), vyberte Spustit funkci, vložte zkopírovaná data JSON a stiskněte Enter.

    Funkce zpracuje požadavek HTTP a zapíše položku do připojené databáze SQL a vrátí vytvořený objekt.

  4. Zpátky v průzkumníku SQL Serveru vyberte ToDo tabulku pravým tlačítkem (nebo stiskněte Ctrl a klikněte na macOS) a zvolte Vybrat prvních 1000. Když se dotaz spustí, vrátí vložený nebo aktualizovaný řádek.

  5. Opakujte krok 3 a znovu odešlete stejný datový objekt se stejným ID. Tentokrát výstupní vazba provede operaci UPDATE místo operace INSERT a upraví existující řádek v databázi.

Až to budete hotovi, zadáním kláves Ctrl+C v terminálu zastavte proces Core Tools.

Nasazení do Azure

Spuštěním příkazu z editoru azd deploy Visual Studio Code můžete nasadit kód projektu do již zřízených prostředků v Azure.

  1. Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Developer CLI (azd): Deploy to Azure (deploy).

    Příkaz azd deploy zabalí a nasadí váš kód do nasazovacího kontejneru. Aplikace se pak spustí a spustí v nasazeném balíčku.

  2. Po úspěšném dokončení příkazu je vaše aplikace spuštěná v Azure. Poznamenejte si Endpoint hodnotu, což je adresa URL vaší funkční aplikace spuštěné v Azure.

Vyvolání funkce v Azure

  1. V editoru Visual Studio Code stiskněte klávesu F1 a na paletě příkazů vyhledejte a spusťte příkaz Azure: Open in portal, vyberte Function appa zvolte novou aplikaci. V případě potřeby se přihlaste pomocí svého účtu Azure.

  2. V levém podokně vyberte Stream protokolu, který se připojí k protokolům Application Insights pro vaši aplikaci.

  3. Vraťte se do editoru Visual Studio Code a spusťte obě funkce v Azure.

  1. Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz Azure Functions: Execute Function Now....

  2. V seznamu vyhledejte a vyberte aplikaci vzdálených funkcí a poté vyberte funkci spouštěcí HTTP.

  3. Stejně jako předtím vložte data objektu JSON do textu datové části Enter a stiskněte Enter.

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Chcete-li provést INSERT místo UPDATE, nahraďte id novou hodnotou GUID.

  4. Vraťte se na portál a zobrazte výstup spuštění v okně protokolu.

Vyčistěte zdroje

Po dokončení práce s aplikací funkcí a souvisejícími prostředky můžete pomocí tohoto příkazu odstranit aplikaci funkcí a související prostředky z Azure a vyhnout se dalším nákladům:

azd down --no-prompt

Poznámka:

Tato --no-prompt možnost dává azd pokyn k odstranění skupiny prostředků bez potvrzení od vás.

Tento příkaz nemá vliv na místní projekt kódu.