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.
Ez a cikk bemutatja, hogyan használhatja az Azure Event Grid szolgáltatást egy eseménynek egy témakörbe való küldésére, és hogyan alkalmazhatja a Service Bus üzenetsort Event Kezelőként egy Spring Boot alkalmazásban való fogadáshoz.
A Azure Event Grid szolgáltatás egy nagymértékben skálázható, teljes mértékben felügyelt Pub Sub üzenetterjesztési szolgáltatás, amely rugalmas üzenethasználati mintákat kínál az MQTT és a HTTP protokollok használatával.
Előfeltételek
Egy Azure előfizetés – ingyenes előfizetés.
Java Fejlesztői készlet (JDK) 8-os vagy újabb verzió.
Apache Maven, 3.0-s vagy újabb verzió.
Event Grid-témakörpéldány. Ha nincs ilyenje, tekintse meg A Azure Event Grid egyéni témakör vagy tartomány létrehozása című témakört.
A Service Bus üzenetsor egy példánya. Ha nincs ilyenje, tekintse meg Sor létrehozása a Azure portálon.
Egy Spring Boot-alkalmazás. Ha még nem rendelkezik ilyennel, hozzon létre egy Maven-projektet a Spring Initializrsegítségével. Mindenképpen válassza a Maven Project lehetőséget, és válassza Java 8- vagy újabb verziót.
Feliratkozás egyéni témakörre
Az alábbi lépésekkel hozzon létre egy esemény-előfizetést, amely tájékoztatja az Event Gridet, hogy küldjön eseményeket a Service Bus üzenetsorba:
- A Azure portálon keresse meg az Event Grid-témakörpéldányt.
- Válassza az esemény-előfizetéseket az eszköztáron.
- Az Esemény-előfizetés létrehozása laponadjon meg egy nevet értéket az esemény-előfizetéshez.
- A Endpoint type esetében válassza a Service Bus Queue lehetőséget.
- Válassza a Végpont kijelölése, majd válassza ki a korábban létrehozott Service Bus Üzenetsor-példányt.
Azure Event Grid segítségével esemény küldése és fogadása Azure Service Bus üzenetsorba.
Egy Azure Event Grid erőforrással eseményt küldhet a Spring Cloud Azure Event Grid használatával. Ha egy Azure Service Bus-üzenetsor-erőforrást eseménykezelőként használ, a Spring Cloud Azure Stream Binder használatával fogadhatja az eseményt Service Bus.
A Spring Cloud Azure Event Grid Starter modul és a Spring Cloud Azure Stream Binder Service Bus modul telepítéséhez adja hozzá a következő függőségeket a pom.xml fájlhoz:
A Spring Cloud Azure Anyagjegyzék (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.2.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Jegyzet
Ha a Spring Boot 4.0.x-et használja, mindenképpen állítsa a
spring-cloud-azure-dependenciesverziót7.2.0értékre.Ha Spring Boot 3.5.x-et használ, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót6.3.0.Ha a Spring Boot 3.1.x-3.5.x verziót használja, mindenképpen állítsa be a verziót
spring-cloud-azure-dependencies-ra/c1.Ha a Spring Boot 2.x-et használja, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót4.20.0-re.Ezt az anyagjegyzéket (BOM) a
<dependencyManagement>fájl szakaszában kell konfigurálni. Ez biztosítja, hogy minden Spring Cloud-Azure függőség ugyanazt a verziót használja.Az anyagjegyzékhez használt verzióval kapcsolatos további információkért lásd: Melyik verzióját a Spring Cloud Azure-nak érdemes használnom?.
A Spring Cloud Azure Event Grid Starter artefaktum:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-eventgrid</artifactId> </dependency>A Spring Cloud Azure Stream Binder Service Bus összetevő:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-stream-binder-servicebus</artifactId> </dependency>
Az alkalmazás kódolása
Az alábbi lépésekkel konfigurálhatja az alkalmazást arra, hogy eseményt küldjön az Event Grid használatával, és fogadjon Service Bus Üzenetsor használatával.
Konfigurálja Azure Event Grid és Service Bus hitelesítő adatait a application.yaml konfigurációs fájlban, ahogyan az a következő példában látható:
spring: cloud: azure: eventgrid: endpoint: ${AZURE_EVENTGRID_ENDPOINT} key: ${AZURE_EVENTGRID_KEY} servicebus: connection-string: ${AZURE_SERVICEBUS_CONNECTION_STRING} function: definition: consume stream: bindings: consume-in-0: destination: ${AZURE_SERVICEBUS_QUEUE_NAME} servicebus: bindings: consume-in-0: consumer: auto-complete: falseJegyzet
Microsoft a legbiztonságosabb hitelesítési folyamat használatát javasolja. Az ebben az eljárásban ismertetett hitelesítési folyamat, például adatbázisok, gyorsítótárak, üzenetkezelés vagy AI-szolgáltatások esetében, nagyon nagy megbízhatóságot igényel az alkalmazásban, és más folyamatokban nem jelenik meg kockázattal. Ezt a folyamatot csak akkor használja, ha a biztonságosabb lehetőségek, például a jelszó nélküli vagy kulcs nélküli kapcsolatokhoz szükséges felügyelt identitások lehetőségként nem állnak rendelkezésre. A helyi gépi műveletekhez előnyben részesítse a jelszó nélküli vagy kulcs nélküli kapcsolatok felhasználói identitásait.
Szerkessze az indítási osztályfájlt a következő tartalom megjelenítéséhez. Ez a kód kiegészítéseket hoz létre.
import com.azure.core.util.BinaryData; import com.azure.messaging.eventgrid.EventGridEvent; import com.azure.messaging.eventgrid.EventGridPublisherClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.messaging.Message; import java.util.List; import java.util.function.Consumer; @SpringBootApplication public class EventGridSampleApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(EventGridSampleApplication.class); @Autowired EventGridPublisherClient<EventGridEvent> client; public static void main(String[] args) { SpringApplication.run(EventGridSampleApplication.class, args); } @Bean public Consumer<Message<String>> consume() { return message -> { List<EventGridEvent> eventData = EventGridEvent.fromString(message.getPayload()); eventData.forEach(event -> { LOGGER.info("New event received: '{}'", event.getData()); }); }; } @Override public void run(String... args) throws Exception { String str = "FirstName: John, LastName: James"; EventGridEvent event = new EventGridEvent("A user is created", "User.Created.Text", BinaryData.fromObject(str), "0.1"); client.sendEvent(event); LOGGER.info("New event published: '{}'", event.getData()); } }Indítsa el az alkalmazást. Az indítás után az alkalmazás az alábbi példához hasonló naplókat hoz létre:
New event published: '"FirstName: John, LastName: James"' ... New event received: '"FirstName: John, LastName: James"'
Üzembe helyezés a Azure Spring Apps
Most, hogy a Spring Boot-alkalmazás helyileg fut, ideje produkciós környezetbe telepíteni. Azure Spring Apps megkönnyíti a Spring Boot-alkalmazások Azure való üzembe helyezését kódmódosítások nélkül. A szolgáltatás kezeli a Spring-alkalmazások infrastruktúráját, hogy a fejlesztők a kódjukra összpontosíthassanak. Azure Spring Apps teljes körű monitorozás és diagnosztika, konfigurációkezelés, szolgáltatásfelderítés, CI/CD-integráció, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet. Az alkalmazás Azure Spring Apps való üzembe helyezéséről a A Azure Spring Apps első alkalmazás üzembe helyezéséről szóló cikkben olvashat.
Következő lépések
A Spring és a Azure megismeréséhez lépjen tovább a Spring on Azure dokumentációs központba.