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 küldhet egy eseményt egy témakörbe az Azure Event Grid használatával, és hogyan használhatja a Service Bus-üzenetsort eseménykezelőként egy Spring Boot-alkalmazásban való fogadáshoz.
Az 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
Azure-előfizetés – hozzon létre egyet ingyenes.
Java Development Kit (JDK) 8-as vagy újabb verzió.
Apache Maven3.0-s vagy újabb verziója.
Event Grid-témakörpéldány. Ha nincs ilyenje, olvassa el Egyéni témakör vagy tartomány létrehozása az Azure Event Grid.
Service Bus-üzenetsorpéldány. Ha nincs ilyen üzenetsora, tekintse meg Üzenetsor létrehozása az 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 ki Maven Project, és válassza a Java 8-es vagy újabb verziójá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:
- Az Azure Portalon 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.
- végponttípusesetében válassza Service Bus-üzenetsorlehetőséget.
- Válassza Válasszon ki egy végpontot, majd válassza ki a korábban létrehozott Service Bus Queue-példányt.
Esemény küldése az Azure Event Grid segítségével és fogadása az Azure Service Bus sor által.
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 for Service Bus használatával fogadhatja az eseményt.
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éke (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>6.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Jegyzet
Ha Spring Boot 3.0.x-3.4.x verziót használ, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót5.23.0.Ha Spring Boot 2.x-et használ, ügyeljen arra, hogy a
spring-cloud-azure-dependenciesverzió4.20.0legyen.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.A BOM-hoz használt verzióval kapcsolatos további információkért lásd a Spring Cloud Azure melyik verzióját használjam.
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, hogy eseményt küldjön az Event Grid használatával, és fogadja a Service Bus Queue használatával.
Konfigurálja az Azure Event Grid- és Service Bus-hitelesítő adatokat az application.yaml konfigurációs fájlban az alábbi példában látható módon:
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
A Microsoft az elérhető 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 az Azure Spring Appsben
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-ban 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. Az Azure Spring Apps átfogó monitorozási és diagnosztikai, konfigurációkezelési, szolgáltatásfelderítési, CI/CD-integrációs, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet. Az alkalmazás Azure Spring Appsben való üzembe helyezéséről lásd: Az első alkalmazás üzembe helyezése az Azure Spring Apps.
Következő lépések
Ha többet szeretne megtudni a Springről és az Azure-ról, lépjen tovább a Spring on Azure dokumentációs központjába.