Megosztás a következőn keresztül:


Az Azure Event Grid használata tavasszal

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

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:

  1. Az Azure Portalon keresse meg az Event Grid-témakörpéldányt.
  2. Válassza az esemény-előfizetéseket az eszköztáron.
  3. Az Esemény-előfizetés létrehozása laponadjon meg egy nevet értéket az esemény-előfizetéshez.
  4. végponttípusesetében válassza Service Bus-üzenetsorlehetőséget.
  5. 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-dependencies verziót 5.23.0.

    Ha Spring Boot 2.x-et használ, ügyeljen arra, hogy a spring-cloud-azure-dependencies verzió 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.

  1. 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: false
    

    Jegyzet

    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.

  2. 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());
        }
    }
    
    
  3. 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.