Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft EdgeMore info about Internet Explorer and Microsoft Edge
Table of contentsExit editor mode

Quickstart: Route custom events to an event hub by using Event Grid and the Azure CLI

Feedback

In this article

In this quickstart, you use the Azure CLI to create an Event Grid custom topic and an Event Hubs subscription for that topic. You then send sample events to the custom topic and verify that those events are delivered to an event hub.

Azure Event Grid is a highly scalable and serverless event broker that you can use to integrate applications via events. Event Grid delivers events to supported event handlers, such as Azure Event Hubs.Event handlers.

If you don't have an Azure account, create afree account before you begin.

Create a resource group

Event Grid topics are Azure resources. Create them in an Azure resource group. The resource group is a logical collection in which Azure resources are deployed and managed.

Create a resource group by using theaz group create command. The following example creates a resource group namedgridResourceGroup in thewestus2 location.

SelectOpen Cloud Shell to open Azure Cloud Shell on the right pane. Select theCopy button to copy the command, paste it in Cloud Shell, and then select theEnter key to run the command.

az group create --name gridResourceGroup --location westus2

Enable the Event Grid resource provider

  1. If this is the first time you're using Event Grid in your Azure subscription, you might need to register the Event Grid resource provider. Run the following command to register the provider:

    az provider register --namespace Microsoft.EventGrid
  2. It might take a moment for the registration to finish. To check the status, run the following command:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"

    WhenregistrationState isRegistered, you're ready to continue.

Create a custom topic

An Event Grid topic provides a user-defined endpoint that you post your events to. The following example creates the custom topic in your resource group.

Replace<TOPIC NAME> with a unique name for your custom topic. The Event Grid topic name must be unique because a Domain Name System (DNS) entry represents it.

  1. Specify a name for the topic:

    topicname="<TOPIC NAME>"
  2. Run the following command to create the topic:

    az eventgrid topic create --name $topicname --location westus2 --resource-group gridResourceGroup

Create an event hub

Before you subscribe to the custom topic, create the endpoint for the event message. You create an event hub for collecting the events.

  1. Specify a unique name for the Event Hubs namespace:

    namespace="<EVENT HUBS NAMESPACE NAME>"
  2. Run the following commands to create an Event Hubs namespace and an event hub nameddemohub in that namespace:

    hubname=demohubaz eventhubs namespace create --name $namespace --resource-group gridResourceGroupaz eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup

Subscribe to a custom topic

You subscribe to an Event Grid topic to tell Event Grid which events you want to track. The following example subscribes to the custom topic that you created. It passes the resource ID of the event hub for the endpoint. The endpoint is in this format:

/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>

The following script gets the resource ID for the event hub and subscribes to an Event Grid topic. It sets the endpoint type toeventhub and uses the event hub ID for the endpoint.

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

The account that creates the event subscription must have write access to the event hub.

Send an event to your custom topic

Trigger an event to see how Event Grid distributes the message to your endpoint. First, get the URL and key for the custom topic:

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)

For simplicity, this article uses sample event data to send to the custom topic. Typically, an application or an Azure service would send the event data.

The cURL tool sends HTTP requests. In this article, you use cURL to send the event to the custom topic. The following example sends three events to the Event Grid topic:

for i in 1 2 3do   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" $endpointdone

In the Azure portal, theOverview page for your Event Hubs namespace shows that Event Grid sent those three events to the event hub. You see the same chart on theOverview page for thedemohub Event Hubs instance.

Screenshot that shows the portal page with an incoming message count of 3.

Typically, you create an application that retrieves event messages from the event hub. For more information, see:

Clean up resources

If you plan to continue working with this custom topic and subscription, don't remove the resources that you created in this article. Otherwise, use the following command to delete the resources:

az group delete --name gridResourceGroup

Related content

Now that you know how to create topics and event subscriptions, learn more about what Event Grid can help you do:

To learn about publishing events to, and consuming events from, Event Grid by using various programming languages, see the following samples:


Feedback

Was this page helpful?

YesNoNo

Need help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Suggest a fix?

  • Last updated on

In this article

Was this page helpful?

YesNo
NoNeed help with this topic?

Want to try using Ask Learn to clarify or guide you through this topic?

Suggest a fix?