Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Event Grid kullanarak bir konuya olay gönderme ve Spring Boot uygulamasında almak üzere Service Bus Kuyruğu'nun Event handler olarak nasıl kullanılacağı gösterilmektedir.
Azure Event Grid hizmeti, MQTT ve HTTP protokollerini kullanarak esnek ileti tüketimi desenleri sunan yüksek oranda ölçeklenebilir, tam olarak yönetilen bir Pub Alt ileti dağıtım hizmetidir.
Önkoşullar
Azure aboneliği - ücretsiz bir abonelik .
Java Geliştirme Seti (JDK) sürüm 8 veya üzeri.
Apache Maven, sürüm 3.0 veya üzeri.
Bir Event Grid Konu örneği. Eğer bir tane yoksa, Azure Event Grid'de özel bir konu veya etki alanı oluşturma bölümüne bakın.
Service Bus Kuyruğu örneği. Bir kuyruk yoksa, bkz: Azure portalında kuyruk oluşturun.
Spring Boot uygulaması. Eğer bir tane yoksa, Spring Initializr ile bir Maven projesi oluşturun. Maven Project öğesini seçip Java sürüm 8 veya üzerini seçtiğinizden emin olun.
Özel konuya abone olma
Event Grid'e olayları Service Bus Kuyruğuna göndermesini bildirmek üzere bir olay aboneliği oluşturmak için aşağıdaki adımları kullanın:
- Azure portalında Event Grid Konu örneğine gidin.
- Araç çubuğunda Olay Abonelikleri seçin.
- Olay Aboneliği Oluştur
sayfasında, olay aboneliği için bir adı değer girin. - Endpoint Type için Service Bus Queue öğesini seçin.
- Bir uç nokta seçin öğesini seçin ve ardından daha önce oluşturduğunuz Service Bus Kuyruk örneğini seçin.
Azure Event Grid ile bir olay gönderin ve Azure Service Bus Kuyruğu ile alın.
Azure Event Grid kaynağıyla Spring Cloud Azure Event Grid kullanarak bir olay gönderebilirsiniz. Azure Service Bus Kuyruğu kaynağını bir olay işleyicisi olarak kullanarak, Service Bus için Spring Cloud Azure Stream Binder ile olayı alabilirsiniz.
Spring Cloud Azure Event Grid Starter modülünü ve Spring Cloud Azure Stream Binder Service Bus modülünü yüklemek için pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring Cloud Azure Ürün Reçetesi( BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Not
Spring Boot 4.0.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü7.1.0olarak ayarladığınızdan emin olun.Spring Boot 3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü6.1.0olarak ayarladığınızdan emin olun.Spring Boot 3.1.x-3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü5.25.0olarak ayarladığınızdan emin olun.Eğer Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü4.20.0olarak ayarladığınızdan emin olun.Bu Parça Listesi (BOM),
<dependencyManagement>bölümünde pom.xml dosyanızda yapılandırılmalıdır. Bu, tüm Spring Cloud Azure bağımlılıklarının aynı sürümü kullanmasını sağlar.Bu BOM için kullanılan sürüm hakkında daha fazla bilgi için bkz. Hangi Spring Cloud Azure Sürümünü Kullanmalıyım.
Spring Cloud Azure Event Grid Starter bileşeni:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-eventgrid</artifactId> </dependency>Spring Cloud Azure Stream Binder Service Bus yapıtı:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-stream-binder-servicebus</artifactId> </dependency>
Uygulamayı kodlayın
Uygulamanızı Event Grid kullanarak olay gönderecek ve Service Bus Kuyruğu kullanarak alacak şekilde yapılandırmak için aşağıdaki adımları kullanın.
Aşağıdaki örnekte gösterildiği gibi application.yaml yapılandırma dosyasında Azure Event Grid ve Service Bus kimlik bilgilerini yapılandırın:
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: falseNot
Microsoft, kullanılabilir en güvenli kimlik doğrulama akışının kullanılmasını önerir. Veritabanları, önbellekler, mesajlaşma veya yapay zeka hizmetleri gibi bu yordamda açıklanan kimlik doğrulama akışı, uygulamaya çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskler taşır. Bu akışı yalnızca parolasız veya anahtarsız bağlantılar için yönetilen kimlikler gibi daha güvenli seçenekler uygun olmadığında kullanın. Yerel makine işlemleri için parolasız veya anahtarsız bağlantılar için kullanıcı kimliklerini tercih edin.
Aşağıdaki içeriği göstermek için başlangıç sınıfı dosyasını düzenleyin. Bu kod tamamlamalar oluşturur.
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()); } }Uygulamayı başlatın. Uygulama başlatıldıktan sonra aşağıdaki örneğe benzer günlükler oluşturur:
New event published: '"FirstName: John, LastName: James"' ... New event received: '"FirstName: John, LastName: James"'
Azure Spring Apps'e dağıtım yapın
Spring Boot uygulamasını yerel olarak çalıştırdığınıza göre artık uygulamayı üretim ortamına taşımanın zamanı geldi. Azure Spring Apps Spring Boot uygulamalarını kod değişikliği olmadan Azure dağıtmayı kolaylaştırır. Hizmet, geliştiricilerin kodlarına odaklanabilmesi için Spring uygulamalarının altyapısını yönetir. Azure Spring Apps kapsamlı izleme ve tanılama, yapılandırma yönetimi, hizmet bulma, CI/CD tümleştirmesi, mavi-yeşil dağıtımlar ve daha fazlasını kullanarak yaşam döngüsü yönetimi sağlar. Uygulamanızı Azure Spring Apps dağıtmak için bkz. İlk uygulamanızı Azure Spring Apps'a dağıtma.
Sonraki adımlar
Spring ve Azure hakkında daha fazla bilgi edinmek için spring on Azure belge merkezine geçin.
Spring geliştiricileri için AzureSpring Cloud Azure Event Grid örnekleri