Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart gebruikt u Visual Studio Code om een app te bouwen die reageert op databasewijzigingen in een No SQL-database in Azure Cosmos DB. Nadat u de code lokaal hebt getest, implementeert u deze in een nieuwe serverloze functie-app die u maakt 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.
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.Er kan een kleine vertraging optreden tijdens
azdhet initialiseren van de huidige map of werkruimte.
Wanneer u hierom wordt gevraagd, kiest u Selecteer een sjabloon en zoekt en selecteert u
Azure Functions with Cosmos DB Bindings (.NET).Voer desgevraagd een unieke omgevingsnaam in, zoals
cosmosdbchanges-dotnet.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.
Wanneer u hierom wordt gevraagd, kiest u Selecteer een sjabloon en zoekt en selecteert u
Azure Functions TypeScript CosmosDB trigger.Voer desgevraagd een unieke omgevingsnaam in, zoals
cosmosdbchanges-ts.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.
Wanneer u hierom wordt gevraagd, kiest u Selecteer een sjabloon en zoekt en selecteert u
Azure Functions Python with CosmosDB triggers and bindings....Voer desgevraagd een unieke omgevingsnaam in, zoals
cosmosdbchanges-py.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.
Voer deze opdracht uit, afhankelijk van uw lokale besturingssysteem, om configuratiescripts de vereiste machtigingen te verlenen:
Voer deze opdracht uit met voldoende bevoegdheden:
chmod +x ./infra/scripts/*.sh
Voordat u uw app lokaal kunt uitvoeren, moet u de resources in Azure maken. In dit project wordt geen lokale emulatie gebruikt voor Azure Cosmos DB.
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 Kies de abonnement waarin u uw bronnen 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 provisionopdracht 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 Cosmos DB-account
- 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)
Post-provision hooks genereren ook het local.settings.json-bestand dat is vereist bij het lokaal uitvoeren. Dit bestand bevat ook de instellingen die nodig zijn om verbinding te maken met uw Azure Cosmos DB-database in Azure.
Aanbeveling
Als eventuele stappen mislukken tijdens het inrichten, kunt u de
azd provisionopdracht opnieuw uitvoeren nadat u eventuele problemen hebt opgelost.Nadat de opdracht is voltooid, kunt u uw projectcode lokaal uitvoeren en activeren op de Azure Cosmos DB-database in Azure.
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.
Als u problemen ondervindt met het uitvoeren op Windows, moet u ervoor zorgen dat de standaardterminal voor Visual Studio Code niet is ingesteld op WSL Bash.
Als Core Tools nog steeds wordt uitgevoerd in Terminal, drukt u op F1 en zoekt en voert u de opdracht
NoSQL: Create Item...uit en selecteert u zowel dedocument-dbdatabase als dedocumentscontainer.Vervang de inhoud van het bestand New Item.json door deze JSON-gegevens en selecteer Opslaan:
{ "id": "doc1", "title": "Sample document", "content": "This is a sample document for testing my Azure Cosmos DB trigger in Azure Functions." }Nadat u Opslaan hebt geselecteerd, ziet u de uitvoering van de functie in de terminal en wordt het lokale document bijgewerkt met metagegevens die door de service zijn toegevoegd.
Wanneer u klaar bent, drukt u op Ctrl+C in het terminalvenster om het
func.exehostproces te stoppen.
De code bekijken (optioneel)
De functie wordt geactiveerd op basis van de wijzigingenfeed in een Azure Cosmos DB NoSQL-database. Deze omgevingsvariabelen configureren hoe de trigger de wijzigingenfeed bewaakt:
-
COSMOS_CONNECTION__accountEndpoint: Het Eindpunt van het Cosmos DB-account -
COSMOS_DATABASE_NAME: De naam van de database die moet worden bewaakt -
COSMOS_CONTAINER_NAME: De naam van de container die moet worden bewaakt
Deze omgevingsvariabelen worden zowel in Azure (functie-app-instellingen) als lokaal (local.settings.json) gemaakt tijdens de azd provision bewerking.
U kunt de code bekijken die de Azure Cosmos DB-trigger definieert in het CosmosTrigger.cs projectbestand.
U kunt de code bekijken die de Azure Cosmos DB-trigger definieert in het cosmos_trigger.ts projectbestand.
U kunt de code bekijken die de Azure Cosmos DB-trigger definieert in het function_app.py projectbestand.
Nadat u uw functiecode lokaal hebt beoordeeld en gecontroleerd, is het tijd om het project te publiceren op Azure.
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.
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.Met deze opdracht opent u uw nieuwe functie-app in Azure Portal.
Selecteer op het tabblad Overzicht op de hoofdpagina de naam van uw functie-app en vervolgens het tabblad Logboeken .
Gebruik de
NoSQL: Create Itemopdracht in Visual Studio Code om opnieuw een document toe te voegen aan de container zoals voorheen.Controleer opnieuw of de functie wordt geactiveerd door een update in de bewaakte container.
Uw code opnieuw implementeren
U kunt de azd deploy opdracht zo vaak uitvoeren als nodig is om code-updates te implementeren in uw functie-app.
Opmerking
Geïmplementeerde codebestanden worden altijd overschreven door het nieuwste implementatiepakket.
Uw eerste antwoorden op azd prompts en eventuele omgevingsvariabelen die worden azd gegenereerd, worden lokaal opgeslagen in uw benoemde omgeving. Gebruik de azd env get-values opdracht om alle variabelen in uw omgeving te controleren die zijn gebruikt bij het maken van Azure-resources.
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.