Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Účet Azure s aktivním předplatným. Vytvořte si bezplatný účet.
Visual Studio Code na jedné z podporovaných platforem.
Rozšíření Azure Functions pro Visual Studio Code Toto rozšíření vyžaduje Azure Functions Core Tools. Pokud tento nástroj není k dispozici místně, pokusí se rozšíření nainstalovat pomocí instalačního programu založeného na balíčku. Balíček Core Tools můžete také nainstalovat nebo aktualizovat spuštěním
Azure Functions: Install or Update Azure Functions Core Toolsz palety příkazů. Pokud nemáte na místním počítači nainstalovaný npm nebo Homebrew, musíte místo toho nainstalovat nebo aktualizovat nástroje Core Tools ručně.
Rozšíření jazyka C# pro Visual Studio Code
-
Node.js 18.x nebo vyšší. Pomocí příkazu
node --versionzkontrolujte svou verzi.
Verze Pythonu podporované službou Azure Functions Další informace najdete v tématu Postup instalace Pythonu.
- Rozšíření Azure Developer CLI pro Visual Studio Code
- Rozšíření SQL Serveru (mssql) pro Visual Studio Code
Inicializace projektu
Pomocí příkazu azd init z palety příkazů můžete vytvořit projekt kódu Azure Functions místně ze šablony.
V editoru Visual Studio Code otevřete složku nebo pracovní prostor, ve kterém chcete vytvořit projekt.
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.Po zobrazení výzvy vyhledejte a vyberte
Azure Functions with SQL Triggers and Bindings.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.
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.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.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.
Stiskněte klávesu F1 a v paletě příkazů vyhledejte a spusťte příkaz
MS SQL: Add Connection.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 ToDoDatabá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é. 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
dbov databázi.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
ToDotabulka existuje. Pokud neexistuje, možná budete muset spustitazd provisionznovu 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.
Stiskněte klávesu F1 a v paletě příkazů vyhledejte a spusťte příkaz
Azurite: Start.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:
Zkopírujte tento objekt JSON, který můžete najít také v
test.httpsouboru 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
INSERToperace v databázi.Když je aplikace spuštěná, v zobrazení Azure v části Pracovní prostor rozbalte funkce místního projektu>.
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.
Zpátky v průzkumníku SQL Serveru vyberte
ToDotabulku 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.Opakujte krok 3 a znovu odešlete stejný datový objekt se stejným ID. Tentokrát výstupní vazba provede operaci
UPDATEmísto operaceINSERTa 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.
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 deployzabalí a nasadí váš kód do nasazovacího kontejneru. Aplikace se pak spustí a spustí v nasazeném balíčku.Po úspěšném dokončení příkazu je vaše aplikace spuštěná v Azure. Poznamenejte si
Endpointhodnotu, což je adresa URL vaší funkční aplikace spuštěné v Azure.
Vyvolání funkce v Azure
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, vyberteFunction appa zvolte novou aplikaci. V případě potřeby se přihlaste pomocí svého účtu Azure.V levém podokně vyberte Stream protokolu, který se připojí k protokolům Application Insights pro vaši aplikaci.
Vraťte se do editoru Visual Studio Code a spusťte obě funkce v Azure.
Stisknutím klávesy F1 otevřete paletu příkazů, vyhledejte a spusťte příkaz
Azure Functions: Execute Function Now....V seznamu vyhledejte a vyberte aplikaci vzdálených funkcí a poté vyberte funkci spouštěcí HTTP.
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
INSERTmístoUPDATE, nahraďteidnovou hodnotou GUID.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.