Zelfstudie: Aangepaste gebeurtenissen routeren naar hybride Azure Relay-verbindingen met Azure CLI en Event Grid
Azure Relay Hybrid Connections is een van de ondersteunde gebeurtenis-handlers. U gebruikt hybride verbindingen als gebeurtenis-handler wanneer u gebeurtenissen uit toepassingen moet verwerken die geen openbaar eindpunt hebben. Deze toepassingen bevinden zich mogelijk in uw bedrijfsnetwerk. In dit artikel gebruikt u de Azure CLI om een aangepast onderwerp te maken, u op het aangepaste onderwerp te abonneren en de gebeurtenis te activeren om het resultaat weer te geven. U verstuurt de gebeurtenissen naar de hybride verbinding.
Notitie
Als u niet eerder met Azure Event Grid bent, raadpleegt u Wat is Azure Event Grid voor een overzicht van de service voordat u deze zelfstudie doorloopt.
Vereisten
- In dit artikel wordt ervan uitgegaan dat u al een hybride verbinding en een listener-toepassing hebt. Zie Aan de slag met Relay Hybrid Connections - .NET of Aan de slag met Relay Hybrid Connections - knooppunt als u wilt beginnen met hybride verbindingen.
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
- Voor dit artikel is versie 2.0.56 of hoger van Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
Een brongroep maken
Event Grid-onderwerpen zijn Azure-resources en moeten in een Azure-resourcegroep worden geplaatst. De resourcegroep is een logische verzameling waarin Azure-resources worden geïmplementeerd en beheerd.
Een resourcegroep maken met de opdracht az group create.
In het volgende voorbeeld wordt een resourcegroep met de naam gridResourceGroup gemaakt op de locatie westus2.
az group create --name gridResourceGroup --location westus2
Een aangepast onderwerp maken
Een Event Grid-onderwerp biedt een door de gebruiker gedefinieerd eindpunt waarnaar u uw gebeurtenissen plaatst. In het volgende voorbeeld wordt het aangepaste onderwerp in uw resourcegroep gemaakt. Vervang <topic_name>
door een unieke naam voor uw aangepaste onderwerp. De Event Grid-onderwerpnaam moet uniek zijn omdat deze wordt vertegenwoordigd door een DNS-vermelding (Domain Name System).
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Abonneren op een aangepast onderwerp
U abonneert u op een Event Grid-onderwerp om Event Grid te vertellen welke gebeurtenissen u wilt bijhouden. In het volgende voorbeeld wordt geabonneerd op het aangepaste onderwerp dat u hebt gemaakt en wordt de resource-id van de hybride verbinding voor het eindpunt doorgegeven. De id van hybride verbinding heeft deze indeling:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>
Met het volgende script wordt de resource-id van de relay-naamruimte opgehaald. Hiermee wordt de id voor de hybride verbinding samengesteld en wordt u geabonneerd op een Event Grid-onderwerp. Het script stelt het type eindpunt in op hybridconnection
en de id van de hybride verbinding wordt gebruikt voor het eindpunt.
relaynsname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>
relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint-type hybridconnection \
--endpoint $hybridid \
--expiration-date "<yyyy-mm-dd>"
U ziet dat er een vervaldatum is ingesteld voor het abonnement.
Toepassing maken om gebeurtenissen te verwerken
U hebt een toepassing nodig die gebeurtenissen uit de hybride verbinding kan ophalen. Het voorbeeld van een hybride verbindingsconsumer voor C# van Microsoft Azure Event Grid voert die bewerking uit. U hebt de vereiste stappen al uitgevoerd.
Zorg ervoor dat u Visual Studio 2019 of hoger hebt.
Kloon de opslagplaats naar uw lokale computer.
Laad het project HybridConnectionConsumer in Visual Studio.
Vervang in Program.cs
<relayConnectionString>
en<hybridConnectionName>
door de relaytekenreeks en de naam van de hybride verbinding die u hebt gemaakt.Compileer de toepassing en voer deze uit vanuit Visual Studio.
Belangrijk
We gebruiken verbindingsreeks om te verifiëren bij Azure Relay-naamruimte om de zelfstudie eenvoudig te houden. U wordt aangeraden Microsoft Entra ID-verificatie te gebruiken in productieomgevingen. Wanneer u een toepassing gebruikt, kunt u beheerde identiteit voor de toepassing inschakelen en de identiteit toewijzen aan een geschikte rol (Azure Relay-eigenaar, Azure Relay-listener of Azure Relay-afzender) in de Relay-naamruimte. Zie Een beheerde identiteit verifiëren met Microsoft Entra ID voor toegang tot Azure Relay-resources voor meer informatie.
Een gebeurtenis verzenden naar het onderwerp
We activeren een gebeurtenis om te zien hoe het bericht via Event Grid naar het eindpunt wordt gedistribueerd. In dit artikel wordt beschreven hoe u Azure CLI kunt gebruiken om de gebeurtenis te activeren. U kunt ook de uitgeverstoepassing van Event Grid gebruiken.
Eerst gaan we de URL en de sleutel voor het aangepaste onderwerp ophalen. Gebruik opnieuw de naam van het aangepaste onderwerp voor <topic_name>
.
endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
Ter vereenvoudiging van dit artikel gebruikt u voorbeeldgebeurtenisgegevens om naar het aangepaste onderwerp te verzenden. Meestal worden de gebeurtenisgegevens verzonden via een toepassing of Azure-service. CURL is een hulpprogramma waarmee HTTP-aanvragen worden verzonden. In dit artikel gebruiken we CURL om de gebeurtenis naar het aangepaste onderwerp te verzenden.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Uw listener-toepassing moet het gebeurtenisbericht ontvangen.
Resources opschonen
Als u verder wilt werken met deze gebeurtenis, schoon dan de resources die u in dit artikel hebt gemaakt, niet op. Gebruik anders de volgende opdracht om de resources te verwijderen die u in dit artikel hebt gemaakt.
az group delete --name gridResourceGroup
Volgende stappen
U weet nu hoe u onderwerpen maakt en hoe u zich abonneert op een gebeurtenis. Kijk waar Event Grid u nog meer bij kan helpen:
- Over Event Grid
- Blob Storage-gebeurtenissen naar een aangepast eindpunt op het web routeren
- Monitor virtual machine changes with Azure Event Grid and Logic Apps (Wijzigingen in virtuele machines bewaken met Azure Event Grid en Logic Apps)
- Big data streamen naar een datawarehouse