Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan kepada Anda cara menggunakan Azure Event Grid untuk mengirim peristiwa ke topik dan menggunakan Antrean Bus Layanan sebagai Penanganan Aktivitas untuk diterima dalam aplikasi Spring Boot.
Layanan Azure Event Grid
Prasyarat
Langganan Azure - buat langganan secara gratis.
Java Development Kit (JDK) versi 8 atau yang lebih tinggi.
Apache Maven, versi 3.0 atau lebih tinggi.
Instance dari Topik Event Grid. Jika Anda tidak memilikinya, lihat Membuat topik kustom atau domain di Azure Event Grid.
Instans Antrean Bus Layanan. Jika Anda tidak memilikinya, lihat Membuat antrean di portal Microsoft Azure.
Aplikasi Spring Boot. Jika Anda tidak memilikinya, buat proyek Maven dengan Spring Initializr. Pastikan untuk memilih Maven Project dan pilih Java versi 8 atau yang lebih tinggi.
Berlangganan topik kustom
Gunakan langkah-langkah berikut untuk berlangganan acara agar memberi tahu Event Grid untuk mengirim acara ke Antrian Layanan Bus.
- Di portal Microsoft Azure, navigasikan ke instans Topik Event Grid Anda.
- Pilih Langganan Peristiwa pada toolbar.
- Pada halaman Buat Langganan Peristiwa, masukkan nilai nama untuk langganan peristiwa.
- Untuk Jenis Titik Akhir, pilih Antrean Bus Layanan.
- Pilih Pilih titik akhir lalu pilih instans Antrean Bus Layanan yang Anda buat sebelumnya.
Mengirimkan peristiwa melalui Azure Event Grid dan menerima melalui Antrean Azure Service Bus
Dengan sumber daya Azure Event Grid, Anda dapat mengirim acara menggunakan Spring Cloud Azure Event Grid. Dengan sumber daya Azure Service Bus Queue sebagai penangan peristiwa, Anda dapat menerima peristiwa menggunakan Spring Cloud Azure Stream Binder untuk Service Bus.
Untuk menginstal modul Spring Cloud Azure Event Grid Starter dan modul Bus Layanan Spring Cloud Azure Stream Binder, tambahkan dependensi berikut ke file pom.xml Anda:
Daftar Bahan Spring Cloud Azure (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>Nota
Jika Anda menggunakan Spring Boot 3.0.x-3.4.x, pastikan untuk mengatur versi ke
spring-cloud-azure-dependencies5.23.0.Jika Anda menggunakan Spring Boot 2.x, pastikan untuk mengatur versi
spring-cloud-azure-dependencieske4.20.0.Bill of Material (BOM) ini harus dikonfigurasi di bagian
<dependencyManagement>dari file pom.xml Anda. Ini memastikan bahwa semua dependensi Spring Cloud Azure menggunakan versi yang sama.Untuk informasi selengkapnya tentang versi yang digunakan untuk BOM ini, lihat Versi Spring Cloud Azure mana yang Harus Saya Gunakan.
Artefak untuk Spring Cloud Azure Event Grid Starter:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-eventgrid</artifactId> </dependency>Artefak Bus Layanan Spring Cloud Azure Stream Binder:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-stream-binder-servicebus</artifactId> </dependency>
Kode aplikasi
Gunakan langkah-langkah berikut untuk mengonfigurasi aplikasi Anda untuk mengirim peristiwa dengan menggunakan Event Grid dan menerima dengan menggunakan Antrean Bus Layanan.
Konfigurasikan kredensial Azure Event Grid dan Service Bus dalam file konfigurasi application.yaml , seperti yang ditunjukkan dalam contoh berikut:
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: falseNota
Microsoft merekomendasikan penggunaan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini, seperti untuk database, cache, olahpesan, atau layanan AI, memerlukan tingkat kepercayaan yang sangat tinggi dalam aplikasi dan membawa risiko yang tidak ada dalam alur lain. Gunakan alur ini hanya ketika opsi yang lebih aman, seperti identitas terkelola untuk koneksi tanpa kata sandi atau tanpa kunci, tidak layak. Untuk operasi komputer lokal, lebih suka identitas pengguna untuk koneksi tanpa kata sandi atau tanpa kunci.
Edit file kelas startup untuk menampilkan konten berikut. Kode ini menghasilkan pelengkapan.
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()); } }Mulai aplikasi. Setelah diluncurkan, aplikasi menghasilkan log yang mirip dengan contoh berikut:
New event published: '"FirstName: John, LastName: James"' ... New event received: '"FirstName: John, LastName: James"'
Menyebarkan ke Azure Spring Apps
Sekarang setelah Anda memiliki aplikasi Spring Boot yang berjalan secara lokal, saatnya untuk memindahkannya ke produksi. Azure Spring Apps memudahkan penyebaran aplikasi Spring Boot ke Azure tanpa perubahan kode apa pun. Layanan ini mengelola infrastruktur aplikasi Spring sehingga pengembang dapat fokus pada kode mereka. Azure Spring Apps menyediakan manajemen siklus hidup menggunakan pemantauan dan diagnostik yang komprehensif, manajemen konfigurasi, penemuan layanan, integrasi CI/CD, penyebaran biru-hijau, dan banyak lagi. Untuk menyebarkan aplikasi Anda ke Azure Spring Apps, lihat Menyebarkan aplikasi pertama Anda ke Azure Spring Apps.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang Spring dan Azure, lanjutkan ke pusat dokumentasi Spring on Azure.