Azure Functions ontwikkelen met Visual Studio Code

Met de Azure Functions-extensie voor Visual Studio Code kunt u functies lokaal ontwikkelen en implementeren in Azure. Als deze ervaring uw eerste ervaring is met Azure Functions, vindt u meer informatie op Een inleiding tot Azure Functions.

De Azure Functions-extensie biedt de volgende voordelen:

  • Bewerk, bouw en voer functies uit op uw lokale ontwikkelcomputer.
  • Publiceer uw Azure Functions-project rechtstreeks naar Azure.
  • Schrijf uw functies in verschillende talen en profiteer van de voordelen van Visual Studio Code.

U bekijkt de C#-versie van dit artikel. Zorg ervoor dat u aan het begin van het artikel uw favoriete Functions-programmeertaal selecteert.

Als u nog niet eerder met Functions werkt, kunt u eerst het quickstart-artikel van Visual Studio Code voltooien.

U bekijkt de Java-versie van dit artikel. Zorg ervoor dat u aan het begin van het artikel uw favoriete Functions-programmeertaal selecteert.

Als u nog niet eerder met Functions werkt, kunt u eerst het quickstart-artikel van Visual Studio Code voltooien.

U bekijkt de JavaScript-versie van dit artikel. Zorg ervoor dat u aan het begin van het artikel uw favoriete Functions-programmeertaal selecteert.

Als u nog niet eerder met Functions werkt, kunt u eerst het quickstart-artikel van Visual Studio Code voltooien.

U bekijkt de PowerShell-versie van dit artikel. Zorg ervoor dat u aan het begin van het artikel uw favoriete Functions-programmeertaal selecteert.

Als u nog niet eerder met Functions werkt, kunt u eerst het quickstart-artikel van Visual Studio Code voltooien.

U bekijkt de Python-versie van dit artikel. Zorg ervoor dat u aan het begin van het artikel uw favoriete Functions-programmeertaal selecteert.

Als u nog niet eerder met Functions werkt, kunt u eerst het quickstart-artikel van Visual Studio Code voltooien.

U bekijkt de TypeScript-versie van dit artikel. Zorg ervoor dat u aan het begin van het artikel uw favoriete Functions-programmeertaal selecteert.

Als u nog niet eerder met Functions werkt, kunt u eerst het quickstart-artikel van Visual Studio Code voltooien.

Belangrijk

Combineer geen lokale ontwikkeling en portalontwikkeling voor één functie-app. Wanneer u vanuit een lokaal project publiceert naar een functie-app, overschrijft het implementatieproces alle functies die u in de portal hebt ontwikkeld.

Vereisten

U hebt deze vereisten ook nodig om uw functies lokaal uit te voeren en fouten op te sporen. Ze hoeven niet alleen projecten te maken of te publiceren naar Azure Functions.

  • De Azure Functions Core Tools, waarmee een geïntegreerde lokale foutopsporingservaring mogelijk is. Wanneer u de Azure Functions-extensie hebt geïnstalleerd, is de eenvoudigste manier om Core Tools te installeren of bij te werken door de Azure Functions: Install or Update Azure Functions Core Tools opdracht uit te voeren vanuit het opdrachtpalet.
  • Node.js, een van de ondersteunde versies. Gebruik de opdracht node --version om uw versie te controleren.

Een Azure Functions-project maken

Met de Functions-extensie kunt u het vereiste functie-app-project maken op hetzelfde moment dat u uw eerste functie maakt. Gebruik deze stappen om een door HTTP geactiveerde functie te maken in een nieuw project. Een HTTP-trigger is de eenvoudigste sjabloon voor functietriggers om te demonstreren.

  1. Selecteer in de activiteitenbalk het Azure-pictogram. Open de + lijst in het gebied Werkruimte (Lokaal) en selecteer Functie maken.

    Schermopname van het maken van een nieuw projectvenster.

  2. Wanneer u hierom wordt gevraagd, selecteert u Nieuw project maken. Selecteer de maplocatie voor uw projectwerkruimte en kies vervolgens Selecteren.

    U kunt een nieuwe map maken of een lege map voor de projectwerkruimte kiezen, maar geen projectmap kiezen die al deel uitmaakt van een werkruimte.

  3. Wanneer u hierom wordt gevraagd, selecteert u een taal voor uw project. Kies indien nodig een specifieke taalversie.

  4. Selecteer de sjabloon voor de HTTP-triggerfunctie of u kunt Nu overslaan selecteren om een project te maken zonder een functie. U kunt later altijd een functie aan uw project toevoegen.

    Schermopname voor het selecteren van HTTP-trigger.

    Tip

    U kunt extra sjablonen weergeven door de filteroptie Sjabloon wijzigen te selecteren en de waarde in te stellen op Core of All.

  5. Voer HttpExample in voor de naam van de functie, selecteer Enter en selecteer vervolgens Functieautorisatie.

    Voor dit autorisatieniveau moet u een functiesleutel opgeven wanneer u het functie-eindpunt aanroept.

    Schermopname voor het maken van functieautorisatie.

  6. Selecteer Toevoegen aan werkruimte in de vervolgkeuzelijst.

     Schermopname voor het selecteren van Toevoegen aan werkplek.

  7. In het venster Vertrouwt u de auteurs van de bestanden in deze map? selecteert u Ja.

    Schermopname om het vertrouwen in auteurs van de bestanden te bevestigen.

Visual Studio Code maakt een functie in de gekozen taal en in de sjabloon voor een door HTTP geactiveerde functie.

Gegenereerde projectbestanden

De projectsjabloon maakt een project in de gekozen taal en installeert de vereiste afhankelijkheden. Voor elke taal heeft het nieuwe project de volgende bestanden:

  • host.json: Hiermee kunt u de Functions-host configureren. Deze instellingen zijn van toepassing wanneer u functies lokaal uitvoert en wanneer u ze uitvoert in Azure. Zie host.json naslaginformatie voor meer informatie.

  • local.settings.json: onderhoudt instellingen die worden gebruikt wanneer u functies lokaal uitvoert. Deze instellingen worden alleen gebruikt wanneer u functies lokaal uitvoert. Zie het bestand Met lokale instellingen voor meer informatie.

    Belangrijk

    Omdat het bestand local.settings.json geheimen kan bevatten, moet u het bestand uitsluiten van het broncodebeheer van uw project.

Afhankelijk van uw taal worden deze andere bestanden gemaakt:

Een HttpExample.cs klassebibliotheekbestand, waarvan de inhoud varieert, afhankelijk van of uw project wordt uitgevoerd in een geïsoleerd werkproces of in-proces met de Functions-host.

  • Een pom.xml-bestand in de hoofdmap waarmee de project- en implementatieparameters worden gedefinieerd, waaronder projectafhankelijkheden en de Java-versie. De pom.xml bevat ook informatie over de Azure-resources die tijdens een implementatie worden gemaakt.

  • Een Functions.java-bestand in uw src-pad waarmee de functie wordt geïmplementeerd.

Bestanden die worden gegenereerd, zijn afhankelijk van het gekozen Node.js programmeermodel voor Functions:

  • Een package.json bestand in de hoofdmap.

  • Een benoemd .js-bestand in de map src\functions , die zowel de functiedefinitie als uw functiecode bevat.

Een HttpExample-map die het volgende bevat:

Bestanden die worden gegenereerd, zijn afhankelijk van het gekozen Python-programmeermodel voor Functions:

  • Een requirements.txt-bestand op projectniveau waarin pakketten worden vermeld die vereist zijn voor Functions.

  • Een function_app.py-bestand dat zowel de functiedefinitie als de code bevat.

Op dit moment kunt u de HTTP-triggerfunctie lokaal uitvoeren.

Een functie toevoegen aan uw project

U kunt een nieuwe functie toevoegen aan een bestaand project op basis van een van de vooraf gedefinieerde Functions-triggersjablonen. Als u een nieuwe functietrigger wilt toevoegen, selecteert u F1 om het opdrachtenpalet te openen en zoekt en voert u de opdracht Azure Functions uit: Functie maken. Volg de aanwijzingen om uw triggertype te kiezen en de vereiste kenmerken van de trigger te definiëren. Als uw trigger een toegangssleutel of verbindingsreeks nodig heeft om verbinding te maken met een service, moet u dat item voorbereiden voordat u de functietrigger maakt.

Met deze actie wordt een nieuw C#-klassebibliotheekbestand (.cs) aan uw project toegevoegd.

Met deze actie wordt een nieuw Java-bestand (.java) aan uw project toegevoegd.

De resultaten van deze actie zijn afhankelijk van de Node.js modelversie.

  • Een package.json bestand in de hoofdmap.

  • Een benoemd .js-bestand in de map src\functions , die zowel de functiedefinitie als uw functiecode bevat.

Met deze actie maakt u een nieuwe map in het project. De map bevat een nieuw function.json-bestand en het nieuwe PowerShell-codebestand.

De resultaten van deze actie zijn afhankelijk van de versie van het Python-model.

Visual Studio Code voegt nieuwe functiecode toe aan het function_app.py-bestand (standaardgedrag) of aan een ander Python-bestand dat u hebt geselecteerd.

Verbinding maken met services

U kunt uw functie verbinden met andere Azure-services door invoer- en uitvoerbindingen toe te voegen. Bindingen verbinden uw functie met andere services zonder dat u de verbindingscode hoeft te schrijven.

De manier waarop u bijvoorbeeld een uitvoerbinding definieert waarmee gegevens naar een opslagwachtrij worden geschreven, is afhankelijk van uw procesmodel:

  1. Voeg indien nodig een verwijzing toe naar het pakket dat uw bindingsextensie ondersteunt.

  2. Werk de functiemethode bij om een kenmerk toe te voegen dat de bindingsparameter definieert, zoals QueueOutput voor een wachtrijuitvoerbinding. U kunt een MultiResponse object gebruiken om meerdere berichten of meerdere uitvoerstreams te retourneren.

Als u bijvoorbeeld een uitvoerbinding wilt toevoegen die gegevens naar een opslagwachtrij schrijft, werkt u de functiemethode bij om een bindingsparameter toe te voegen die is gedefinieerd met behulp van de QueueOutput aantekening. Het OutputBinding<T> object vertegenwoordigt de berichten die naar een uitvoerbinding worden geschreven wanneer de functie is voltooid.

De manier waarop u bijvoorbeeld de uitvoerbinding definieert die gegevens naar een opslagwachtrij schrijft, is afhankelijk van uw Node.js modelversie:

Met behulp van het Node.js v4-model moet u handmatig een return: optie toevoegen in de functiedefinitie met behulp van de storageQueue functie in het output object, waarmee de opslagwachtrij wordt gedefinieerd om de return uitvoer te schrijven. De uitvoer wordt geschreven wanneer de functie is voltooid.

Met Visual Studio Code kunt u bindingen toevoegen aan uw function.json-bestand door een handige set prompts te volgen.

Als u een binding wilt toevoegen, opent u het opdrachtpallet (F1) en typt u Azure Functions: binding toevoegen..., kiest u de functie voor de nieuwe binding en volgt u de aanwijzingen, afhankelijk van het type binding dat aan de functie wordt toegevoegd.

Hieronder ziet u voorbeeldprompts voor het definiëren van een nieuwe opslaguitvoerbinding:

