Delen via


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

  • 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.

  1. Zorg ervoor dat u Visual Studio 2019 of hoger hebt.

  2. Kloon de opslagplaats naar uw lokale computer.

  3. Laad het project HybridConnectionConsumer in Visual Studio.

  4. Vervang in Program.cs <relayConnectionString> en <hybridConnectionName> door de relaytekenreeks en de naam van de hybride verbinding die u hebt gemaakt.

  5. 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: