Självstudie: Dirigera anpassade händelser till Azure Relay Hybrid-anslutningar med Azure CLI och Event Grid
Azure Relay hybridanslutningar är en av de händelsehanterare som stöds. Du kan använda hybridanslutningar som händelsehanterare när du behöver bearbeta händelser från program som inte har en offentlig slutpunkt. Dessa program kan finnas i ditt företagsnätverk. I den här artikeln använder du Azure CLI för att skapa ett anpassat ämne, prenumerera på det anpassade ämnet och utlösa händelsen för att visa resultatet. Du skickar händelser till hybridanslutningen.
Kommentar
Om du är nybörjare på Azure Event Grid kan du läsa Vad är Azure Event Grid för att få en översikt över tjänsten innan du går igenom den här självstudien.
Förutsättningar
- Den här artikeln förutsätter att du redan har en hybridanslutning och ett lyssnarprogram. För att komma igång med hybridanslutningar, se Kom igång med Relay hybridanslutningar – .NET eller Kom igång med Relay hybridanslutningar – nod.
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Den här artikeln kräver version 2.0.56 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Skapa en resursgrupp
Event Grid-ämnen är Azure-resurser och måste placeras i en Azure-resursgrupp. Resursgruppen är en logisk samling där Azure-resurser distribueras och hanteras.
Skapa en resursgrupp med kommandot az group create.
I följande exempel skapas en resursgrupp med namnet gridResourceGroup på platsen westus2.
az group create --name gridResourceGroup --location westus2
Skapa en anpassat ämne
Ett Event Grid-ämne innehåller en användardefinierad slutpunkt som du publicerar dina händelser till. I följande exempel skapas det anpassade ämnet i din resursgrupp. Ersätt <topic_name>
med ett unikt namn för ditt anpassade ämne. Event Grid-ämnesnamnet måste vara unikt eftersom det representeras av en DNS-post (Domain Name System).
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Prenumerera på ett anpassat ämne
Du prenumererar på ett Event Grid-ämne för att berätta för Event Grid vilka händelser du vill spåra. I följande exempel prenumererar du på det anpassade ämnet som du skapade och skickar resurs-ID:t för hybridanslutningen för slutpunkten. Hybridanslutnings-ID är i formatet:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>
Följande skript hämtar resurs-ID för relay-namnområdet. Den konstruerar ID:t för hybridanslutningen och prenumererar på ett Event Grid-ämne. Skriptet sätter slutpunktstypen till hybridconnection
och använder hybridanslutning-ID:t för slutpunkten.
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>"
Observera att ett förfallodatum har angetts för prenumerationen.
Skapa program för att bearbeta händelser
Du behöver ett program som kan hämta händelser från hybridanslutningen. Microsoft Azure Event Grid Hybrid Connection Consumer sample for C# utför den här åtgärden. Du har redan slutfört förutsättningsstegen.
Kontrollera att du har Visual Studio 2019 eller senare.
Klona lagringsplatsen till din lokala dator.
Läs in projektet HybridConnectionConsumer i Visual Studio.
I Program.cs byter du ut
<relayConnectionString>
och<hybridConnectionName>
med reläets anslutningssträng och namnet på hybridanslutningen du skapade.Kompilera och kör programmet från Visual Studio.
Viktigt!
Vi använder anslutningssträng för att autentisera till Azure Relay-namnområdet för att hålla självstudien enkel. Vi rekommenderar att du använder Microsoft Entra ID-autentisering i produktionsmiljöer. När du använder ett program kan du aktivera hanterad identitet för programmet och tilldela identiteten en lämplig roll (Azure Relay-ägare, Azure Relay-lyssnare eller Azure Relay-avsändare) på relay-namnområdet. Mer information finns i Autentisera en hanterad identitet med Microsoft Entra-ID för åtkomst till Azure Relay-resurser.
Skicka en händelse till ditt ämne
Nu ska vi utlösa en händelse och se hur Event Grid distribuerar meddelandet till slutpunkten. I den här artikeln visas hur du använder Azure CLI till att utlösa händelsen. Du kan också använda Event Grid publisher-programmet.
Först måste vi ta fram URL och nyckel för det anpassade ämnet. Använd återigen ditt anpassade ämnesnamn för <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)
För att göra den här artikeln enklare använder du exempelhändelsedata för att skicka till det anpassade ämnet. Ett program eller en Azure-tjänst skulle vanligtvis skicka sådana händelsedata. CURL är ett verktyg som skickar HTTP-förfrågningar. I den här artikeln använder du CURL för att skicka händelsen till det anpassade ämnet.
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
Lyssnarprogrammet ska ta emot händelsemeddelandet.
Rensa resurser
Om du planerar att fortsätta arbeta med den här händelsen ska du inte rensa upp bland de resurser som skapades i den här artikeln. I annat fall kan du använda kommandona nedan för att ta bort alla resurser som har skapats i den här artikeln.
az group delete --name gridResourceGroup
Nästa steg
Nu när du vet hur du skapar ämnen och prenumerationer på händelser kan du läsa mer om vad Event Grid kan hjälpa dig med: