Gyors útmutató: Egyéni események átirányítása webes végpontra a Azure Portal és Event GridQuickstart: Route custom events to web endpoint with the Azure portal and Event Grid

Az Azure Event Grid egy felhőalapú eseménykezelési szolgáltatás.Azure Event Grid is an eventing service for the cloud. Ebben a cikkben létrehozunk egy egyéni témakört az Azure Portallal, feliratkozunk az egyéni témakörre, majd kiváltjuk az eseményt az eredmény megtekintéséhez.In this article, you use the Azure portal to create a custom topic, subscribe to the custom topic, and trigger the event to view the result. Általában olyan végpontoknak szoktunk eseményeket küldeni, amelyek eseményadatokat dolgoznak fel és műveleteket hajtanak végre.Typically, you send events to an endpoint that processes the event data and takes actions. A cikk egyszerűsítése érdekében azonban az eseményeket egy olyan webalkalmazásnak küldjük el, amely az üzenetek gyűjtésével és megjelenítésével foglalkozik.However, to simplify this article, you send the events to a web app that collects and displays the messages.

A folyamat végén látni fogja, hogy a rendszer elküldte az eseményadatokat a webalkalmazásnak.When you're finished, you see that the event data has been sent to the web app.

Eredmények megtekintése

Megjegyzés

A cikk frissítve lett az Azure PowerShell új Az moduljának használatával.This article has been updated to use the new Azure PowerShell Az module. Dönthet úgy is, hogy az AzureRM modult használja, amely továbbra is megkapja a hibajavításokat, legalább 2020 decemberéig.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Ha többet is meg szeretne tudni az új Az modul és az AzureRM kompatibilitásáról, olvassa el az Azure PowerShell új Az moduljának ismertetését.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az Az modul telepítési útmutatását az Azure PowerShell telepítését ismertető cikkben találja.For Az module installation instructions, see Install Azure PowerShell.

Ha nem rendelkezik Azure-előfizetéssel, a Kezdés előtt hozzon létre egy ingyenes fiókot .If you don't have an Azure subscription, create a free account before you begin.

Event Grid erőforrás-szolgáltató engedélyezéseEnable Event Grid resource provider

Ha még nem használta korábban az Event Gridet az Azure-előfizetésében, lehetséges, hogy regisztrálnia kell az Event Grid erőforrás-szolgáltatót.If you haven't previously used Event Grid in your Azure subscription, you may need to register the Event Grid resource provider.

Az Azure Portalon:In the Azure portal:

  1. Válassza az Előfizetések lehetőséget.Select Subscriptions.
  2. Válassza ki az Event Gridhez használt előfizetést.Select the subscription you're using for Event Grid.
  3. A Beállítások területen válassza az Erőforrás-szolgáltatók lehetőséget.Under Settings, select Resource providers.
  4. Keresse ki a Microsoft.EventGrid elemet.Find Microsoft.EventGrid.
  5. Ha nincs regisztrálva, válassza a Regisztrálás lehetőséget.If not registered, select Register.

Lehetséges, hogy a regisztráció végrehajtása eltart néhány pillanatig.It may take a moment for the registration to finish. Válassza a Frissítés lehetőséget az állapotfrissítéshez.Select Refresh to update the status. Ha az Állapot értéke Regisztrált, folytathatja.When Status is Registered, you're ready to continue.

Egyéni témakör létrehozásaCreate a custom topic

Az Event Grid-témakörök egy felhasználó által meghatározott végpontot biztosítanak, amelyben közzéteheti az eseményeket.An event grid topic provides a user-defined endpoint that you post your events to.

  1. Jelentkezzen be az Azure portálra.Sign in to Azure portal.

  2. Válassza a minden szolgáltatás lehetőséget a bal oldali navigációs menüben, keresse meg a Event Grid, és válassza ki Event Grid témákat.Select All services on the left navigational menu, search for Event Grid, and select Event Grid Topics.

    Event Grid témakörök kiválasztása

  3. A Event Grid témakörök lapon válassza a + Hozzáadás lehetőséget az eszköztáron.On the Event Grid Topics page, select + Add on the toolbar.

    Event Grid témakör hozzáadása gomb

  4. A témakör létrehozása lapon kövesse az alábbi lépéseket:On the Create Topic page, follow these steps:

    1. Adjon egyedi nevet az egyéni témakörnek.Provide a unique name for the custom topic. A témakör nevének egyedinek kell lennie, mert a nevet egy DNS-bejegyzés képviseli.The topic name must be unique because it's represented by a DNS entry. Ne a képen látható nevet használja.Don't use the name shown in the image. Ehelyett hozzon létre a saját nevét – kell 3 – 50 karakter hosszúságú lehet, és tartalmaznia csak a-z, A-Z, 0-9, értékek és a "-".Instead, create your own name - it must be between 3-50 characters and contain only values a-z, A-Z, 0-9, and "-".

    2. Jelölje ki az Azure-előfizetést.Select your Azure subscription.

    3. Válasszon ki egy meglévő erőforráscsoportot, vagy válassza az új létrehozásalehetőséget, és adja meg az erőforráscsoport nevét .Select an existing resource group or select Create new, and enter a name for the resource group.

    4. Válassza ki az Event Grid-témakör helyét .Select a location for the event grid topic.

    5. Tartsa meg az alapértelmezett értéket Event Grid sémát az esemény sémája mezőhöz.Keep the default value Event Grid Schema for the Event Schema field.

      Témakör létrehozása lap

    6. Kattintson a Létrehozás gombra.Select Create.

  5. Az egyéni témakör létrehozása után láthatja a sikeres műveletről szóló értesítést.After the custom topic has been created, you see the successful notification. Válassza az Ugrás az erőforrás-csoportbalehetőséget.Select Go to resource group.

    Sikeres műveletről szóló értesítés megtekintése

  6. Az erőforráscsoport lapon válassza az Event Grid-témakört.On the Resource Group page, select the event grid topic.

    Az Event Grid-témakör erőforrásának kiválasztása

  7. Megjelenik az Event Grid Event Grid témakör lapja.You see the Event Grid Topic page for your event grid. A lap nyitva tartása.Keep this page open. Később a rövid útmutatóban is használhatja.You use it later in the quickstart.

    Event Grid témakör kezdőlapja

Üzenetvégpont létrehozásaCreate a message endpoint

Mielőtt létrehoz egy előfizetést az egyéni témakörhöz, hozzon létre egy végpontot az esemény üzenethez.Before you create a subscription for the custom topic, create an endpoint for the event message. A végpont általában az eseményadatok alapján hajt végre műveleteket.Typically, the endpoint takes actions based on the event data. Az útmutató egyszerűsítése érdekében egy olyan előre létrehozott webalkalmazást helyezünk üzembe, amely megjeleníti az esemény üzeneteit.To simplify this quickstart, you deploy a pre-built web app that displays the event messages. Az üzembe helyezett megoldás egy App Service-csomagot, egy App Service-webalkalmazást és egy, a GitHubról származó forráskódot tartalmaz.The deployed solution includes an App Service plan, an App Service web app, and source code from GitHub.

  1. A cikk lapon válassza az üzembe helyezés az Azure -ban lehetőséget a megoldás előfizetésre való telepítéséhez.In the article page, select Deploy to Azure to deploy the solution to your subscription. Az Azure Portalon adjon meg értékeket a paraméterekhez.In the Azure portal, provide values for the parameters.

  2. Az üzembe helyezés befejezése eltarthat néhány percig.The deployment may take a few minutes to complete. A sikeres üzembe helyezést követően tekintse meg a webalkalmazást, hogy meggyőződjön annak működéséről.After the deployment has succeeded, view your web app to make sure it's running. Egy webböngészőben navigáljon a következő helyre: https://<your-site-name>.azurewebsites.net.In a web browser, navigate to: https://<your-site-name>.azurewebsites.net

  3. A hely látható, de még nem lett közzétéve esemény.You see the site but no events have been posted to it yet.

    Új hely megtekintése

Feliratkozás egyéni témakörreSubscribe to custom topic

