Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten använder du Visual Studio Code för att skapa en app som svarar på ändringar i en Azure SQL Database-tabell. När du har testat koden lokalt distribuerar du den till en ny serverlös funktionsapp som körs i en Flex Consumption-plan i Azure Functions.
Projektkällan använder Azure Developer CLI-tillägget (azd) med Visual Studio Code för att förenkla initieringen och verifieringen av projektkoden lokalt och för att distribuera koden till Azure. Den här distributionen följer aktuella metodtips för säkra och skalbara Azure Functions-distributioner.
Viktigt!
Den här artikeln stöds för närvarande endast i C#, Python och TypeScript. Slutför snabbstarten genom att välja något av de språk som stöds överst i artikeln.
Förutsättningar
Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.
Visual Studio Code på någon av plattformarna som stöds.
Azure Functions-tillägget för Visual Studio Code. Det här tillägget kräver Azure Functions Core Tools. När det här verktyget inte är tillgängligt lokalt försöker tillägget installera det med hjälp av ett paketbaserat installationsprogram. Du kan också installera eller uppdatera Core Tools-paketet genom att köra
Azure Functions: Install or Update Azure Functions Core Toolsfrån kommandopaletten. Om du inte har npm eller Homebrew installerat på den lokala datorn måste du i stället installera eller uppdatera Core Tools manuellt.
C#-tillägg för Visual Studio Code.
-
Node.js 18.x eller senare. Använd kommandot
node --versionför att kontrollera din version.
Python-versioner som stöds av Azure Functions. Mer information finns i Installera Python.
- Azure Developer CLI-tillägget för Visual Studio Code.
- SQL Server-tillägget (mssql) för Visual Studio Code.
Initiera projektet
Du kan använda azd init kommandot från kommandopaletten för att skapa ett lokalt Azure Functions-kodprojekt från en mall.
I Visual Studio Code öppnar du en mapp eller arbetsyta där du vill skapa projektet.
Tryck på F1 för att öppna kommandopaletten, sök efter och kör kommandot
Azure Developer CLI (azd): Initialize App (init)och välj sedan Välj en mall.När du uppmanas till det söker du efter och väljer
Azure Functions with SQL Triggers and Bindings.När du uppmanas till det anger du ett unikt miljönamn, till exempel
sqldbchanges.
Det här kommandot hämtar projektfilerna från malllagringsplatsen och initierar projektet i den aktuella mappen eller arbetsytan. I azdanvänds miljön för att upprätthålla en unik distributionskontext för din app och du kan definiera mer än en. Det är också en del av namnet på den resursgrupp som du skapar i Azure.
Det här kommandot hämtar projektfilerna från malllagringsplatsen och initierar projektet i den aktuella mappen eller arbetsytan. I azdanvänds miljön för att upprätthålla en unik distributionskontext för din app och du kan definiera mer än en. Det är också en del av namnet på den resursgrupp som du skapar i Azure.
Det här kommandot hämtar projektfilerna från malllagringsplatsen och initierar projektet i den aktuella mappen eller arbetsytan. I azdanvänds miljön för att upprätthålla en unik distributionskontext för din app och du kan definiera mer än en. Det är också en del av namnet på den resursgrupp som du skapar i Azure.
Innan du kan köra appen lokalt måste du skapa resurserna i Azure.
Skapa Azure-resurser
Det här projektet är konfigurerat för att använda azd provision kommandot för att skapa en funktionsapp i en Flex Consumption-plan, tillsammans med andra nödvändiga Azure-resurser som följer aktuella metodtips.
I Visual Studio Code trycker du på F1 för att öppna kommandopaletten, söker efter och kör kommandot
Azure Developer CLI (azd): Sign In with Azure Developer CLIoch loggar sedan in med ditt Azure-konto.Tryck på F1 för att öppna kommandopaletten, sök efter och kör kommandot
Azure Developer CLI (azd): Provision Azure resources (provision)för att skapa nödvändiga Azure-resurser.När du uppmanas att göra det i terminalfönstret anger du följande nödvändiga distributionsparametrar:
Omedelbar Description Välj en Azure-prenumeration som ska användas Välj den prenumeration där du vill att dina resurser ska skapas. platsdistributionsparameter Azure-region där du kan skapa resursgruppen som innehåller de nya Azure-resurserna. Endast regioner som för närvarande stöder Flex Consumption-planen visas. vnetEnabled-distributionsparameter Mallen har stöd för att skapa resurser i ett virtuellt nätverk, men för att förenkla distributionen och testningen väljer du False.
Kommandot azd provision använder ditt svar på dessa frågor med Bicep-konfigurationsfilerna för att skapa och konfigurera de nödvändiga Azure-resurserna enligt de senaste metodtipsen:
- Flex Consumption-plan och funktionsapp
- Azure SQL Database (standardnamn: ToDo)
- Azure Storage (krävs) och Application Insights (rekommenderas)
- Åtkomstprinciper och roller för ditt konto
- Tjänst-till-tjänst-anslutningar med hanterade identiteter (i stället för lagrade anslutningssträng)
Post-provision hooks genererar också local.settings.json-filen, som krävs för att köras lokalt. Den här filen innehåller de inställningar som krävs för att ansluta till databasen i Azure.
Granska koden (valfritt)
Exemplet definierar två funktioner:
| Funktionsnamn | Kodfil | Utlösartyp | Description |
|---|---|---|---|
httptrigger-sql-output |
sql_output_http_trigger.cs | HTTP-utlösare | Accepterar en korrekt formaterad JSON-nyttolast och använder SQL-utdatabindningen för att infoga objektet som en rad i ToDo tabellen. |
ToDoTrigger |
sql_trigger.cs | SQL-utlösare | Lyssnar på tabellen ToDo efter ändringar på radnivå och returnerar ett objekt som representerar den ändrade raden. |
Typen ToDoItem definieras i ToDoItem.cs.
| Funktionsnamn | Kodfil | Utlösartyp | Description |
|---|---|---|---|
http_trigger_sql_output |
function_app.py | HTTP-utlösare | Accepterar en korrekt formaterad JSON-nyttolast och använder SQL-utdatabindningen för att infoga objektet som en rad i ToDo tabellen. |
httptrigger-sql-output |
sql_trigger_todo | SQL-utlösare | Lyssnar på tabellen ToDo efter ändringar på radnivå och returnerar ett objekt som representerar den ändrade raden. |
Typen ToDoItem definieras i todo_item.py.
| Funktionsnamn | Kodfil | Utlösartyp | Description |
|---|---|---|---|
httpTriggerSqlOutput |
sql_output_http_trigger.ts | HTTP-utlösare | Accepterar en korrekt formaterad JSON-nyttolast och använder SQL-utdatabindningen för att infoga objektet som en rad i ToDo tabellen. |
sqlTriggerToDo |
sql_trigger.ts | SQL-utlösare | Lyssnar på tabellen ToDo efter ändringar på radnivå och returnerar ett objekt som representerar den ändrade raden. |
Typen ToDoItem definieras i ToDoItem.ts.
Båda funktionerna använder miljövariablerna på appnivå AZURE_SQL_CONNECTION_STRING_KEY_* som definierar en identitetsbaserad anslutning till Azure SQL Database-instansen med hjälp av Microsoft Entra-ID-autentisering. Dessa miljövariabler skapas åt dig både i Azure (funktionsappinställningar) och lokalt (local.settings.json) under åtgärden azd provision .
Ansluta till SQL-databasen
Du kan använda SQL Server-tillägget (mssql) för Visual Studio Code för att ansluta till den nya databasen. Det här tillägget hjälper dig att göra uppdateringar i ToDo tabellen för att köra SQL-utlösarfunktionen.
Tryck på F1 och sök efter och kör kommandot
MS SQL: Add Connectioni kommandopaletten.I dialogrutan Anslutning ändrar du Indatatyp till Bläddra i Azure och anger sedan följande återstående alternativ:
Option Välja Description Server Din SQL Server-instans Som standard visas alla servrar som är tillgängliga för ditt Azure-konto. Använd Prenumeration, Resursgrupp och Plats för att filtrera listan över servrar. Databas ToDoDatabasen som skapades under etableringsprocessen. Autentiseringstyp Microsoft Entra-ID Om du inte redan är inloggad väljer du Logga in och logga in på ditt Azure-konto. Hyresgäst-ID Den specifika kontohyresgästen. Om ditt konto har fler än en hyresgäst, välj rätt hyresgäst för din prenumeration. Välj Anslut för att ansluta till databasen. Anslutningen använder ditt lokala användarkonto, som beviljas administratörsbehörigheter på värdservern och mappas till
dboi databasen.I SQL Server-vyn letar du upp och expanderar Anslutningar och sedan din nya server i SQL Server Explorer. Expandera Tabeller och kontrollera att tabellen
ToDofinns. Om den inte finns kan du behöva köraazd provisionigen och söka efter fel.
Kör funktionen lokalt
Visual Studio Code integreras med Azure Functions Core-verktyg så att du kan köra det här projektet på din lokala utvecklingsdator innan du publicerar till din nya funktionsapp i Azure.
Tryck på F1 och sök efter och kör kommandot
Azurite: Starti kommandopaletten.Starta funktionen lokalt genom att trycka på F5 eller ikonen Kör och felsöka i aktivitetsfältet till vänster.
Terminalpanelen visar utdata från Core Tools. Appen startar i terminalpanelen och du kan se namnet på den funktion som körs lokalt.
När appen körs kan du verifiera och felsöka båda funktionsutlösarna.
Så här verifierar du http-utlösarfunktionen som skriver till en SQL-utdatabindning:
Kopiera det här JSON-objektet, som du också hittar i
test.httpprojektfilen:{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }Dessa data representerar en rad som du infogar i SQL-databasen när du anropar HTTP-slutpunkten. Utdatabindningen översätter dataobjektet till en
INSERTåtgärd i databasen.När appen körs, i Azure-vyn, under Arbetsyta, expanderar du Lokalt projekt>Funktioner.
Högerklicka på HTTP-funktionen (eller Ctrl+klicka på macOS), välj Kör funktion nu, klistra in de kopierade JSON-data och tryck på Retur.
Funktionen hanterar HTTP-begäran och skriver objektet till den anslutna SQL-databasen och returnerar det skapade objektet.
I SQL Server-utforskaren högerklickar du på
ToDotabellen (eller Ctrl+klickar på macOS) och väljer Välj översta 1000. När frågan körs returneras den infogade eller uppdaterade raden.Upprepa steg 3 och skicka samma dataobjekt igen med samma ID. Den här gången utför utdatabindningen en
UPDATEåtgärd i stället för enINSERToch ändrar den befintliga raden i databasen.
När du är klar skriver du Ctrl+C i terminalen för att stoppa Core Tools-processen.
Distribuera till Azure
Du kan köra azd deploy kommandot från Visual Studio Code för att distribuera projektkoden till dina redan etablerade resurser i Azure.
Tryck på F1 för att öppna kommandopaletten, sök efter och kör kommandot
Azure Developer CLI (azd): Deploy to Azure (deploy).azd deploy-kommandot paketerar och distribuerar din kod till distributionscontainern. Appen startas sedan och körs i det distribuerade paketet.När kommandot har slutförts körs appen i Azure. Anteckna värdet
Endpoint, som är URL:en för din funktionsapp som körs i Azure.
Anropa funktionen på Azure
I Visual Studio Code trycker du på F1 och i kommandopaletten söker du efter och kör kommandot
Azure: Open in portal, väljerFunction appoch väljer din nya app. Logga in med ditt Azure-konto om det behövs.Välj Loggström i det vänstra fönstret, som ansluter till Application Insights-loggarna för din app.
Gå tillbaka till Visual Studio Code för att köra båda funktionerna i Azure.
Tryck på F1 för att öppna kommandopaletten, sök efter och kör kommandot
Azure Functions: Execute Function Now....Sök efter och välj fjärrfunktionsappen i listan och välj sedan funktionen HTTP-utlösare.
Som tidigare klistrar du in dina JSON-objektdata i Ange nyttolasttext och trycker på Retur.
{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }Om du vill utföra en
INSERTi stället för enUPDATEersätter duidmed ett nytt GUID-värde.Gå tillbaka till portalen och granska körningsutdata i loggfönstret.
Rensa resurser
När du är klar med funktionsappen och relaterade resurser kan du använda det här kommandot för att ta bort funktionsappen och dess relaterade resurser från Azure och undvika ytterligare kostnader:
azd down --no-prompt
Anmärkning
Alternativet --no-prompt instruerar azd dig att ta bort resursgruppen utan någon bekräftelse från dig.
Det här kommandot påverkar inte ditt lokala kodprojekt.