Prompt Weergegeven als Beschrijving
Bindingsrichting selecteren out De binding is een uitvoerbinding.
Binding met richting selecteren Azure Queue Storage De binding is een Azure Storage-wachtrijbinding.
De naam voor het identificeren van deze binding in uw code msg Naam die de bindingsparameter identificeert waar in uw code naar wordt verwezen.
De wachtrij waarnaar het bericht wordt verzonden outqueue De naam van de wachtrij waarnaar de binding schrijft. Wanneer de queueName niet bestaat, wordt deze bij het eerste gebruik door de binding gemaakt.
Instelling selecteren in 'local.settings.json' MyStorageConnection De naam van een toepassingsinstelling die de verbindingsreeks voor het opslagaccount bevat. De AzureWebJobsStorage instelling bevat de verbindingsreeks voor het opslagaccount dat u hebt gemaakt met de functie-app.

U kunt ook met de rechtermuisknop klikken (Ctrl+klikken op macOS) rechtstreeks in het function.json bestand in uw functiemap, binding toevoegen selecteren en dezelfde aanwijzingen volgen.

In dit voorbeeld wordt de volgende binding toegevoegd aan de bindings matrix in uw function.json-bestand:

{
    "type": "queue",
    "direction": "out",
    "name": "msg",
    "queueName": "outqueue",
    "connection": "MyStorageConnection"
}

De manier waarop u bijvoorbeeld de uitvoerbinding definieert waarmee gegevens naar een opslagwachtrij worden geschreven, is afhankelijk van de versie van uw Python-model:

De @queue_output decorator op de functie wordt gebruikt om een benoemde bindingsparameter te definiëren voor de uitvoer naar de opslagwachtrij, waarbij func.Out wordt gedefinieerd welke uitvoer wordt geschreven.

In het volgende voorbeeld ziet u de functiedefinitie nadat u een Queue Storage-uitvoerbinding hebt toegevoegd aan een door HTTP geactiveerde functie:

Omdat een door HTTP geactiveerde functie ook een HTTP-antwoord retourneert, retourneert de functie een MultiResponse object, dat zowel de HTTP- als de wachtrijuitvoer vertegenwoordigt.

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

Dit voorbeeld is de definitie van het MultiResponse object dat de uitvoerbinding bevat:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

Wanneer u dat voorbeeld toepast op uw eigen project, moet u mogelijk overschakelen naar en naar, afhankelijk van of u ASP.NET Core-integratie gebruikt of niet.HttpResponseDataIActionResultHttpRequestDataHttpRequest

Berichten worden naar de wachtrij verzonden wanneer de functie is voltooid. De manier waarop u de uitvoerbinding definieert, is afhankelijk van uw procesmodel. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

Voorbeeldbinding voor Node.js model v4 nog niet beschikbaar.

De manier waarop u de uitvoerbinding definieert, is afhankelijk van de versie van uw Node.js model. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

De manier waarop u de uitvoerbinding definieert, is afhankelijk van de versie van uw Python-model. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

Voorbeeldbinding voor Node.js model v4 nog niet beschikbaar.

De manier waarop u de uitvoerbinding definieert, is afhankelijk van de versie van uw Node.js model. Zie Bindingen toevoegen aan een functie voor meer informatie, inclusief koppelingen naar voorbeeldbindingscode waarnaar u kunt verwijzen.

Aanmelden bij Azure

Voordat u Azure-resources kunt maken of uw app kunt publiceren, moet u zich aanmelden bij Azure.

  1. Als u nog niet bent aangemeld, kiest u het Azure-pictogram op de activiteitenbalk. Kies vervolgens in het gebied Resources aanmelden bij Azure....

    Schermopname van het aanmeldingsvenster bij Azure in VS Code.

    Als u al bent aangemeld en uw bestaande abonnementen kunt zien, gaat u naar de volgende sectie. Als u nog geen Azure-account hebt, kiest u Een Azure-account maken.... Leerlingen/studenten kunnen een Azure for Students-account maken kiezen ....

  2. Wanneer u hierom wordt gevraagd in de browser, kiest u uw Azure-account en meld u zich aan met uw Azure-accountreferenties. Als u een nieuw account maakt, kunt u zich aanmelden nadat uw account is gemaakt.

  3. Nadat u bent aangemeld, kunt u het nieuwe browservenster sluiten. De abonnementen die deel uitmaken van uw Azure-account, worden weergegeven in de zijbalk.

Azure-resources maken

Voordat u uw Functions-project naar Azure kunt publiceren, moet u een functie-app en gerelateerde resources in uw Azure-abonnement hebben om uw code uit te voeren. De functie-app biedt een context waar u uw functies kunt uitvoeren. Wanneer u vanuit Visual Studio Code publiceert naar een functie-app in Azure, wordt het project verpakt en geïmplementeerd in de geselecteerde functie-app in uw Azure-abonnement.

Wanneer u een functie-app maakt in Azure, kunt u een snel pad voor het maken van een functie-app kiezen met behulp van standaardinstellingen of een geavanceerd pad. Op deze manier hebt u meer controle over het maken van de externe resources.

Snelle functie-app maken

In deze sectie maakt u een functie-app en gerelateerde resources in uw Azure-abonnement.

  1. Kies het Azure-pictogram in de activiteitenbalk. Selecteer vervolgens in het gebied Resources het + pictogram en kies de optie Functie-app maken in Azure .

    Een resource maken in uw Azure-abonnement

  2. Geef de volgende informatie op bij de prompts:

    Prompt Selectie
    Abonnement selecteren Kies het abonnement dat u wilt gebruiken. U ziet deze prompt niet wanneer er slechts één abonnement zichtbaar is onder Resources.
    Voer een wereldwijd unieke naam in voor de functie-app Typ een naam die geldig is in een URL-pad. De naam die u typt, wordt gevalideerd om er zeker van te zijn dat deze uniek is in Azure Functions.
    Een runtimestack selecteren Kies de taalversie waarop u lokaal hebt uitgevoerd.
    Selecteer een locatie voor nieuwe resources Kies voor betere prestaties een regio bij u in de buurt.

    In de extensie ziet u de status van afzonderlijke resources wanneer ze worden gemaakt in Azure in het deelvenster Activiteitenlogboek .

    Logboek van het maken van Azure-resources

  3. Wanneer het maken is voltooid, worden de volgende Azure-resources in uw abonnement gemaakt. De resources hebben een naam op basis van de naam van uw functie-app:

    • Een resourcegroep, een logische container voor gerelateerde resources.
    • Een standaard Azure Storage-account dat de status en andere informatie over uw projecten onderhoudt.
    • Een functie-app, die de omgeving biedt voor het uitvoeren van uw functiecode. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren en delen binnen hetzelfde hostingabonnement.
    • Een App Service-plan, waarmee de onderliggende host voor uw functie-app wordt gedefinieerd.
    • Een Application Insights-exemplaar dat is verbonden met de functie-app, waarmee het gebruik van uw functies in de app wordt bijgehouden.

    Nadat de functie-app is gemaakt en het implementatiepakket is toegepast, wordt er een melding weergegeven.

    Tip

    Standaard worden de Azure-resources die door uw functie-app zijn vereist, gemaakt op basis van de naam van de functie-app die u opgeeft. Ze worden standaard ook gemaakt in dezelfde nieuwe resourcegroep met de functie-app. Als u de namen van deze resources wilt aanpassen of bestaande resources opnieuw wilt gebruiken, moet u het project publiceren met geavanceerde opties voor maken.

Een project publiceren naar een nieuwe functie-app in Azure met behulp van geavanceerde opties

De volgende stappen publiceren uw project naar een nieuwe functie-app die is gemaakt met geavanceerde opties voor maken:

  1. Voer in het opdrachtenpalet Azure Functions in: Functie-app maken in Azure... (Geavanceerd).

  2. Als u niet bent aangemeld, wordt u gevraagd om u aan te melden bij Azure. U kunt ook een gratis Azure-account maken. Nadat u zich hebt aangemeld vanuit de browser, gaat u terug naar Visual Studio Code.

  3. Geef deze informatie op na de aanwijzingen:

    Prompt Selectie
    Voer een wereldwijd unieke naam in voor de nieuwe functie-app. Typ een wereldwijd unieke naam waarmee uw nieuwe functie-app wordt geïdentificeerd en selecteer vervolgens Enter. Geldige tekens voor de naam van en functie-app zijn a-z, 0-9 en -.
    Selecteer een runtimestack. Kies de taalversie die u lokaal uitvoert.
    Selecteer een besturingssysteem. Kies Linux of Windows. Python-apps moeten worden uitgevoerd op Linux.
    Selecteer een resourcegroep voor nieuwe resources. Kies Nieuwe resourcegroep maken en voer een resourcegroepnaam in, zoals myResourceGroup. U kunt ook een bestaande resourcegroep selecteren.
    Selecteer een locatie voor nieuwe resources. Selecteer een locatie in een regio bij u in de buurt of in de buurt van andere services waartoe uw functies toegang hebben.
    Selecteer een hostingabonnement. Kies Verbruik voor hosting van serverloze verbruiksabonnementen, waarbij alleen kosten in rekening worden gebracht wanneer uw functies worden uitgevoerd.
    Selecteer een opslagaccount. Kies Nieuw opslagaccount maken en voer bij de prompt een wereldwijd unieke naam in voor het nieuwe opslagaccount dat wordt gebruikt door uw functie-app. Namen van opslagaccounts moeten tussen de 3 en 24 tekens lang zijn en mogen alleen cijfers en kleine letters bevatten. U kunt ook een bestaand account selecteren.
    Selecteer een Application Insights-resource voor uw app. Kies Nieuwe Application Insights-resource maken en voer bij de prompt een naam in voor het exemplaar dat wordt gebruikt voor het opslaan van runtimegegevens uit uw functies.

    Er wordt een melding weergegeven nadat uw functie-app is gemaakt en het implementatiepakket wordt toegepast. Als u de resultaten van het maken en implementeren wilt weergeven, inclusief de Azure-resources die u hebt gemaakt, selecteert u Uitvoer weergeven in deze melding.

De URL van een door HTTP geactiveerde functie ophalen in Azure

Als u een door HTTP geactiveerde functie wilt aanroepen vanaf een client, hebt u de URL van de functie nodig, die beschikbaar is na de implementatie in uw functie-app. Deze URL bevat alle vereiste functiesleutels. U kunt de extensie gebruiken om deze URL's op te halen voor uw geïmplementeerde functies. Als u alleen de externe functie in Azure wilt uitvoeren, gebruikt u nu de functie Execute van de extensie.

  1. Selecteer F1 om het opdrachtenpalet te openen en zoek en voer de opdracht Azure Functions uit: Functie-URL kopiëren.

  2. Volg de aanwijzingen om uw functie-app in Azure te selecteren en vervolgens de specifieke HTTP-trigger die u wilt aanroepen.

De functie-URL wordt gekopieerd naar het Klembord, samen met de vereiste sleutels die door de code queryparameter zijn doorgegeven. Gebruik een HTTP-hulpprogramma om POST-aanvragen te verzenden of een browser om GET-aanvragen naar de externe functie te verzenden.

Wanneer de extensie de URL van een functie in Azure ophaalt, gebruikt de extensie uw Azure-account om automatisch de sleutels op te halen die nodig zijn om de functie te starten. Meer informatie over functietoegangssleutels. Voor het starten van niet-HTTP geactiveerde functies is het gebruik van de beheersleutel vereist.