Az Event Grid-témakörre való feliratkozással lehet tudatni az Event Griddel, hogy mely eseményeket kívánja nyomon követni, és hová szeretné küldeni az eseményeket.You subscribe to an event grid topic to tell Event Grid which events you want to track, and where to send the events.

  1. Ezután az egyéni témakör Event Grid témakör lapján válassza az + esemény-előfizetés lehetőséget az eszköztáron.Now, on the Event Grid Topic page for your custom topic, select + Event Subscription on the toolbar.

    Esemény-előfizetés hozzáadása

  2. Az esemény-előfizetés létrehozása lapon kövesse az alábbi lépéseket:On the Create Event Subscription page, follow these steps:

    1. Adja meg az esemény-előfizetés nevét .Enter a name for the event subscription.

    2. Válassza ki a végpont típusáhoztartozó webhookot.Select Web Hook for the Endpoint type.

    3. Válassza a végpont kiválasztásalehetőséget.Choose Select an endpoint.

      Esemény-előfizetés értékeinek megadása

    4. A webhook végponthoz adja meg a webalkalmazás URL-címét, és adja hozzá az api/updates elemet a kezdőlap URL-címéhez.For the web hook endpoint, provide the URL of your web app and add api/updates to the home page URL. Válassza a Kiválasztás megerősítése lehetőséget.Select Confirm Selection.

      Végpont URL-címének megadása

    5. Vissza az esemény-előfizetés létrehozása lapon válassza a Létrehozáslehetőséget.Back on the Create Event Subscription page, select Create.

  3. Tekints meg újra a webalkalmazást, ahol láthatja, hogy az fogadta az előfizetés érvényesítési eseményét.View your web app again, and notice that a subscription validation event has been sent to it. Az eseményadatok kibontásához kattintson a szem ikonra.Select the eye icon to expand the event data. Az Event Grid elküldi az érvényesítési eseményt, így a végpont megerősítheti, hogy eseményadatokat akar kapni.Event Grid sends the validation event so the endpoint can verify that it wants to receive event data. A webalkalmazás az előfizetés érvényesítéséhez szükséges kódot tartalmaz.The web app includes code to validate the subscription.

    Előfizetési esemény megtekintése

Esemény elküldése a témakörbeSend an event to your topic

Most aktiváljunk egy eseményt, és lássuk, hogyan küldi el az üzenetet az Event Grid a végpontnak.Now, let's trigger an event to see how Event Grid distributes the message to your endpoint. Az Azure CLI vagy a PowerShell használatával küldjön teszteseményt az egyéni témakörbe.Use either Azure CLI or PowerShell to send a test event to your custom topic. Egy alkalmazás vagy Azure-szolgáltatás általában eseményadatokat küld el.Typically, an application or Azure service would send the event data.

Az első példa az Azure CLI-t használja.The first example uses Azure CLI. Ez lekéri az egyéni témakör URL-címét és kulcsát, valamint a mintául szolgáló eseményadatokat.It gets the URL and key for the custom topic, and sample event data. A <topic name> helyett használja az egyéni témakör nevét.Use your custom topic name for <topic name>. Ez mintául szolgáló eseményadatokat hoz létre.It creates sample event data. A JSON data eleme az esemény hasznos adata.The data element of the JSON is the payload of your event. Bármilyen, megfelelően formált JSON megadható ebben a mezőben.Any well-formed JSON can go in this field. A speciális útválasztáshoz és szűréshez használhatja a tárgy mezőt is.You can also use the subject field for advanced routing and filtering. A CURL egy olyan segédprogram, amely HTTP-kéréseket küld.CURL is a utility that sends HTTP requests.

Azure CLIAzure CLI

  1. A Azure Portal válassza a Cloud Shelllehetőséget.In the Azure portal, select Cloud Shell. Válassza a bash elemet a Cloud Shell ablak bal felső sarkában.Select Bash in the top-left corner of the Cloud Shell window.

    Cloud Shell – bash

  2. A következő parancs futtatásával lekérheti a végpontot a témakörhöz: A parancs másolása és beillesztése után frissítse a témakör nevét és az erőforráscsoport nevét a parancs futtatása előtt.Run the following command to get the endpoint for the topic: After you copy and paste the command, update the topic name and resource group name before you run the command.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  3. Futtassa a következő parancsot az egyéni témakörhöz tartozó kulcs lekéréséhez: A parancs másolása és beillesztése után frissítse a témakör nevét és az erőforráscsoport nevét a parancs futtatása előtt.Run the following command to get the key for the custom topic: After you copy and paste the command, update the topic name and resource group name before you run the command.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  4. Másolja a következő utasítást az esemény-definícióba, majd nyomja le az ENTERbillentyűt.Copy the following statement with the event definition, and press ENTER.

    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"} ]'
    
  5. A következő curl -parancs futtatásával tegye közzé az eseményt:Run the following Curl command to post the event:

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    

