Szybki start: kierowanie zdarzeń niestandardowych do usługi Azure Event Hubs przy użyciu interfejsu wiersza polecenia platformy Azure i usługi Event Grid
Usługa Azure Event Grid to wysoce skalowalny i bezserwerowy broker zdarzeń, którego można użyć do integrowania aplikacji przy użyciu zdarzeń. Usługa Event Grid dostarcza zdarzenia do obsługiwanych programów obsługi zdarzeń, a usługa Azure Event Hubs jest jednym z nich. W tym artykule użyjesz interfejsu wiersza polecenia platformy Azure, aby wykonać następujące czynności:
- Tworzy niestandardowy temat usługi Event Grid.
- Utwórz subskrypcję usługi Azure Event Hubs dla tematu niestandardowego.
- Wysyłanie przykładowych zdarzeń do tematu niestandardowego.
- Sprawdź, czy te zdarzenia są dostarczane do centrum zdarzeń.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Tworzenie grupy zasobów
Tematy usługi Event Grid to zasoby platformy Azure i muszą być umieszczone w grupie zasobów platformy Azure. Grupa zasobów to kolekcja logiczna przeznaczona do wdrażania zasobów platformy Azure i zarządzania nimi.
Utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie gridResourceGroup w lokalizacji westus2.
Uwaga
Wybierz pozycję Wypróbuj obok przykładu interfejsu wiersza polecenia, aby uruchomić usługę Cloud Shell w okienku po prawej stronie. Wybierz przycisk Kopiuj , aby skopiować polecenie, wklej je w oknie usługi Cloud Shell, a następnie naciśnij klawisz ENTER, aby uruchomić polecenie.
az group create --name gridResourceGroup --location westus2
Włączanie dostawcy zasobów usługi Event Grid
Jeśli usługa Event Grid nie była wcześniej używana w ramach subskrypcji platformy Azure, może być konieczne zarejestrowanie dostawcy zasobów usługi Event Grid. Uruchom następujące polecenie, aby zarejestrować dostawcę:
az provider register --namespace Microsoft.EventGrid
Ukończenie rejestracji może zająć trochę czasu. Aby sprawdzić stan, uruchom następujące polecenie:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Gdy właściwość
registrationState
uzyska wartośćRegistered
, można kontynuować.
Tworzenie tematu niestandardowego
Temat usługi Event Grid zawiera punkt końcowy zdefiniowany przez użytkownika, do którego są ogłaszane zdarzenia. Poniższy przykład obejmuje tworzenie tematu niestandardowego w grupie zasobów. Zamień nazwę <topic_name>
na unikatową nazwę tematu niestandardowego. Nazwa tematu usługi Event Grid musi być unikatowa, ponieważ jest reprezentowana przez wpis System nazw domen (DNS).
Określ nazwę tematu.
topicname="<TOPIC NAME>"
Uruchom następujące polecenie, aby utworzyć temat.
az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
Tworzenie centrum zdarzeń
Przed subskrybowaniem tematu niestandardowego utwórzmy punkt końcowy dla komunikatu o zdarzeniach. Utworzysz centrum zdarzeń w celu zbierania zdarzeń.
Określ unikatową nazwę przestrzeni nazw usługi Event Hubs.
namespace="<EVENT HUBS NAMESPACE NAME>"
Uruchom następujące polecenia, aby utworzyć przestrzeń nazw usługi Event Hubs i centrum zdarzeń o nazwie
demohub
w tej przestrzeni nazw.hubname=demohub az eventhubs namespace create --name $namespace --resource-group gridResourceGroup az eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup
Subskrybowanie tematu niestandardowego
Subskrybujesz temat usługi Event Grid, aby poinformować usługę Event Grid o zdarzeniach, które chcesz śledzić. Poniższy przykład subskrybuje utworzony temat niestandardowy i przekazuje identyfikator zasobu centrum zdarzeń dla punktu końcowego. Punkt końcowy ma następujący format:
/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>
Poniższy skrypt pobiera identyfikator zasobu centrum zdarzeń i subskrybuje temat usługi Event Grid. Ustawia on typ punktu końcowego na eventhub
i używa identyfikatora centrum dla punktu końcowego.
hubid=$(az eventhubs eventhub show --name $hubname --namespace-name $namespace --resource-group gridResourceGroup --query id --output tsv)
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name subtoeventhub \
--endpoint-type eventhub \
--endpoint $hubid
Konto używane do tworzenia subskrypcji zdarzeń musi mieć dostęp do zapisu w centrum zdarzeń.
Wysyłanie zdarzenia do tematu niestandardowego
Wyzwólmy zdarzenie, aby zobaczyć, jak usługa Event Grid dystrybuuje komunikat do punktu końcowego. Po pierwsze uzyskajmy adres URL i klucz tematu niestandardowego.
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)
Dla uproszczenia czynności opisanych w tym artykule do tematu niestandardowego zostaną wysłane przykładowe dane zdarzenia. Zwykle dane zdarzenia są wysyłane przez aplikację lub usługę platformy Azure. CURL to narzędzie, które wysyła żądania HTTP. W tym artykule do wysłania zdarzenia do tematu niestandardowego jest używane narzędzie CURL. Poniższy przykład wysyła trzy zdarzenia do tematu usługi Event Grid:
for i in 1 2 3
do
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
done
Na stronie Przegląd przestrzeni nazw usługi Event Hubs w witrynie Azure Portal zwróć uwagę, że usługa Event Grid wysłała te trzy zdarzenia do centrum zdarzeń. Ten sam wykres jest widoczny na stronie Przegląd dla demohub
wystąpienia usługi Event Hubs.
Zazwyczaj jest tworzona aplikacja, która pobiera zdarzenia z centrum zdarzeń. Aby utworzyć aplikację, która odbiera komunikaty z centrum zdarzeń, zobacz:
- Wprowadzenie do odbierania komunikatów za pomocą hosta procesora zdarzeń z biblioteki .NET Standard
- Odbieranie zdarzeń z usługi Azure Event Hubs za pomocą języka Java
- Odbieranie zdarzeń z usługi Event Hubs za pomocą usługi Apache Storm
Czyszczenie zasobów
Jeśli zamierzasz kontynuować pracę z tym zdarzeniem, nie usuwaj zasobów utworzonych w tym artykule. W przeciwnym razie użyj poniższego polecenia, aby usunąć zasoby utworzone w ramach tego artykułu.
az group delete --name gridResourceGroup
Następne kroki
Wiesz już, jak tworzyć tematy i subskrypcje zdarzeń. Dowiedz się więcej na temat tego, co może Ci ułatwić usługa Event Grid:
- Event Grid — informacje
- Kierowanie zdarzeń usługi Blob Storage do niestandardowego internetowego punktu końcowego
- Monitorowanie zmian maszyn wirtualnych za pomocą usług Azure Event Grid i Logic Apps
- Przesyłanie strumieniowe danych Big Data do magazynu danych
Zapoznaj się z poniższymi przykładami, aby dowiedzieć się więcej na temat publikowania zdarzeń do usługi Event Grid i korzystania z nich przy użyciu różnych języków programowania.