Projectbestanden implementeren

U wordt aangeraden continue implementatie zo in te stellen dat uw functie-app in Azure wordt bijgewerkt wanneer u bronbestanden bijwerkt op de locatie van de verbonden bron. U kunt uw projectbestanden ook implementeren vanuit Visual Studio Code. Wanneer u vanuit Visual Studio Code publiceert, kunt u profiteren van de zip-implementatietechnologie.

Belangrijk

Als u implementeert in een bestaande functie-app, wordt de inhoud van die app altijd overschreven in Azure.

  1. Zoek in het gebied Resources van de Azure-activiteit de functie-app-resource die u zojuist hebt gemaakt, klik met de rechtermuisknop op de resource en selecteer Implementeren in functie-app....

  2. Wanneer u wordt gevraagd om eerdere implementaties te overschrijven, selecteert u Implementeren om uw functiecode te implementeren in de nieuwe functie-app-resource.

  3. Nadat de implementatie is voltooid, selecteert u Uitvoer weergeven om de resultaten van het maken en implementeren weer te geven, inclusief de Azure-resources die u hebt gemaakt. Als u de melding mist, selecteert u het belpictogram in de rechterbenedenhoek om deze opnieuw weer te geven.

    Schermopname van het venster Uitvoer weergeven.

Functies uitvoeren

Met de Azure Functions-extensie kunt u afzonderlijke functies uitvoeren. U kunt functies uitvoeren in uw project op uw lokale ontwikkelcomputer of in uw Azure-abonnement.

Voor HTTP-triggerfuncties roept de extensie het HTTP-eindpunt aan. Voor andere soorten triggers roept de extensie beheerders-API's aan om de functie te starten. De berichttekst van de aanvraag die naar de functie is verzonden, is afhankelijk van het triggertype. Wanneer een trigger testgegevens vereist, wordt u gevraagd om gegevens in een specifieke JSON-indeling in te voeren.

Functies uitvoeren in Azure

Voer de volgende stappen uit om een functie uit te voeren in Azure vanuit Visual Studio Code:

  1. Voer in het opdrachtenpalet Azure Functions in: Voer de functie nu uit en selecteer uw Azure-abonnement.

  2. Kies in de lijst uw functie-app in Azure. Als u uw functie-app niet ziet, controleert u of u bent aangemeld bij het juiste abonnement.

  3. Kies in de lijst de functie die u wilt uitvoeren. Typ de berichttekst van de aanvraag in Enter en druk op Enter om dit aanvraagbericht naar uw functie te verzenden.

    De standaardtekst in de aanvraagtekst Invoeren geeft de indeling van de hoofdtekst aan. Als uw functie-app geen functies heeft, wordt er een meldingsfout weergegeven met deze fout.

    Wanneer de functie wordt uitgevoerd in Azure en een antwoord retourneert, wordt in Visual Studio Code een melding weergegeven.

U kunt uw functie ook uitvoeren vanuit het gebied Azure: Functions door het snelmenu te openen voor de functie die u wilt uitvoeren vanuit uw functie-app in uw Azure-abonnement en vervolgens Functie nu uitvoeren... te selecteren.

Wanneer u uw functies uitvoert in Azure vanuit Visual Studio Code, gebruikt de extensie uw Azure-account om automatisch de sleutels op te halen die nodig zijn om de functie te starten. Meer informatie over functietoegangssleutels. Voor het starten van niet-HTTP geactiveerde functies is het gebruik van de beheersleutel vereist.

Functies lokaal uitvoeren

De lokale runtime is dezelfde runtime die als host fungeert voor uw functie-app in Azure. Lokale instellingen worden gelezen uit het local.settings.json-bestand. Als u uw Functions-project lokaal wilt uitvoeren, moet u aan meer vereisten voldoen.

Het project configureren om lokaal uit te voeren

De Functions-runtime maakt intern gebruik van een Azure Storage-account voor alle triggertypen anders dan HTTP en webhooks. U moet dus de sleutel Values.AzureWebJobsStorage instellen op een geldig Azure Storage-account verbindingsreeks.

In deze sectie wordt de Azure Storage-extensie voor Visual Studio Code met Azure Storage Explorer gebruikt om verbinding te maken met en de opslag op te halen verbindingsreeks.

Het opslagaccount instellen verbindingsreeks:

  1. Open Cloud Explorer in Visual Studio, vouw opslagaccount uw opslagaccount> uit en selecteer vervolgens Eigenschappen en kopieer de waarde van de primaire Verbinding maken iontekenreeks.

  2. Open het local.settings.json bestand in uw project en stel de waarde van de AzureWebJobsStorage-sleutel in op de verbindingsreeks die u hebt gekopieerd.

  3. Herhaal de vorige stap om unieke sleutels toe te voegen aan de waardenmatrix voor andere verbindingen die door uw functies zijn vereist.

Zie het bestand Met lokale instellingen voor meer informatie.

Fouten opsporen in functies lokaal

Als u fouten in uw functies wilt opsporen, selecteert u F5. Als Core Tools niet beschikbaar is, wordt u gevraagd deze te installeren. Wanneer Core Tools is geïnstalleerd en wordt uitgevoerd, wordt uitvoer weergegeven in de Terminal. Deze stap is hetzelfde als het uitvoeren van de func start opdracht Core Tools vanuit de Terminal, maar met extra buildtaken en een gekoppeld foutopsporingsprogramma.

