Uw code op aanvraag uitvoeren met Azure Functions
Nu we een functie-app hebben gemaakt, gaan we kijken hoe we een functie kunnen bouwen, configureren en uitvoeren. We voeren onze functie uit in de volgende oefening, dus u hoeft geen taken in deze eenheid uit te voeren.
Triggers
Functies worden gestuurd door gebeurtenissen, wat betekent dat ze worden uitgevoerd als reactie op een gebeurtenis. Het type gebeurtenis waarmee een functie wordt gestart, wordt een trigger genoemd. Elke functie moet worden geconfigureerd met precies één trigger.
U kunt de uitvoering van de functie activeren met behulp van HTTP-aanvragen, een geplande timer en gebeurtenissen van de volgende Azure-services:
Azure-service | Beschrijving van de trigger |
---|---|
Blob Storage | Start een functie wanneer een nieuwe of bijgewerkte blob wordt gedetecteerd. |
Azure Cosmos DB | Een functie starten wanneer invoegingen en updates worden gedetecteerd. |
Event Grid | Start een functie wanneer een gebeurtenis wordt ontvangen van Event Grid. |
Event Hubs | Hiermee start u een functie wanneer een gebeurtenis wordt ontvangen van Event Hubs. |
Queue Storage | Start een functie wanneer een nieuw item in een wachtrij wordt ontvangen. Het wachtrijbericht wordt geleverd als invoer voor de functie. |
Service Bus | Start een functie als reactie op berichten uit een Service Bus-wachtrij. |
Bindingen
Een binding is een declaratieve manier om gegevens en services te verbinden met uw functie. Bindingen communiceren met verschillende gegevensbronnen, wat betekent dat u de code in uw functie niet hoeft te schrijven om verbinding te maken met gegevensbronnen en verbindingen te beheren. Het platform handelt die complexiteit voor u af als onderdeel van de bindingcode. Elke binding heeft een richting: uw code leest gegevens uit invoerbindingen en schrijft gegevens naar uitvoerbindingen . Elke functie kan nul of meer bindingen voor het beheren van de invoer- en uitvoergegevens die worden verwerkt door de functie.
Een trigger is een type invoerbinding met de mogelijkheid om de uitvoering van bepaalde code te initiëren.
Azure biedt een groot aantal bindingen om verbinding te maken met verschillende opslag- en berichtenservices.
Een voorbeeldbinding definiëren
Laten we eens kijken naar een voorbeeld van het configureren van een functie met een invoerbinding (trigger) en een uitvoerbinding. Stel dat we een nieuwe rij naar Azure Table Storage willen schrijven wanneer er een nieuw bericht wordt weergegeven in Azure Queue Storage. Dit scenario kan worden geïmplementeerd met behulp van een Azure Queue Storage-trigger en een Azure Table Storage-uitvoerbinding.
Het volgende fragment is het bestand function.json voor dit scenario.
{
"bindings": [
{
"name": "order",
"type": "queueTrigger",
"direction": "in",
"queueName": "myqueue-items",
"connection": "MY_STORAGE_ACCT_APP_SETTING"
},
{
"name": "$return",
"type": "table",
"direction": "out",
"tableName": "outTable",
"connection": "MY_TABLE_STORAGE_ACCT_APP_SETTING"
}
]
}
Onze JSON-configuratie geeft aan dat onze functie wordt geactiveerd wanneer een bericht wordt toegevoegd aan een wachtrij met de naam myqueue-items. De retourwaarde van onze functie wordt vervolgens geschreven naar outTable in Azure Table Storage.
Voor PowerShell-functies wordt er expliciet naar uitvoerbindingen geschreven met de cmdlet Push-OutputBinding
.
In dit voorbeeld ziet u een vereenvoudigd beeld van hoe bindingen voor een functie worden geconfigureerd. We kunnen de uitvoer wijzigen in een e-mailbericht met behulp van een SendGrid-binding of een gebeurtenis in een Service Bus plaatsen om een ander onderdeel in onze architectuur op de hoogte te stellen. We kunnen zelfs meerdere uitvoerbindingen hebben om gegevens naar verschillende services te pushen.
Tip
Als u de inhoud van function.json in Azure Portal wilt weergeven en bewerken, selecteert u de functie-app op de startpagina en selecteert u in het deelvenster JSON-weergave. In de weergave Resource JSON worden de resource-id en de bewerkbare JSON-code weergegeven. Als u de JSON-weergave wilt sluiten, selecteert u de X in de rechterbovenhoek van het deelvenster.
Niet alle talen die door Functions worden ondersteund, gebruiken het function.json-bestand om functies te definiëren.
Een functie maken in Azure Portal
Azure Functions heeft vooraf gedefinieerde functiesjablonen, die zijn gebaseerd op een specifiek type trigger. Met deze sjablonen kunt u in uw gekozen taal eenvoudig aan de slag met het maken van uw eerste functie.
Deze module wordt niet ondersteund voor alle talen die door Functions worden ondersteund en de portal zelf biedt geen ondersteuning voor het maken van functies in alle talen die door Functions worden ondersteund.
Voor ondersteunde talen die gebruikmaken van het function.json-bestand om functies te definiëren, kunt u deze functies rechtstreeks in Azure Portal maken en bewerken. Deze door de portal ondersteunde talen zijn: JavaScript, PowerShell, Python en C#Script (.csx). Talen die functies rechtstreeks in de code zelf definiëren, moeten buiten de portal worden ontwikkeld en in Azure worden geïmplementeerd. Deze niet-portal ondersteunde talen zijn: C#, Java, Python (v2-programmeermodel) en JavaScript/TypeScript (Node.js v4-programmeermodel).
Functiesjablonen
Wanneer u uw eerste functie in de portal maakt, kunt u een vooraf gedefinieerde trigger voor uw functie selecteren. Op basis van uw selecties genereert Azure standaardcode en configuratiegegevens, zoals het maken van een vermelding in het gebeurtenislogboek wanneer invoergegevens worden ontvangen.
Als u een sjabloon selecteert in het deelvenster Functie toevoegen, hebt u eenvoudig toegang tot de meest voorkomende ontwikkelomgevingen, triggers en afhankelijkheden. Wanneer u een functie maakt in Azure Portal, kunt u kiezen uit meer dan 20 sjablonen. Nadat u de code hebt gemaakt, kunt u de code verder aanpassen.
Navigeer naar uw functie en de bijbehorende bestanden
Wanneer u een functie maakt op basis van een sjabloon, worden er verschillende bestanden gemaakt, waaronder een configuratiebestand, function.json en een broncodebestand, index.js.
U kunt functies voor uw functie-app maken of bewerken door Functies te selecteren onder de categorie Functies in het menu Functie-app.
Wanneer u een functie selecteert die u in uw functie-app hebt gemaakt, wordt het deelvenster Functie geopend. Door Code + Test te selecteren in het menu Functie, hebt u toegang tot acties op de opdrachtbalk om de code te testen en uit te voeren, om wijzigingen die u aanbrengt op te slaan of te negeren, of om de gepubliceerde URL te verkrijgen. Als u Test/Uitvoeren selecteert op de opdrachtbalk, kunt u use cases uitvoeren voor aanvragen die queryreeksen en -waarden bevatten. Het pad van de functie boven het codevak geeft de naam weer van het bestand dat is geopend. U kunt een specifiek bestand selecteren in de vervolgkeuzelijst om te testen of te bewerken, bijvoorbeeld function.json.
In de vorige afbeelding heeft het deelvenster de tabbladen Invoer en Uitvoer. Als u het tabblad Invoer selecteert, kunt u de functie bouwen en testen door queryparameters toe te voegen en waarden op te geven voor uw querytekenreeks. Op het tabblad Uitvoer worden de resultaten van de aanvraag weergegeven.
Uw Azure-functie testen
Nadat u een functie in de portal hebt gemaakt, wilt u deze testen. Er zijn twee benaderingen:
- Testen in de portal
- Handmatig uitvoeren
In Azure Portal testen
De portal biedt tevens een handige manier om uw functies te testen. Zoals eerder beschreven in de schermopname, kunt u in dit deelvenster Uitvoeren selecteren. De resultaten worden automatisch weergegeven op het tabblad Uitvoer en het deelvenster Logboeken wordt geopend om de status weer te geven.
Functie handmatig uitvoeren
U kunt een functie starten door de geconfigureerde trigger handmatig te activeren. Als u bijvoorbeeld een HTTP-trigger gebruikt, kunt u deze HTTP-testhulpprogramma's gebruiken om een HTTP-aanvraag naar uw functie-eindpunt-URL te initiëren:
- Visual Studio Code met een extensie van Visual Studio Marketplace
- Invoke-RestMethod-
- Microsoft Edge - Hulpprogramma voor netwerkconsole
- Bruno
- curl
Let op
Voor scenario's waarin u gevoelige gegevens hebt, zoals referenties, geheimen, toegangstokens, API-sleutels en andere vergelijkbare informatie, moet u een hulpprogramma gebruiken waarmee uw gegevens worden beveiligd. Neem de benodigde beveiligingsfuncties op, een hulpprogramma dat offline of lokaal werkt, synchroniseert uw gegevens niet naar de cloud en vereist niet dat u zich aanmeldt bij een onlineaccount. Op deze manier vermindert u het risico dat gevoelige gegevens openbaar worden gemaakt voor het publiek.
U kunt het URL-eindpunt van een HTTP-trigger ophalen door functie-URL ophalen te selecteren op de pagina functiedefinitie in de portal.
Dashboard bewaking en Application Insights
De mogelijkheid om uw functies te bewaken is essentieel tijdens de ontwikkeling en productie. Azure Portal biedt een bewakingsdashboard dat u inschakelt door Application Insights-integratie in te schakelen. Selecteer Application Insights in het menu Functie-app onder Instellingen, selecteer Application Insights inschakelen en selecteer Vervolgens Toepassen. Selecteer Ja in het dialoogvenster. Het Application Insights-dashboard biedt een snelle manier om de geschiedenis van functiebewerkingen weer te geven door de tijdstempel, resultaatcode, duur en bewerkings-id weer te geven die door Application Insights is ingevuld.
Deelvenster Streaminglogboeken
Nadat u Application Insights hebt ingeschakeld in Azure Portal, kunt u logboekregistratie-instructies toevoegen aan uw functie voor foutopsporing. De aangeroepen methoden voor elke taal worden doorgegeven aan een 'logboekregistratie'-object, dat kan worden gebruikt om logboekgegevens toe te voegen aan het deelvenster Logboeken in het deelvenster Code en test bij het uitvoeren van een test.
Schrijf naar logboeken vanuit uw code met behulp van de log
methode op het context
object, die wordt doorgegeven aan de handler. In het volgende voorbeeld wordt naar het standaardlogboekniveau geschreven (informatie):
context.log('Enter your logging statement here');
Schrijf naar logboeken vanuit uw code met behulp van de Write-Host
cmdlet, zoals wordt weergegeven in het volgende voorbeeld:
Write-Host "Enter your logging statement here"
Fouten, fouten, waarschuwingen en afwijkingen
U kunt metrische gegevens of opties uit de categorie Onderzoeken in het menu Functie gebruiken om prestaties te bewaken, fouten te diagnosticeren of tientallen vooraf gedefinieerde werkmappen te configureren om uw functie-app te beheren. Alles van compilatiefouten en waarschuwingen in de code tot gebruiksstatistieken per rol.