Broker pesan Amazon MQ sebagai sumber - Amazon EventBridge

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Broker pesan Amazon MQ sebagai sumber

Anda dapat menggunakan EventBridge Pipes untuk menerima catatan dari broker pesan Amazon MQ. Anda kemudian dapat secara opsional memfilter atau menyempurnakan catatan ini sebelum mengirimnya ke salah satu tujuan yang tersedia untuk diproses. Ada pengaturan khusus untuk Amazon MQ yang dapat Anda pilih saat menyiapkan pipa. EventBridge Pipes menjaga urutan catatan dari broker pesan saat mengirim data tersebut ke tujuan.

Amazon MQ adalah layanan broker pesan terkelola untuk Apache ActiveMQ dan RabbitMQ. Broker pesan memungkinkan aplikasi dan komponen perangkat lunak untuk berkomunikasi menggunakan bahasa pemrograman yang berbeda, sistem operasi, dan protokol pesan formal dengan topik atau antrian sebagai tujuan acara.

Amazon MQ juga dapat mengelola instans Amazon Elastic Compute Cloud (Amazon EC2) atas nama Anda dengan menginstal broker ActiveMQ atau RabbitMQ. Setelah broker diinstal, ia menyediakan topologi jaringan yang berbeda dan kebutuhan infrastruktur lainnya untuk instans Anda.

Sumber Amazon MQ memiliki batasan konfigurasi berikut:

  • Cross account — EventBridge tidak mendukung pemrosesan lintas akun. Anda tidak dapat menggunakan EventBridge untuk memproses catatan dari broker pesan Amazon MQ yang ada di akun berbeda AWS .

  • Otentikasi - Untuk ActiveMQ, hanya ActiveMQ yang didukung. SimpleAuthenticationPlugin Untuk RabbitMQ, hanya mekanisme otentikasi PLAIN yang didukung. Untuk mengelola kredensyal, gunakan. AWS Secrets Manager Untuk informasi selengkapnya tentang otentikasi ActiveMQ, lihat Mengintegrasikan broker ActiveMQ dengan LDAP di Panduan Pengembang Amazon MQ.

  • Kuota koneksi — Broker memiliki jumlah maksimum koneksi yang diizinkan untuk setiap protokol tingkat kabel. Kuota ini didasarkan pada jenis instans broker. Untuk informasi selengkapnya, lihat bagian Broker*Kuota di Amazon MQ* di Panduan Pengembang Amazon MQ.

  • Konektivitas — Anda dapat membuat broker di cloud pribadi virtual publik atau pribadi (VPC). Untuk VPC pribadi, pipa Anda memerlukan akses ke VPC untuk menerima pesan.

  • Tujuan acara - Hanya tujuan antrian yang didukung. Namun, Anda dapat menggunakan topik virtual, yang berperilaku baik sebagai topik internal maupun sebagai antrian eksternal ketika berinteraksi dengan pipa Anda. Untuk informasi lebih lanjut, lihat Tujuan Virtual di situs web Apache ActiveMQ, dan Host Virtual di situs web RabbitMQ.

  • Topologi jaringan — Untuk ActiveMQ, hanya satu broker tunggal atau siaga yang didukung untuk pipa. Untuk RabbitMQ, hanya satu broker instans tunggal atau penerapan cluster yang didukung untuk setiap pipa. Broker instans tunggal memerlukan titik akhir failover. Untuk informasi selengkapnya tentang mode penyebaran broker ini, lihat Arsitektur Broker MQ Aktif dan Arsitektur Broker MQ Kelinci di Panduan Pengembang Amazon MQ.

  • Protokol — Protokol yang didukung bergantung pada integrasi Amazon MQ yang Anda gunakan.

    • Untuk integrasi ActiveMQ EventBridge , gunakan protokol /Java Message Service (JMS) untuk menggunakan OpenWire pesan. Konsumsi pesan tidak didukung pada protokol lain. EventBridge hanya mendukung TextMessagedan BytesMessageoperasi dalam protokol JMS. Untuk informasi lebih lanjut tentang OpenWire protokol, lihat OpenWiredi situs web Apache ActiveMQ.

    • Untuk integrasi RabbitMQ, EventBridge gunakan protokol AMQP 0-9-1 untuk menggunakan pesan. Tidak ada protokol lain yang didukung untuk mengkonsumsi pesan. Untuk informasi lebih lanjut tentang implementasi protokol AMQP 0-9-1 RabbitMQ, lihat AMQP 0-9-1 Panduan Referensi Lengkap di situs web RabbitMQ.

EventBridge secara otomatis mendukung versi terbaru ActiveMQ dan RabbitMQ yang didukung Amazon MQ. Untuk versi terbaru yang didukung, lihat catatan rilis Amazon MQ di Panduan Pengembang Amazon MQ.

catatan

Secara default, Amazon MQ memiliki jangka waktu pemeliharaan mingguan untuk broker. Selama jangka waktu tersebut, broker tidak tersedia. Untuk broker tanpa siaga, EventBridge tidak akan memproses pesan sampai jendela berakhir.

Contoh peristiwa

Contoh peristiwa berikut menunjukkan informasi yang diterima oleh pipa. Anda dapat menggunakan acara ini untuk membuat dan memfilter pola acara Anda, atau untuk menentukan transformasi input. Tidak semua bidang dapat disaring. Untuk informasi selengkapnya tentang bidang mana yang dapat Anda filter, lihatPenyaringan EventBridge Pipa Amazon.

ActiveMQ

[ { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/text-message", "data": "QUJDOkFBQUE=", "connectionId": "myJMSCoID", "redelivered": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 }, { "eventSource": "aws:amq", "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.goskope.com-37557-1234520418293-4:1:1:1:1", "messageType": "jms/bytes-message", "data": "3DTOOW7crj51prgVLQaGQ82S48k=", "connectionId": "myJMSCoID1", "persistent": false, "destination": { "physicalname": "testQueue" }, "timestamp": 1598827811958, "brokerInTime": 1598827811958, "brokerOutTime": 1598827811959 } ]

RabbitMQ

[ { "eventSource": "aws:rmq", "eventSourceArn": "arn:aws:mq:us-west-2:111122223333:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8", "eventSourceKey": "pizzaQueue::/", "basicProperties": { "contentType": "text/plain", "contentEncoding": null, "headers": { "header1": { "bytes": [ 118, 97, 108, 117, 101, 49 ] }, "header2": { "bytes": [ 118, 97, 108, 117, 101, 50 ] }, "numberInHeader": 10 }, "deliveryMode": 1, "priority": 34, "correlationId": null, "replyTo": null, "expiration": "60000", "messageId": null, "timestamp": "Jan 1, 1970, 12:33:41 AM", "type": null, "userId": "AIDACKCEVSQ6C2EXAMPLE", "appId": null, "clusterId": null, "bodySize": 80 }, "redelivered": false, "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" } ]

Kelompok konsumen

Untuk berinteraksi dengan Amazon MQ, EventBridge buat grup konsumen yang dapat membaca dari broker MQ Amazon Anda. Grup konsumen dibuat dengan ID yang sama dengan pipa UUID.

Untuk sumber Amazon MQ, mengumpulkan EventBridge catatan bersama dan mengirimkannya ke fungsi Anda dalam satu muatan. Untuk mengontrol perilaku, Anda dapat mengonfigurasi jendela batching dan ukuran batch. EventBridge menarik pesan sampai salah satu hal berikut terjadi:

  • Catatan yang diproses mencapai ukuran muatan maksimum 6 MB.

  • Jendela batching kedaluwarsa.

  • Jumlah catatan mencapai ukuran batch penuh.

EventBridge mengubah batch Anda menjadi satu payload dan kemudian memanggil fungsi Anda. Pesan tidak bertahan atau dideserialisasi. Sebaliknya, grup konsumen mengambilnya sebagai BLOB byte. Kemudian base64-mengkodekannya ke dalam muatan JSON. Jika pipa mengembalikan kesalahan untuk salah satu pesan dalam batch, EventBridge coba ulang seluruh kumpulan pesan hingga pemrosesan berhasil atau pesan kedaluwarsa.

Konfigurasi jaringan

Secara default, broker Amazon MQ dibuat dengan flag PubliclyAccessible yang ditetapkan ke false. Hanya ketika PubliclyAccessible diatur ke true bahwa broker menerima alamat IP publik. Untuk akses penuh dengan pipa Anda, broker Anda harus menggunakan titik akhir publik atau menyediakan akses ke VPC.

Jika broker Amazon MQ Anda tidak dapat diakses publik, EventBridge harus memiliki akses ke sumber daya Amazon Virtual Private Cloud (Amazon VPC) yang terkait dengan broker Anda.

  • Untuk mengakses VPC broker Amazon MQ Anda EventBridge , dapat menggunakan akses internet keluar untuk subnet sumber Anda. Untuk subnet publik ini harus menjadi gateway NAT terkelola. Untuk subnet pribadi itu bisa menjadi gateway NAT, atau NAT Anda sendiri. Pastikan NAT memiliki alamat IP publik dan dapat terhubung ke internet.

  • EventBridge Pipes juga mendukung pengiriman acara melalui AWS PrivateLink, memungkinkan Anda untuk mengirim acara dari sumber acara yang terletak di Amazon Virtual Private Cloud (Amazon VPC) ke target Pipes tanpa melintasi internet publik. Anda dapat menggunakan Pipes untuk melakukan polling from Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka yang dikelola sendiri, dan Amazon MQ sumber yang berada di subnet pribadi tanpa perlu menggunakan gateway internet, mengonfigurasi aturan firewall, atau mengatur server proxy.

    Untuk menyiapkan titik akhir VPC, lihat Membuat titik akhir VPC di Panduan Pengguna.AWS PrivateLink Untuk nama layanan, pilihcom.amazonaws.region.pipes-data.

Konfigurasikan grup keamanan Amazon VPC Anda dengan aturan berikut (minimal):

  • Aturan masuk - Izinkan semua lalu lintas di port broker Amazon MQ untuk grup keamanan yang ditentukan untuk sumber Anda.

  • Aturan keluar - Izinkan semua lalu lintas di port 443 untuk semua tujuan. Izinkan semua lalu lintas di port broker Amazon MQ untuk grup keamanan yang ditentukan untuk sumber Anda.

    Port broker meliputi:

    • 9092 untuk plaintext

    • 9094 untuk TLS

    • 9096 untuk SASL

    • 9098 untuk IAM

catatan

Konfigurasi VPC Amazon Anda dapat ditemukan melalui Amazon MQ API. Anda tidak perlu mengkonfigurasinya selama pengaturan.