Wanneer het project wordt uitgevoerd, kunt u de functie Nu uitvoeren gebruiken... van de extensie om uw functies te activeren zoals u zou doen wanneer het project in Azure wordt geïmplementeerd. Als het project wordt uitgevoerd in de foutopsporingsmodus, worden onderbrekingspunten in Visual Studio Code bereikt zoals u zou verwachten.

  1. Voer in het opdrachtenpalet Azure Functions in : Voer de functie nu uit en kies Lokaal project.

  2. Kies de functie die u wilt uitvoeren in uw project en typ de berichttekst van de aanvraag in de hoofdtekst van de aanvraag invoeren. Druk op Enter om dit aanvraagbericht naar uw functie te verzenden. De standaardtekst in de hoofdtekst van de aanvraag invoeren moet de indeling van de hoofdtekst aangeven. Als uw functie-app geen functies heeft, wordt er een meldingsfout weergegeven met deze fout.

  3. Wanneer de functie lokaal wordt uitgevoerd en nadat het antwoord is ontvangen, wordt er een melding gegenereerd in Visual Studio Code. Informatie over de uitvoering van de functie wordt weergegeven in het deelvenster Terminal .

Sleutels zijn niet vereist bij het lokaal uitvoeren, wat van toepassing is op zowel functiesleutels als sleutels op beheerdersniveau.

Lokaal werken met app-instellingen

Wanneer u in een functie-app in Azure uitvoert, worden instellingen die vereist zijn voor uw functies veilig opgeslagen in app-instellingen. Tijdens lokale ontwikkeling worden deze instellingen in plaats daarvan toegevoegd aan de Values verzameling in het local.settings.json-bestand. Het bestand local.settings.json slaat ook instellingen op die worden gebruikt door lokale ontwikkelhulpprogramma's.

Items in de verzameling in het Values local.settings.json-bestand van uw project zijn bedoeld om items in de toepassingsinstellingen van uw functie-app in Azure te spiegelen.

Deze instellingen worden standaard niet automatisch gemigreerd wanneer het project naar Azure wordt gepubliceerd. Nadat het publiceren is voltooid, krijgt u de mogelijkheid om instellingen te publiceren van local.settings.json naar uw functie-app in Azure. Zie Toepassingsinstellingen publiceren voor meer informatie.

Waarden in Verbinding maken ionStrings worden nooit gepubliceerd.

De waarden voor de instellingen van de functietoepassing kunnen ook in uw code worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.

  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.
  • De instellingen van de functie-app kunnen in uw code ook worden gelezen als omgevingsvariabelen. Zie Omgevingsvariabelen voor meer informatie.

Toepassingsinstellingen in Azure

De instellingen in het local.settings.json-bestand in uw project moeten hetzelfde zijn als de toepassingsinstellingen in de functie-app in Azure. Alle instellingen die u toevoegt aan local.settings.json u moet ook toevoegen aan de functie-app in Azure. Deze instellingen worden niet automatisch geüpload wanneer u het project publiceert. Op dezelfde manier moeten alle instellingen die u in uw functie-app in de portal maakt, worden gedownload naar uw lokale project.

Toepassingsinstellingen publiceren

De eenvoudigste manier om de vereiste instellingen naar uw functie-app in Azure te publiceren, is door de koppeling Uploadinstellingen te gebruiken die wordt weergegeven nadat u uw project hebt gepubliceerd:

Schermopname van het uploaden van toepassingsinstellingen.

U kunt instellingen ook publiceren met behulp van de opdracht Lokale instelling uploaden in het opdrachtenpalet. U kunt afzonderlijke instellingen toevoegen aan toepassingsinstellingen in Azure met behulp van de opdracht Nieuwe instelling toevoegen.

Tip

Sla het local.settings.json bestand op voordat u het publiceert.

Als het lokale bestand is versleuteld, wordt het ontsleuteld, gepubliceerd en opnieuw versleuteld. Als er instellingen zijn met conflicterende waarden op de twee locaties, wordt u gevraagd om te kiezen hoe u wilt doorgaan.

Bekijk bestaande app-instellingen in het gebied Azure: Functions door uw abonnement, uw functie-app en toepassings-Instellingen uit te vouwen.

 Schermopname voor het weergeven van instellingen voor de functie-app in Visual Studio Code.

Instellingen downloaden van Azure

Als u toepassingsinstellingen in Azure hebt gemaakt, kunt u deze downloaden naar uw local.settings.json-bestand met behulp van de opdracht Externe Instellingen downloaden.

Net als bij het uploaden, als het lokale bestand is versleuteld, wordt het ontsleuteld, bijgewerkt en opnieuw versleuteld. Als er instellingen zijn met conflicterende waarden op de twee locaties, wordt u gevraagd om te kiezen hoe u wilt doorgaan.

Binding-extensies installeren

Met uitzondering van HTTP- en timertriggers worden bindingen geïmplementeerd in extensiepakketten.

U moet de extensiepakketten expliciet installeren voor de triggers en bindingen die ze nodig hebben. Het specifieke pakket dat u installeert, is afhankelijk van het procesmodel van uw project.

Voer de opdracht dotnet add package uit in het Terminal-venster om de extensiepakketten te installeren die u nodig hebt in uw project. Deze sjabloon laat zien hoe u een binding toevoegt voor een geïsoleerde procesklassebibliotheek:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

Vervang door <BINDING_TYPE_NAME> de naam van het pakket dat de binding bevat die u nodig hebt. U vindt het gewenste bindingsreferentieartikel in de lijst met ondersteunde bindingen.

Vervang <TARGET_VERSION> in het voorbeeld door een specifieke versie van het pakket, zoals 3.0.0-beta5. Geldige versies worden vermeld op de afzonderlijke pakketpagina's op NuGet.org. De primaire versies die overeenkomen met de huidige Functions-runtime, worden opgegeven in het naslagartikel voor de binding.

C#-script maakt gebruik van extensiebundels.

De eenvoudigste manier om bindingextensies te installeren, is door extensiebundelsin te schakelen. Wanneer u bundels inschakelt, wordt er automatisch een vooraf gedefinieerde set extensiepakketten geïnstalleerd.

Als u extensiebundels wilt inschakelen, opent u het bestand host.json en werkt u de inhoud daarvan zodanig bij dat deze overeenkomt met de volgende code:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.*, 4.0.0)"
    }
}

Als u om een of andere reden geen extensiebundel kunt gebruiken om bindingsextensies voor uw project te installeren, raadpleegt u Expliciet extensies installeren.

Functies bewaken

Wanneer u functies lokaal uitvoert, worden logboekgegevens naar de Terminal-console gestreamd. U kunt ook logboekgegevens ophalen wanneer uw Functions-project wordt uitgevoerd in een functie-app in Azure. U kunt verbinding maken met streaminglogboeken in Azure om bijna realtime logboekgegevens te bekijken. U moet Application Insights inschakelen voor een vollediger inzicht in hoe uw functie-app zich gedraagt.

Streaminglogboeken

Wanneer u een toepassing ontwikkelt, is het vaak handig om logboekinformatie in bijna realtime te zien. U kunt een stroom logboekbestanden bekijken die door uw functies worden gegenereerd. Schakel logboeken uit de opdrachtpallet in met de Azure Functions: Start streaming logs opdracht. Deze uitvoer is een voorbeeld van streaminglogboeken voor een aanvraag naar een door HTTP geactiveerde functie:

Schermopname van uitvoer van streaminglogboeken voor H T T P-trigger.

Zie Streaming-logboeken voor meer informatie.

Analyses van toepassingen

U moet de uitvoering van uw functies bewaken door uw functie-app te integreren met Application Insights. Wanneer u een functie-app maakt in Azure Portal, vindt deze integratie standaard plaats. Wanneer u uw functie-app maakt tijdens het publiceren van Visual Studio, moet u Application Insights zelf integreren. Zie Application Insights-integratie inschakelen voor meer informatie.

Zie Azure Functions bewaken voor meer informatie over bewaking met Application Insights.

C#-scriptprojecten

Standaard worden alle C#-projecten gemaakt als C#-gecompileerde klassebibliotheekprojecten. Als u liever met C#-scriptprojecten werkt, moet u C#-script selecteren als de standaardtaal in de azure Functions-extensie-instellingen:

  1. Selecteer Bestandsvoorkeuren >>Instellingen.

  2. Ga naar User Instellingen> Extensions>Azure Functions.

  3. Selecteer C#Script in Azure Function: Project Language.

Nadat u deze stappen hebt voltooid, bevatten aanroepen naar de onderliggende Core Tools de --csx optie, waarmee C#-scriptbestanden (.csx) worden gegenereerd en gepubliceerd. Wanneer u deze standaardtaal hebt opgegeven, worden alle projecten die u standaard maakt voor C#-scriptprojecten opgegeven. U wordt niet gevraagd om een projecttaal te kiezen wanneer een standaardinstelling is ingesteld. Als u projecten in andere talen wilt maken, moet u deze instelling wijzigen of verwijderen uit het settings.json-bestand van de gebruiker. Nadat u deze instelling hebt verwijderd, wordt u opnieuw gevraagd uw taal te kiezen wanneer u een project maakt.

Naslaginformatie over opdrachtenpalet

De Azure Functions-extensie biedt een handige grafische interface in het gebied voor interactie met uw functie-apps in Azure. Dezelfde functionaliteit is ook beschikbaar als opdrachten in het opdrachtenpalet (F1). Deze Azure Functions-opdrachten zijn beschikbaar:

Azure Functions-opdracht Beschrijving
Nieuwe Instellingen toevoegen Hiermee maakt u een nieuwe toepassingsinstelling in Azure. Zie Toepassingsinstellingen publiceren voor meer informatie. Mogelijk moet u deze instelling ook downloaden naar uw lokale instellingen.
Implementatiebron configureren Verbinding maken uw functie-app in Azure naar een lokale Git-opslagplaats. Zie Continue implementatie voor Azure Functions voor meer informatie.
Verbinding maken naar GitHub-opslagplaats Verbinding maken uw functie-app naar een GitHub-opslagplaats.
Functie-URL kopiëren Hiermee haalt u de externe URL op van een door HTTP geactiveerde functie die wordt uitgevoerd in Azure. Zie De URL van de geïmplementeerde functie ophalen voor meer informatie.
Functie-app maken in Azure Hiermee maakt u een nieuwe functie-app in uw abonnement in Azure. Zie de sectie over het publiceren naar een nieuwe functie-app in Azure voor meer informatie.
Instellingen ontsleutelen Ontsleutelt lokale instellingen die zijn versleuteld door Azure Functions: Versleutel Instellingen.
Functie-app verwijderen Hiermee verwijdert u een functie-app uit uw abonnement in Azure. Wanneer er geen andere apps in het App Service-plan zijn, krijgt u ook de mogelijkheid om dat te verwijderen. Andere resources, zoals opslagaccounts en resourcegroepen, worden niet verwijderd. Als u alle resources wilt verwijderen, moet u in plaats daarvan de resourcegroep verwijderen. Uw lokale project wordt niet beïnvloed.
Functie verwijderen Hiermee verwijdert u een bestaande functie uit een functie-app in Azure. Omdat deze verwijdering geen invloed heeft op uw lokale project, kunt u in plaats daarvan de functie lokaal verwijderen en vervolgens het project opnieuw publiceren.
Proxy verwijderen Hiermee verwijdert u een Azure Functions-proxy uit uw functie-app in Azure. Zie Werken met Azure Functions-proxy's voor meer informatie over proxy's.
Instelling verwijderen Hiermee verwijdert u een functie-app-instelling in Azure. Deze verwijdering heeft geen invloed op instellingen in uw local.settings.json-bestand.
Verbinding met opslagplaats verbreken Hiermee verwijdert u de continue implementatieverbinding tussen een functie-app in Azure en een opslagplaats voor broncodebeheer.
Externe Instellingen downloaden Hiermee downloadt u instellingen uit de gekozen functie-app in Azure in uw local.settings.json-bestand. Als het lokale bestand is versleuteld, wordt het ontsleuteld, bijgewerkt en opnieuw versleuteld. Als er instellingen zijn met conflicterende waarden op de twee locaties, wordt u gevraagd om te kiezen hoe u wilt doorgaan. Zorg ervoor dat u wijzigingen opslaat in uw local.settings.json bestand voordat u deze opdracht uitvoert.
Instellingen bewerken Hiermee wijzigt u de waarde van een bestaande functie-app-instelling in Azure. Deze opdracht heeft geen invloed op instellingen in uw local.settings.json bestand.
Instellingen versleutelen Versleutelt afzonderlijke items in de Values matrix in de lokale instellingen. In dit bestand IsEncrypted wordt ook ingesteld op true, waarmee wordt aangegeven dat de lokale runtime ontsleutelingsinstellingen voordat ze worden gebruikt. Versleutel lokale instellingen om het risico op het lekken van waardevolle informatie te verminderen. In Azure worden toepassingsinstellingen altijd versleuteld opgeslagen.
Functie nu uitvoeren Start handmatig een functie met behulp van beheerders-API's. Deze opdracht wordt gebruikt voor testen, zowel lokaal tijdens foutopsporing als tegen functies die worden uitgevoerd in Azure. Wanneer een functie in Azure wordt gestart, verkrijgt de extensie eerst automatisch een beheerderssleutel, die wordt gebruikt om de externe beheer-API's aan te roepen die functies starten in Azure. De hoofdtekst van het bericht dat naar de API wordt verzonden, is afhankelijk van het type trigger. Voor timertriggers hoeft u geen gegevens door te geven.
Project initialiseren voor gebruik met VS Code Voegt de vereiste Visual Studio Code-projectbestanden toe aan een bestaand Functions-project. Gebruik deze opdracht om te werken met een project dat u hebt gemaakt met behulp van Core Tools.
Azure Functions Core Tools installeren of bijwerken Installeert of werkt Azure Functions Core Tools bij, die wordt gebruikt om functies lokaal uit te voeren.
Opnieuw implementeren Hiermee kunt u projectbestanden opnieuw implementeren vanuit een verbonden Git-opslagplaats naar een specifieke implementatie in Azure. Als u lokale updates opnieuw wilt publiceren vanuit Visual Studio Code, publiceert u uw project opnieuw.
Naam van Instellingen wijzigen Hiermee wijzigt u de sleutelnaam van een bestaande functie-app-instelling in Azure. Deze opdracht heeft geen invloed op instellingen in uw local.settings.json bestand. Nadat u de naam van de instellingen in Azure hebt gewijzigd, moet u deze wijzigingen downloaden in het lokale project.
Opnieuw starten Start de functie-app opnieuw op in Azure. Als u updates implementeert, wordt de functie-app ook opnieuw opgestart.
AzureWebJobsStorage instellen Hiermee stelt u de waarde van de AzureWebJobsStorage toepassingsinstelling in. Deze instelling is vereist voor Azure Functions. Deze wordt ingesteld wanneer een functie-app wordt gemaakt in Azure.
Begin Hiermee start u een gestopte functie-app in Azure.
Streaminglogboeken starten Hiermee worden de streaminglogboeken voor de functie-app in Azure gestart. Gebruik streaminglogboeken tijdens externe probleemoplossing in Azure als u logboekgegevens in bijna realtime wilt zien. Zie Streaming-logboeken voor meer informatie.
Stoppen Hiermee stopt u een functie-app die wordt uitgevoerd in Azure.
Streaminglogboeken stoppen Hiermee stopt u de streaminglogboeken voor de functie-app in Azure.
In-/uitschakelen als site-instelling Wanneer deze optie is ingeschakeld, zorgt u ervoor dat een toepassingsinstelling behouden blijft voor een bepaalde implementatiesite.
Azure Functions Core Tools verwijderen Hiermee verwijdert u Azure Functions Core Tools. Dit is vereist voor de extensie.
Lokale Instellingen uploaden Uploadt instellingen van uw local.settings.json-bestand naar de gekozen functie-app in Azure. Als het lokale bestand is versleuteld, wordt het ontsleuteld, geüpload en opnieuw versleuteld. Als er instellingen zijn met conflicterende waarden op de twee locaties, wordt u gevraagd om te kiezen hoe u wilt doorgaan. Zorg ervoor dat u wijzigingen opslaat in uw local.settings.json bestand voordat u deze opdracht uitvoert.
Doorvoeren weergeven in GitHub Hier ziet u de meest recente doorvoering in een specifieke implementatie wanneer uw functie-app is verbonden met een opslagplaats.
Implementatielogboeken weergeven Hier ziet u de logboeken voor een specifieke implementatie in de functie-app in Azure.

Volgende stappen

Zie Werken met Azure Functions Core Tools voor meer informatie over Azure Functions Core Tools.

Voor meer informatie over het ontwikkelen van functies als .NET-klassebibliotheken raadpleegt u azure Functions C#-referentiemateriaal voor ontwikkelaars. Dit artikel bevat ook koppelingen naar voorbeelden van het gebruik van kenmerken om de verschillende typen bindingen te declareren die worden ondersteund door Azure Functions.