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 Service Bus Kuyruğu'nun Spring Boot uygulamasında almak üzere Olay İşleyicisi olarak kullanma adımları 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 tane oluşturun.
Java Development Kit (JDK) sürüm 8 veya üzeri.
Apache Maven, 3.0 veya üzeri sürüm.
Bir Event Grid Konu örneği. Eğer yoksa, Azure Event Grid'de özel bir konu veya etki alanı oluşturmak için 'a bakın.
Service Bus Kuyruğu örneği. Bir kuyruğunuz yoksa bkz. Azure portalında kuyruk oluşturma
. Spring Boot uygulaması. Eğer yoksa, Spring Initializrile bir Maven projesi oluşturun. Maven Project'ü seçtiğinizden ve Java sürüm 8 veya üzerini kullandığınızdan emin olun.
Özel konuya abone olma
Event Grid'e Service Bus Kuyruğuna olay 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. - Uç Nokta Türü
için Service Bus Kuyruğu seçin. - Bir uç nokta seçin ve daha önce oluşturduğunuz Service Bus Kuyruğu örneğini seçin.
Azure Event Grid ile olay gönderip Azure Service Bus Kuyruğu ile alma
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, Spring Cloud Azure Stream Binder for Service Bus aracılığıyla 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>6.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Not
Spring Boot 3.0.x-3.4.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü5.23.0olarak ayarladığınızdan emin olun.Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü4.20.0olarak ayarladığınızdan emin olun.Bu Ürün Reçetesi (BOM),
<dependencyManagement>dosyanızın bölümünde 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 malzeme listesi 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 bileşeni:
<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 Yayınlama
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
Sonraki adımlar
Spring ve Azure hakkında daha fazla bilgi edinmek için Azure'da Spring belge merkezine geçin.
Spring geliştiricileri için Azure Spring Cloud Azure Event Grid örnekleri