Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
In deze quickstart gebruikt u Visual Studio Code om een app te bouwen die reageert op wijzigingen in een Azure SQL Database-tabel. Nadat u de code lokaal hebt getest, implementeert u deze in een nieuwe serverloze functie-app die wordt uitgevoerd in een Flex Consumption-abonnement in Azure Functions.
De projectbron maakt gebruik van de Azure Developer CLI-extensie (azd) met Visual Studio Code om het initialiseren en verifiëren van uw projectcode lokaal te vereenvoudigen en uw code in Azure te implementeren. Deze implementatie volgt de huidige aanbevolen procedures voor veilige en schaalbare Azure Functions-implementaties.
Belangrijk
Dit artikel wordt momenteel alleen ondersteund in C#, Python en TypeScript. Als u de quickstart wilt voltooien, selecteert u een van deze ondersteunde talen bovenaan het artikel.
Vereiste voorwaarden
Een Azure-account met een actief abonnement. Gratis een account maken
Visual Studio Code op een van de ondersteunde platforms.
De Azure Functions-extensie voor Visual Studio Code. Voor deze extensie zijn Azure Functions Core Tools vereist. Wanneer dit hulpprogramma niet lokaal beschikbaar is, probeert de extensie het te installeren met behulp van een installatieprogramma op basis van een pakket. U kunt het Core Tools-pakket ook installeren of bijwerken door het opdrachtpalet uit te voeren
Azure Functions: Install or Update Azure Functions Core Tools. Als u npm of Homebrew niet op uw lokale computer hebt geïnstalleerd, moet u Core Tools handmatig installeren of bijwerken.
C#-extensie voor Visual Studio Code.
-
Node.js 18.x of hoger. Gebruik de opdracht
node --versionom uw versie te controleren.
Python-versies die worden ondersteund door Azure Functions. Zie Python installeren voor meer informatie.
De Python-extensie voor Visual Studio Code.
- De Azure Developer CLI-extensie voor Visual Studio Code.
- De SQL Server-extensie (mssql) voor Visual Studio Code.
Het project initialiseren
U kunt de azd init opdracht uit het opdrachtpalet gebruiken om een lokaal Azure Functions-codeproject te maken op basis van een sjabloon.
Open in Visual Studio Code een map of werkruimte waarin u uw project wilt maken.
Druk op F1 om het opdrachtenpalet te openen, de opdracht
Azure Developer CLI (azd): Initialize App (init)te zoeken en uit te voeren en vervolgens een sjabloon selecteren te kiezen.Wanneer u hierom wordt gevraagd, zoekt en selecteert u
Azure Functions with SQL Triggers and Bindings.Voer desgevraagd een unieke omgevingsnaam in, zoals
sqldbchanges.
Met deze opdracht worden de projectbestanden opgehaald uit de sjabloonopslagplaats en wordt het project geïnitialiseerd in de huidige map of werkruimte. In azdwordt de omgeving gebruikt om een unieke implementatiecontext voor uw app te onderhouden en kunt u meer dan één definiëren. Het maakt ook deel uit van de naam van de resourcegroep die u in Azure maakt.
Met deze opdracht worden de projectbestanden opgehaald uit de sjabloonopslagplaats en wordt het project geïnitialiseerd in de huidige map of werkruimte. In azdwordt de omgeving gebruikt om een unieke implementatiecontext voor uw app te onderhouden en kunt u meer dan één definiëren. Het maakt ook deel uit van de naam van de resourcegroep die u in Azure maakt.
Met deze opdracht worden de projectbestanden opgehaald uit de sjabloonopslagplaats en wordt het project geïnitialiseerd in de huidige map of werkruimte. In azdwordt de omgeving gebruikt om een unieke implementatiecontext voor uw app te onderhouden en kunt u meer dan één definiëren. Het maakt ook deel uit van de naam van de resourcegroep die u in Azure maakt.
Voordat u uw app lokaal kunt uitvoeren, moet u de resources in Azure maken.
Azure-resources maken
Dit project is geconfigureerd voor het gebruik van de opdracht voor het azd provision maken van een functie-app in een Flex Consumption-abonnement, samen met andere vereiste Azure-resources die voldoen aan de huidige aanbevolen procedures.
Druk in Visual Studio Code op F1 om het opdrachtenpalet te openen, de opdracht
Azure Developer CLI (azd): Sign In with Azure Developer CLIte zoeken en uit te voeren en meld u aan met uw Azure-account.Druk op F1 om het opdrachtenpalet te openen, de opdracht
Azure Developer CLI (azd): Provision Azure resources (provision)te zoeken en uit te voeren om de vereiste Azure-resources te maken.Wanneer u hierom wordt gevraagd in het terminalvenster, geeft u de volgende vereiste implementatieparameters op:
Snel Description Selecteer een Azure-abonnement dat u wilt gebruiken Selecteer het abonnement waarin u uw resources wilt maken. locatie-implementatieparameter Azure-regio waarin de resourcegroep wordt gemaakt die de nieuwe Azure-resources bevat. Alleen regio's die momenteel ondersteuning bieden voor het Flex Consumption-abonnement, worden weergegeven. vnetEnabled-implementatieparameter Hoewel de sjabloon ondersteuning biedt voor het maken van resources in een virtueel netwerk, kiest u Falseom de implementatie en het testen te vereenvoudigen.
De azd provision opdracht gebruikt uw reactie op deze prompts met de Bicep-configuratiebestanden om deze vereiste Azure-resources te maken en te configureren, volgens de meest recente aanbevolen procedures:
- Flex Consumption-abonnement en functie-app
- Azure SQL Database (standaardnaam: ToDo)
- Azure Storage (vereist) en Application Insights (aanbevolen)
- Toegangsbeleid en rollen voor uw account
- Service-naar-service-verbindingen met behulp van beheerde identiteiten (in plaats van opgeslagen verbindingsreeks s)
Na inrichting genereren hooks ook het local.settings.json-bestand , dat lokaal moet worden uitgevoerd. Dit bestand bevat de instellingen die nodig zijn om verbinding te maken met uw database in Azure.
De code bekijken (optioneel)
In het voorbeeld worden twee functies gedefinieerd:
| Functienaam | Codebestand | Triggertype | Description |
|---|---|---|---|
httptrigger-sql-output |
sql_output_http_trigger.cs | HTTP-trigger | Accepteert een correct opgemaakte JSON-nettolading en gebruikt de SQL-uitvoerbinding om het object in te voegen als een rij in de ToDo tabel. |
ToDoTrigger |
sql_trigger.cs | SQL trigger | Luistert naar de ToDo tabel voor wijzigingen op rijniveau en retourneert een object dat de gewijzigde rij vertegenwoordigt. |
Het ToDoItem type wordt gedefinieerd in ToDoItem.cs.
| Functienaam | Codebestand | Triggertype | Description |
|---|---|---|---|
http_trigger_sql_output |
function_app.py | HTTP-trigger | Accepteert een correct opgemaakte JSON-nettolading en gebruikt de SQL-uitvoerbinding om het object in te voegen als een rij in de ToDo tabel. |
httptrigger-sql-output |
sql_trigger_todo | SQL trigger | Luistert naar de ToDo tabel voor wijzigingen op rijniveau en retourneert een object dat de gewijzigde rij vertegenwoordigt. |
Het ToDoItem type wordt gedefinieerd in todo_item.py.
| Functienaam | Codebestand | Triggertype | Description |
|---|---|---|---|
httpTriggerSqlOutput |
sql_output_http_trigger.ts | HTTP-trigger | Accepteert een correct opgemaakte JSON-nettolading en gebruikt de SQL-uitvoerbinding om het object in te voegen als een rij in de ToDo tabel. |
sqlTriggerToDo |
sql_trigger.ts | SQL-trigger | Luistert naar de ToDo tabel voor wijzigingen op rijniveau en retourneert een object dat de gewijzigde rij vertegenwoordigt. |
Het ToDoItem type wordt gedefinieerd in ToDoItem.ts.
Beide functies gebruiken de omgevingsvariabelen op app-niveau AZURE_SQL_CONNECTION_STRING_KEY_* die een op identiteit gebaseerde verbinding met het Azure SQL Database-exemplaar definiëren met behulp van Microsoft Entra ID-verificatie. Deze omgevingsvariabelen worden zowel in Azure (functie-app-instellingen) als lokaal (local.settings.json) gemaakt tijdens de azd provision bewerking.
Verbinding maken met de SQL-database
U kunt de SQL Server-extensie (mssql) voor Visual Studio Code gebruiken om verbinding te maken met de nieuwe database. Met deze extensie kunt u updates in de ToDo tabel aanbrengen om de SQL-triggerfunctie uit te voeren.
Druk op F1 en zoek en voer de opdracht
MS SQL: Add Connectionuit in het opdrachtenpalet.Verander in het dialoogvenster Verbinding het invoertype naar Azure bladeren en stel vervolgens de volgende resterende opties in:
Optie Kies Description Server Uw SQL Server-exemplaar Standaard worden alle servers weergegeven die toegankelijk zijn voor uw Azure-account. Gebruik Abonnement, resourcegroep en locatie om de lijst met servers te filteren. Database ToDoDe database die is gemaakt tijdens het inrichtingsproces. Verificatietype Microsoft Entra-id Als u nog niet bent aangemeld, selecteert u Aanmelden en meldt u zich aan bij uw Azure-account. Tenant-id De specifieke accounttenant. Als uw account meer dan één tenant heeft, kiest u de juiste tenant voor uw abonnement. Selecteer Verbinding maken om verbinding te maken met uw database. De verbinding maakt gebruik van uw lokale gebruikersaccount, waaraan beheerdersmachtigingen zijn verleend op de hostingserver en zijn toegewezen aan
dbode database.In de SQL Server-weergave zoek je Verbinden op en vouw je eerst Verbindingen en daarna de nieuwe server in SQL Server Explorer uit. Vouw Tabellen uit en controleer of de
ToDotabel bestaat. Als deze niet bestaat, moet u mogelijkazd provisionopnieuw uitvoeren en controleren op fouten.
De functie lokaal uitvoeren
Visual Studio Code kan worden geïntegreerd met Azure Functions Core-hulpprogramma's waarmee u dit project kunt uitvoeren op uw lokale ontwikkelcomputer voordat u publiceert naar uw nieuwe functie-app in Azure.
Druk op F1 en zoek en voer de opdracht
Azurite: Startuit in het opdrachtenpalet.Als u de functie lokaal wilt starten, drukt u op F5 of het pictogram Uitvoeren en foutopsporing in de activiteitenbalk aan de linkerkant.
In het terminalvenster wordt de uitvoer van Core Tools weergegeven. Uw app wordt gestart in het terminalvenster en u ziet de naam van de functie die lokaal wordt uitgevoerd.
Wanneer de app wordt uitgevoerd, kunt u beide functietriggers controleren en fouten opsporen.
Controleer de HTTP-triggerfunctie die naar een SQL-uitvoerbinding schrijft:
Kopieer dit JSON-object, dat u ook kunt vinden in het
test.httpprojectbestand:{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }Deze gegevens vertegenwoordigen een rij die u in uw SQL-database invoegt wanneer u het HTTP-eindpunt aanroept. Met de uitvoerbinding wordt het gegevensobject omgezet in een
INSERTbewerking in de database.Als de app wordt uitgevoerd, vouwt u in de Azure-weergave onder Werkruimte defuncties van het lokale project>uit.
Selecteer met de rechtermuisknop uw HTTP-functie (of Ctrl+klik op macOS), selecteer Nu uitvoeren, plak de gekopieerde JSON-gegevens en druk op Enter.
De functie verwerkt de HTTP-aanvraag en schrijft het item naar de verbonden SQL-database en retourneert het gemaakte object.
Selecteer in SQL Server Explorer met de rechtermuisknop de
ToDotabel (of Ctrl+klik op macOS) en kies Top 1000 selecteren. Wanneer de query wordt uitgevoerd, wordt de ingevoegde of bijgewerkte rij geretourneerd.Herhaal stap 3 en verzend hetzelfde gegevensobject opnieuw met dezelfde id. Deze keer voert de uitvoerbinding een
UPDATEbewerking uit in plaats van eenINSERTen wijzigt de bestaande rij in de database.
Wanneer u klaar bent, typt u Ctrl+C in de terminal om het Core Tools-proces te stoppen.
Implementeren in Azure
U kunt de azd deploy opdracht uitvoeren vanuit Visual Studio Code om de projectcode te implementeren in uw al ingerichte resources in Azure.
Druk op F1 om het opdrachtenpalet te openen, de opdracht
Azure Developer CLI (azd): Deploy to Azure (deploy)te zoeken en uit te voeren.Met de
azd deployopdracht wordt uw code in de implementatiecontainer verpakt en geïmplementeerd. De app wordt vervolgens gestart en uitgevoerd in het geïmplementeerde pakket.Nadat de opdracht is voltooid, wordt uw app uitgevoerd in Azure. Noteer de
Endpointwaarde, de URL van uw functie-app die wordt uitgevoerd in Azure.
De functie aanroepen in Azure
Druk in Visual Studio Code op F1 en zoek en voer de opdracht
Azure: Open in portaluit in het opdrachtenpalet, selecteerFunction appen kies uw nieuwe app. Meld u indien nodig aan met uw Azure-account.Selecteer Logboekstream in het linkerdeelvenster, dat verbinding maakt met de Application Insights-logboeken voor uw app.
Ga terug naar Visual Studio Code om beide functies in Azure uit te voeren.
Druk op F1 om het opdrachtenpalet te openen, de opdracht
Azure Functions: Execute Function Now...te zoeken en uit te voeren.Zoek en selecteer uw externe functie-app in de lijst en selecteer vervolgens de HTTP-triggerfunctie.
Plak, net als voorheen, de JSON-objectgegevens in de payload body van Enter en druk op Enter.
{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }Als u een
INSERTin plaats van eenUPDATEwilt uitvoeren, vervangt u deiddoor een nieuwe GUID-waarde.Ga terug naar het portal en bekijk de uitvoerresultaten in het logboekvenster.
De hulpbronnen opschonen
Wanneer u klaar bent met het werken met uw functie-app en gerelateerde resources, kunt u deze opdracht gebruiken om de functie-app en de bijbehorende resources uit Azure te verwijderen en eventuele verdere kosten te voorkomen:
azd down --no-prompt
Opmerking
Met de --no-prompt optie krijgt u de opdracht azd om uw resourcegroep te verwijderen zonder een bevestiging van u.
Deze opdracht heeft geen invloed op uw lokale codeproject.