Werken met Event Grid-triggers en -bindingen in Azure Functions
Azure Functions biedt ingebouwde integratie met Azure Event Grid met behulp van triggers en bindingen. In dit artikel leest u hoe u uw Event Grid-trigger en -bindingen configureert en lokaal evalueert. Zie een van de volgende naslagartikelen voor meer informatie over event grid-trigger- en uitvoerbindingsdefinities en -voorbeelden:
- Overzicht van Azure Event Grid-bindingen
- Azure Event Grid-trigger voor Azure Functions
- Azure Event Grid-uitvoerbinding voor Azure Functions
Gebeurtenisabonnementen
Als u HTTP-aanvragen voor Event Grid wilt ontvangen, hebt u een abonnement nodig op gebeurtenissen die door Event Grid worden gegenereerd. Gebeurtenisabonnementen geven de eindpunt-URL op die de functie aanroept. Wanneer u een gebeurtenisabonnement maakt op het tabblad Integratie van uw functie in Azure Portal, wordt de URL voor u opgegeven. Wanneer u programmatisch een gebeurtenisabonnement maakt of wanneer u het gebeurtenisabonnement maakt vanuit Event Grid, moet u het eindpunt opgeven. De eindpunt-URL bevat een systeemsleutel die u moet verkrijgen bij REST API's van functions-beheerders.
Url van webhookeindpunt
Het URL-eindpunt voor uw door Event Grid geactiveerde functie is afhankelijk van de versie van de Functions-runtime. In het volgende voorbeeld ziet u het versiespecifieke URL-patroon:
https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}
Notitie
Er is een versie van de Blob Storage-trigger die ook gebeurtenisabonnementen gebruikt. De eindpunt-URL voor dit type Blob Storage-trigger heeft een pad van /runtime/webhooks/blobs
, terwijl het pad voor een Event Grid-trigger zou zijn /runtime/webhooks/EventGrid
. Zie Trigger voor een blobcontainer voor een vergelijking van opties voor het verwerken van blobs.
Systeemsleutel
Het URL-eindpunt dat u maakt, bevat de waarde van de systeemsleutel. De systeemsleutel is een autorisatiesleutel die moet worden opgenomen in de eindpunt-URL voor een Event Grid-trigger. In de volgende sectie wordt uitgelegd hoe u de systeemsleutel kunt ophalen.
U kunt de systeemsleutel ophalen met behulp van de volgende API (HTTP GET):
http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}
Deze REST API is een beheerders-API, dus hiervoor is de hoofdsleutel van uw functie-app vereist. Verwar de systeemsleutel (voor het aanroepen van een Event Grid-triggerfunctie) niet met de hoofdsleutel (voor het uitvoeren van beheertaken in de functie-app). Wanneer u zich abonneert op een Event Grid-onderwerp, moet u de systeemsleutel gebruiken.
Hier volgt een voorbeeld van het antwoord dat de systeemsleutel levert:
{
"name": "eventgridextensionconfig_extension",
"value": "{the system key for the function}",
"links": [
{
"rel": "self",
"href": "{the URL for the function, without the system key}"
}
]
}
U kunt de hoofdsleutel voor uw functie-app ophalen op het tabblad Instellingen van de functie-app in de portal.
Belangrijk
De hoofdsleutel biedt beheerderstoegang tot uw functie-app. Deel deze sleutel niet met derden of distribueer deze niet in systeemeigen clienttoepassingen.
Zie autorisatiesleutels in het naslagartikel voor HTTP-triggers voor meer informatie.
Een gebeurtenisabonnement maken
U kunt een gebeurtenisabonnement maken vanuit Azure Portal of met behulp van de Azure CLI.
Voor functies die u in Azure Portal ontwikkelt met de Event Grid-trigger, selecteert u Integratie en kiest u vervolgens De Event Grid-trigger en selecteert u Een Event Grid-abonnement maken.
Wanneer u deze koppeling selecteert, wordt de pagina Gebeurtenisabonnement maken geopend met het huidige triggereindpunt dat al is gedefinieerd.
Zie Aangepaste gebeurtenis maken - Azure Portal in de Event Grid-documentatie voor meer informatie over het maken van abonnementen met behulp van Azure Portal.
Zie de quickstart voor Blob Storage of de andere Event Grid-quickstarts voor meer informatie over het maken van een abonnement.
Lokaal testen met viewer-web-app
Als u een Event Grid-trigger lokaal wilt testen, moet u HTTP-aanvragen van Event Grid ophalen die afkomstig zijn van hun oorsprong in de cloud naar uw lokale computer. Een manier om dat te doen is door aanvragen online vast te leggen en deze handmatig opnieuw te verzenden op uw lokale computer:
- Maak een viewer-web-app waarmee gebeurtenisberichten worden vastgelegd.
- Maak een Event Grid-abonnement waarmee gebeurtenissen naar de viewer-app worden verzonden.
- Genereer een aanvraag en kopieer de hoofdtekst van de aanvraag uit de viewer-app.
- Plaats de aanvraag handmatig op de localhost-URL van uw Event Grid-triggerfunctie.
Wanneer u klaar bent met testen, kunt u hetzelfde abonnement voor productie gebruiken door het eindpunt bij te werken. Gebruik de az eventgrid event-subscription update
Azure CLI-opdracht.
Een viewer-web-app maken
Ter vereenvoudiging van het vastleggen van gebeurtenisberichten kunt u een vooraf gebouwde web-app implementeren waarin de gebeurtenisberichten worden weergegeven. De geïmplementeerde oplossing omvat een App Service-plan, een App Service-web-app en broncode van GitHub.
Selecteer Implementeren in Azure om de oplossing voor uw abonnement te implementeren. Geef in Azure Portal waarden op voor de parameters.
De implementatie kan enkele minuten duren. Controleer of uw web-app wordt uitgevoerd nadat de implementatie is voltooid. Navigeer in een webbrowser naar: https://<your-site-name>.azurewebsites.net
De site wordt weergegeven, maar er zijn nog geen gebeurtenissen op gepubliceerd.
Een Event Grid-abonnement maken
Maak een Event Grid-abonnement van het type dat u wilt testen en geef deze de URL van uw web-app als eindpunt voor gebeurtenismeldingen. Het eindpunt voor uw web-app moet het achtervoegsel /api/updates/
bevatten. De volledige URL is dus https://<your-site-name>.azurewebsites.net/api/updates
Zie Aangepaste gebeurtenis maken - Azure Portal in de Event Grid-documentatie voor meer informatie over het maken van abonnementen met behulp van Azure Portal.
Een aanvraag genereren
Activeer een gebeurtenis waarmee HTTP-verkeer naar het eindpunt van uw web-app wordt gegenereerd. Als u bijvoorbeeld een blobopslagabonnement hebt gemaakt, uploadt of verwijdert u een blob. Wanneer een aanvraag wordt weergegeven in uw web-app, kopieert u de hoofdtekst van de aanvraag.
De aanvraag voor abonnementsvalidatie wordt eerst ontvangen; negeer alle validatieaanvragen en kopieer de gebeurtenisaanvraag.
Handmatig de aanvraag plaatsen
Voer de Event Grid-functie lokaal uit. De Content-Type
en aeg-event-type
kopteksten moeten handmatig worden ingesteld, terwijl alle andere waarden standaard kunnen worden ingesteld.
Gebruik een hulpprogramma zoals Postman of curl om een HTTP POST-aanvraag te maken:
Stel een
Content-Type: application/json
koptekst in.Stel een
aeg-event-type: Notification
koptekst in.Plak de RequestBin-gegevens in de hoofdtekst van de aanvraag.
Plaats deze op de URL van uw Event Grid-triggerfunctie.
De functionName
parameter moet de naam zijn die is opgegeven in het FunctionName
kenmerk.
In de volgende schermafbeeldingen ziet u de headers en aanvraagbody in Postman:
De Event Grid-triggerfunctie wordt uitgevoerd en toont logboeken die vergelijkbaar zijn met het volgende voorbeeld:
Volgende stappen
Zie de volgende artikelen voor meer informatie over Event Grid met Functions:
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort: Gedurende 2024 worden GitHub Issues uitgefaseerd als het feedbackmechanisme voor inhoud. Dit wordt vervangen door een nieuw feedbacksysteem. Ga voor meer informatie naar:Feedback verzenden en bekijken voor