Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban a következő lépéseket kell elvégeznie:
- Hozzon létre egy Event Grid-névteret az Azure Portal használatával.
- Hozzon létre egy Event Grid-névtér témakört az Azure Portal használatával.
- Hozzon létre egy esemény-előfizetést az Azure Portal használatával.
- .NET-konzolalkalmazás írása üzenetek küldéséhez a témakörbe
- Írjon egy .NET-konzolalkalmazást, hogy megkapja ezeket az üzeneteket a témakörből.
Feljegyzés
Ez a rövid útmutató részletes útmutatást nyújt egy egyszerű forgatókönyv implementálásához, amely egy üzenetköteget küld egy Event Grid-névtértémakörbe, majd fogadja őket. A .NET-ügyfélkódtár áttekintését a .NET-hez készült Azure Event Grid ügyfélkódtárban tekintheti meg. További mintákért lásd : Event Grid .NET-minták a GitHubon.
Előfeltételek
Ha még nem ismerkedik a szolgáltatással, a rövid útmutató előtt tekintse meg az Event Grid áttekintését .
- Azure-előfizetés. Az Azure-szolgáltatások, köztük az Azure Event Grid használatához előfizetésre van szükség. Ha nem rendelkezik meglévő Azure-fiókkal, regisztrálhat egy ingyenes próbaverzióra.
-
Visual Studio 2022. A mintaalkalmazás a C# 10-ben bevezetett új funkciókat használja. A legújabb szintaxis használatához javasoljuk, hogy telepítse a .NET 6.0-s vagy újabb verzióját, és állítsa a nyelvi verziót a következőre
latest: . Ha Visual Studio-t használ, a Visual Studio 2022 előtti verziók nem kompatibilisek a C# 10-projektek létrehozásához szükséges eszközökkel.
Névtér létrehozása az Azure Portalon
Az Azure Event Grid névtere egy logikai tároló egy vagy több témakörhöz, ügyfélhez, ügyfélcsoporthoz, témakörtérhez és engedélykötéshez. Az Azure Event Grid-névtérrel csoportosíthatja a kapcsolódó erőforrásokat, és egyetlen egységként kezelheti őket az Azure-előfizetésben. Az egyedi névtér lehetővé teszi több erőforrás használatát ugyanabban az Azure-régióban.
Névtér létrehozása:
Jelentkezzen be a Azure portalra.
A keresőmezőbe írja be az Event Grid-névtereket , és válassza ki az Event Grid-névtereket az eredmények közül.
Az Event Grid-névterek lapon válassza a + Létrehozás lehetőséget.
Az Alapok lapon kövesse az alábbi lépéseket.
Válassza ki azt az Azure-előfizetést, amelyben létre szeretné hozni a névteret.
Válasszon ki egy meglévő erőforráscsoportot , vagy hozzon létre egy erőforráscsoportot.
Adja meg a névtér nevét .
Válassza ki a névtér helyét .
Válassza az Áttekintés + létrehozás lehetőséget.
A Véleményezés + létrehozás lapon tekintse át a beállításokat. Ezután válassza a Létrehozás lehetőséget.
A Sikeres üzembe helyezés lapon válassza az Erőforrás megnyitása lehetőséget a névtérhez való navigáláshoz.
Névtértéma létrehozása
Ha nem szerepel az Event Grid Névtér lapján, kövesse a névterek létrehozásának, megtekintésének és kezelésének lépéseit a témakör létrehozásához használni kívánt névtér megtekintéséhez.
Az Event Grid Névtér lapján, az Eseményszervező alatt válassza a Témakörök lehetőséget.
A Témakörök lapon válassza a + Témakör lehetőséget.
A Témakör létrehozása lapon írja be a létrehozni kívánt témakör nevét, és válassza a Létrehozás lehetőséget.
Esemény-előfizetés létrehozása
Ha az Event Grid-névtér Témakörök lapján van az Azure Portalon, válassza ki a témakört a témakörök listájából. Ha a Témakörök lapon található, kövesse a névtér-témakörök létrehozásának, megtekintésének és kezelésének utasításait az esemény-előfizetés létrehozásához használni kívánt témakör azonosításához.
Az Event Grid Névtér témakör lapján válassza az Előfizetések lehetőséget a bal oldali menü Entitások szakaszában.
Az Előfizetések lapon válassza a "+ Előfizetés" gombot a parancssávon.
Az Alapismeretek lapon kövesse az alábbi lépéseket:
Adja meg a létrehozni kívánt előfizetés nevét
Ellenőrizze, hogy a kézbesítési séma be van-e állítva a Cloud Events 1.0-s verzióban.
Győződjön meg arról, hogy a kézbesítési mód várólistára van állítva (lekéréses mód).
Válassza a Tovább elemet : Szűrők az oldal alján.
A Szűrők lapon adja meg az előfizetésben szűrni kívánt eseménytípusok nevét, és adja hozzá az előfizetésben használni kívánt környezetattribútum-szűrőket. Ezután válassza a Tovább elemet : További funkciók az oldal alján.
A További funkciók lapon megadhatja az eseménymegőrzést, a maximális kézbesítésszámot, a zárolási időtartamot és a kézbesíthetetlen levelek beállításait.
Válassza a Létrehozás lehetőséget az esemény-előfizetés létrehozásához.
Az alkalmazás hitelesítése az Azure-ban
Ez a rövid útmutató bemutatja, hogyan csatlakozhat az Azure Event Gridhez: kapcsolati sztring. Ez a szakasz bemutatja, hogyan lehet kapcsolati sztring csatlakozni egy Event Grid-névtérhez. Ha még nem ismerkedik az Azure-sal, a kapcsolati sztring lehetőség könnyebben követhető. Új Event Grid-névtér létrehozása automatikusan létrehoz egy kezdeti elsődleges és másodlagos kulcsot, amely minden esetben teljes körű ellenőrzést biztosít a névtér vagy témakörök minden aspektusa felett. Az ügyfél a kapcsolati sztring használatával csatlakozhat az Event Grid névteréhez. A névtér témaköréhez tartozó hozzáférési kulcsok másolásához kövesse az alábbi lépéseket:
Az Event Grid Névtér lapján válassza a Témakörök lehetőséget.
Válassza ki a hozzáférést igénylő témakört.
Az Access-kulcsok lapon válassza az 1. vagy a 2. kulcs melletti másolás gombot a hozzáférési kulcsok vágólapra másolásához későbbi használatra. Illessze be ezt az értéket a Jegyzettömbbe vagy egy másik ideiglenes helyre.
A Visual Studio elindítása
Indítsa el a Visual Studiót. Ha megjelenik az Első lépések ablak, válassza a Folytatás kód nélkül hivatkozást a jobb oldali panelen.
Üzenet küldése az üzenettémához
Ez a szakasz bemutatja, hogyan hozhat létre .NET-konzolalkalmazást, amely üzeneteket küld egy Event Grid-témakörbe.
Konzolalkalmazás létrehozása
A Visual Studióban válassza a Fájl –>Új –>Projekt menüt.
Az Új projekt létrehozása párbeszédpanelen hajtsa végre a következő lépéseket: Ha nem látja ezt a párbeszédpanelt, válassza a Fájl lehetőséget a menüben, válassza az Új, majd a Projekt lehetőséget.
A programozási nyelvhez válassza a C# lehetőséget.
Válassza a Konzol lehetőséget az alkalmazás típusához.
Válassza a Konzolalkalmazás lehetőséget az eredmények listájából.
Ezután válassza a Tovább gombot.
Adja meg az EventSender nevet a projektnévhez, az EventGridQuickStartot a megoldásnévhez, majd válassza a Tovább gombot.
A További információ lapon válassza a Létrehozás lehetőséget a megoldás és a projekt létrehozásához.
NuGet-csomagok hozzáadása a projekthez
Válassza az > Csomagkezelő konzol lehetőséget a menüből.
Futtassa a következő parancsot az Azure.Messaging.EventGrid NuGet-csomag telepítéséhez:
Install-Package Azure.Messaging.EventGrid.Namespaces
Eseményt küldő kód hozzáadása a névtér témaköréhez
Cserélje le a tartalomra
Program.csa következő kódot. A fontos lépések körvonalazódnak, és a kód megjegyzéseiben további információk találhatók.Fontos
Frissítse a kódrészlet helyőrző értékeit (
<NAMESPACE-ENDPOINT>,<TOPIC-NAME>,<TOPIC-ACCESS-KEY>) a névtérvégponttal, a témakör nevével és a témakörkulcsával.using Azure.Messaging; using Azure; using Azure.Messaging.EventGrid.Namespaces; // TODO: Replace the following placeholders with appropriate values // Endpoint of the namespace that you can find on the Overview page for your Event Grid namespace. Prefix it with https://. // Should be in the form: https://namespace01.eastus-1.eventgrid.azure.net. var namespaceEndpoint = "<NAMESPACE-ENDPOINT>"; // Name of the topic in the namespace var topicName = "<TOPIC-NAME>"; // Access key for the topic var topicKey = "<TOPIC-ACCESS-KEY>"; // Construct the client using an Endpoint for a namespace as well as the access key var client = new EventGridSenderClient(new Uri(namespaceEndpoint), topicName, new AzureKeyCredential(topicKey)); // Publish a single CloudEvent using a custom TestModel for the event data. var @ev = new CloudEvent("employee_source", "type", new TestModel { Name = "Bob", Age = 18 }); await client.SendAsync(ev); // Publish a batch of CloudEvents. await client.SendAsync( new[] { new CloudEvent("employee_source", "type", new TestModel { Name = "Tom", Age = 55 }), new CloudEvent("employee_source", "type", new TestModel { Name = "Alice", Age = 25 })}); Console.WriteLine("Three events have been published to the topic. Press any key to end the application."); Console.ReadKey(); public class TestModel { public string Name { get; set; } public int Age { get; set; } }Hozza létre a projektet, és győződjön meg arról, hogy nincsenek hibák.
Futtassa a programot, és várja meg a megerősítést kérő üzenetet.
Three events have been published to the topic. Press any key to end the application.Fontos
A legtöbb esetben egy-két percig tart, amíg a szerepkör-hozzárendelés propagálása az Azure-ban megtörténik. Ritkán akár nyolc percig is eltarthat. Ha hitelesítési hibákat kap a kód első futtatásakor, várjon néhány percet, és próbálkozzon újra.
Az Azure Portalon kövesse az alábbi lépéseket:
Üzenetek lekérése a témakörből
Ebben a szakaszban egy .NET-konzolalkalmazást hoz létre, amely üzeneteket fogad a témakörből.
Projekt létrehozása a közzétett CloudEvents fogadásához
- A Megoldáskezelő ablakban kattintson a jobb gombbal az EventGridQuickStart megoldásra, mutasson a Hozzáadás pontra, és válassza az Új projekt lehetőséget.
- Válassza a Konzolalkalmazás lehetőséget, majd a Tovább gombot.
- Írja be az EventReceiver nevet a projektnévhez, és válassza a Létrehozás lehetőséget.
- A Megoldáskezelő ablakban kattintson a jobb gombbal az EventReceiver elemre, és válassza a Beállítás indítási projektként lehetőséget.
NuGet-csomagok hozzáadása a projekthez
Válassza az > Csomagkezelő konzol lehetőséget a menüből.
Futtassa a következő parancsot az Azure.Messaging.EventGrid NuGet-csomag telepítéséhez. Ha még nincs beállítva, válassza az EventReceiver lehetőséget az Alapértelmezett projekthez .
Install-Package Azure.Messaging.EventGrid.Namespaces
Adja hozzá a kódot, hogy eseményeket fogadjon a témakörből
Ebben a szakaszban kódot ad hozzá az üzenetek üzenetsorból való lekéréséhez.
Az osztályon
Programbelül adja hozzá a következő kódot:Fontos
Frissítse a kódrészlet helyőrző értékeit (
<NAMESPACE-ENDPOINT>,<TOPIC-NAME>,<TOPIC-ACCESS-KEY>)<TOPIC-SUBSCRIPTION-NAME>a névtérvégponttal, a témakör nevével, a témakör kulcsával és a témakör előfizetésének nevével.using Azure; using Azure.Messaging; using Azure.Messaging.EventGrid.Namespaces; // TODO: Replace the following placeholders with appropriate values // Endpoint of the namespace that you can find on the Overview page for your Event Grid namespace // Example: https://namespace01.eastus-1.eventgrid.azure.net. var namespaceEndpoint = "<NAMESPACE-ENDPOINT>"; // Should be in the form: https://namespace01.eastus-1.eventgrid.azure.net. // Name of the topic in the namespace var topicName = "<TOPIC-NAME>"; // Access key for the topic var topicKey = "<TOPIC-ACCESS-KEY>"; // Name of the subscription to the topic var subscriptionName = "<TOPIC-SUBSCRIPTION-NAME>"; // Maximum number of events you want to receive const short MaxEventCount = 3; // Construct the client using an Endpoint for a namespace as well as the access key var client = new EventGridReceiverClient(new Uri(namespaceEndpoint), topicName, subscriptionName, new AzureKeyCredential(topicKey)); // Receive the published CloudEvents. ReceiveResult result = await client.ReceiveAsync(MaxEventCount); Console.WriteLine("Received Response"); Console.WriteLine("-----------------");Fűzze hozzá a következő metódusokat az
Programosztály végéhez.// handle received messages. Define these variables on the top. var toRelease = new List<string>(); var toAcknowledge = new List<string>(); var toReject = new List<string>(); // Iterate through the results and collect the lock tokens for events we want to release/acknowledge/result foreach (ReceiveDetails detail in result.Details) { CloudEvent @event = detail.Event; BrokerProperties brokerProperties = detail.BrokerProperties; Console.WriteLine(@event.Data.ToString()); // The lock token is used to acknowledge, reject or release the event Console.WriteLine(brokerProperties.LockToken); Console.WriteLine(); // If the event is from the "employee_source" and the name is "Bob", we are not able to acknowledge it yet, so we release it if (@event.Source == "employee_source" && @event.Data.ToObjectFromJson<TestModel>().Name == "Bob") { toRelease.Add(brokerProperties.LockToken); } // acknowledge other employee_source events else if (@event.Source == "employee_source") { toAcknowledge.Add(brokerProperties.LockToken); } // reject all other events else { toReject.Add(brokerProperties.LockToken); } } // Release/acknowledge/reject the events if (toRelease.Count > 0) { ReleaseResult releaseResult = await client.ReleaseAsync(toRelease); // Inspect the Release result Console.WriteLine($"Failed count for Release: {releaseResult.FailedLockTokens.Count}"); foreach (FailedLockToken failedLockToken in releaseResult.FailedLockTokens) { Console.WriteLine($"Lock Token: {failedLockToken.LockToken}"); Console.WriteLine($"Error Code: {failedLockToken.Error}"); Console.WriteLine($"Error Description: {failedLockToken.ToString}"); } Console.WriteLine($"Success count for Release: {releaseResult.SucceededLockTokens.Count}"); foreach (string lockToken in releaseResult.SucceededLockTokens) { Console.WriteLine($"Lock Token: {lockToken}"); } Console.WriteLine(); } if (toAcknowledge.Count > 0) { AcknowledgeResult acknowledgeResult = await client.AcknowledgeAsync(toAcknowledge); // Inspect the Acknowledge result Console.WriteLine($"Failed count for Acknowledge: {acknowledgeResult.FailedLockTokens.Count}"); foreach (FailedLockToken failedLockToken in acknowledgeResult.FailedLockTokens) { Console.WriteLine($"Lock Token: {failedLockToken.LockToken}"); Console.WriteLine($"Error Code: {failedLockToken.Error}"); Console.WriteLine($"Error Description: {failedLockToken.ToString}"); } Console.WriteLine($"Success count for Acknowledge: {acknowledgeResult.SucceededLockTokens.Count}"); foreach (string lockToken in acknowledgeResult.SucceededLockTokens) { Console.WriteLine($"Lock Token: {lockToken}"); } Console.WriteLine(); } if (toReject.Count > 0) { RejectResult rejectResult = await client.RejectAsync(toReject); // Inspect the Reject result Console.WriteLine($"Failed count for Reject: {rejectResult.FailedLockTokens.Count}"); foreach (FailedLockToken failedLockToken in rejectResult.FailedLockTokens) { Console.WriteLine($"Lock Token: {failedLockToken.LockToken}"); Console.WriteLine($"Error Code: {failedLockToken.Error}"); Console.WriteLine($"Error Description: {failedLockToken.ToString}"); } Console.WriteLine($"Success count for Reject: {rejectResult.SucceededLockTokens.Count}"); foreach (string lockToken in rejectResult.SucceededLockTokens) { Console.WriteLine($"Lock Token: {lockToken}"); } Console.WriteLine(); } public class TestModel { public string Name { get; set; } public int Age { get; set; } }A Megoldáskezelő ablakban kattintson a jobb gombbal az EventReceiver projektre, és válassza a Beállítás indítási projektként lehetőséget.
Hozza létre a projektet, és győződjön meg arról, hogy nincsenek hibák.
Futtassa az EventReceiver alkalmazást, és ellenőrizze, hogy a kimeneti ablakban megjelenik-e a három esemény.
Az erőforrások eltávolítása
Lépjen az Event Grid-névtérre az Azure Portalon, és az Azure PortalOn a Törlés gombra kattintva törölje az Event Grid-névteret és a benne lévő témakört.
Kapcsolódó témakörök
Lásd: .NET API-referencia.