Azure PowerShellAzure PowerShell

A második példa a PowerShell használatával végez hasonló lépéseket.The second example uses PowerShell to perform similar steps.

  1. A Azure Portal válassza a Cloud Shell lehetőséget (Alternatív megoldásként https://shell.azure.com/) lépjen a következőre:.In the Azure portal, select Cloud Shell (alternatively go to https://shell.azure.com/). Válassza a PowerShell elemet a Cloud Shell ablak bal felső sarkában.Select PowerShell in the top-left corner of the Cloud Shell window. Tekintse meg a minta Cloud Shell ablak rendszerképet az Azure CLI szakaszban.See the sample Cloud Shell window image in the Azure CLI section.

  2. Állítsa be a következő változókat.Set the following variables. Az egyes parancsok másolását és beillesztését követően frissítse a témakör nevét és az erőforráscsoport nevét a parancs futtatása előtt:After you copy and paste each command, update the topic name and resource group name before you run the command:

    $resourceGroupName = <resource group name>
    $topicName = <topic name>
    
  3. A következő parancsok futtatásával lekérheti a végpontot és a kulcsokat a témakörhöz:Run the following commands to get the endpoint and the keys for the topic:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  4. Készítse elő az eseményt.Prepare the event. Másolja és futtassa az utasításokat a Cloud Shell ablakban.Copy and run the statements in the Cloud Shell window.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  5. Az esemény elküldéséhez használja a meghívás-webkérés parancsmagot.Use the Invoke-WebRequest cmdlet to send the event.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Ellenőrzés a Event Grid-megjelenítőbenVerify in the Event Grid Viewer

Ön kiváltotta az eseményt, az Event Grid pedig elküldte az üzenetet a feliratkozáskor konfigurált végpontnak.You've triggered the event, and Event Grid sent the message to the endpoint you configured when subscribing. Tekintse meg a webalkalmazást az imént elküldött esemény megtekintéséhez.View your web app to see the event you just sent.

{
  "id": "974",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2019-03-28T01:11:59+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/myegridrg/providers/Microsoft.EventGrid/topics/myegridtopic"
}

Az erőforrások eltávolításaClean up resources

Ha tovább kívánja használni az eseményt, akkor ne törölje a cikkben létrehozott erőforrásokat.If you plan to continue working with this event, don't clean up the resources created in this article. Ellenkező esetben törölje a cikkben létrehozott erőforrásokat.Otherwise, delete the resources you created in this article.

  1. Válassza az erőforráscsoportok lehetőséget a bal oldali menüben.Select Resource Groups on the left menu. Ha nem látja a bal oldali menüben, válassza a minden szolgáltatás lehetőséget a bal oldali menüben, és válassza az erőforráscsoportoklehetőséget.If you don't see it on the left menu, select All Services on the left menu, and select Resource Groups.

  2. Válassza ki az erőforráscsoportot az erőforráscsoport oldal elindításához.Select the resource group to launch the Resource Group page.

  3. Válassza az erőforráscsoport törlése elemet az eszköztáron.Select Delete resource group on the toolbar.

  4. A törlés megerősítéséhez írja be az erőforráscsoport nevét, majd válassza a Törléslehetőséget.Confirm deletion by entering the name of the resource group, and select Delete.

    Erőforráscsoportok

    A rendszerképben látható másik erőforráscsoportot a Cloud Shell ablak hozta létre és használta.The other resource group you see in the image was created and used by the Cloud Shell window. Ha később nem tervezi használni a Cloud Shell ablakot, törölje azt.Delete it if you don't plan to use the Cloud Shell window later.

További lépésekNext steps

Most, hogy megismerte, hogyan hozhat létre egyéni témaköröket és esemény-előfizetéseket, bővebben is tájékozódhat arról, hogy miben nyújthat segítséget az Event Grid:Now that you know how to create custom topics and event subscriptions, learn more about what Event Grid can help you do: