Självstudie: Dirigera anpassade händelser till Azure Relay Hybrid-anslutningar med Azure CLI och Event Grid

Azure Event Grid är en händelsetjänst för molnet. 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.

Förutsättningar

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

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

  1. Kontrollera att du har Visual Studio 2019 eller senare.

  2. Klona lagringsplatsen till din lokala dator.

  3. Läs in projektet HybridConnectionConsumer i Visual Studio.

  4. I Program.cs byter du ut <relayConnectionString> och <hybridConnectionName> med reläets anslutningssträng och namnet på hybridanslutningen du skapade.

  5. Kompilera och kör programmet från Visual Studio.

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 förenkla den här artikeln skickar du exempelhändelsedata 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: