0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng dẫn Sử dụng EventBridge với SQS qua Tài khoản và Vùng khác

Đăng vào 5 tháng trước

• 4 phút đọc

Giới thiệu

Gửi tin nhắn đến hàng đợi SQS từ EventBridge là một yêu cầu rất phổ biến trong các ứng dụng sử dụng sự kiện. Đôi khi, hàng đợi SQS này có thể nằm ở một vùng khác và có thể thuộc về một tài khoản AWS khác. Tùy thuộc vào vị trí của hàng đợi SQS mục tiêu, cách thiết lập giải pháp sẽ khác nhau.

Trong bài viết này, chúng ta sẽ xem xét các kịch bản khác nhau về cách EventBridge có thể gửi tin nhắn đến hàng đợi SQS mục tiêu khi hàng đợi này nằm ở một vùng hoặc tài khoản AWS khác.

Kịch bản 1: Bus sự kiện, quy tắc và hàng đợi SQS cùng tài khoản AWS, cùng vùng

Đây là kịch bản phổ biến và đơn giản nhất. Bus sự kiện có một quy tắc được cấu hình trực tiếp với hàng đợi SQS làm mục tiêu. Tất cả các tài nguyên đều nằm trong cùng một vùng và cùng một tài khoản AWS.

Kịch bản 2: Bus sự kiện và quy tắc ở một vùng, hàng đợi SQS mục tiêu ở vùng khác trong cùng một tài khoản AWS

Trong kịch bản này, bus sự kiện và quy tắc nằm ở một vùng. Hàng đợi SQS mục tiêu ở cùng một tài khoản AWS, nhưng ở một vùng khác.

Tính đến hôm nay (tháng 9 năm 2025), EventBridge chỉ hỗ trợ SQS làm mục tiêu khi nó ở cùng một vùng.

Vì vậy, trước tiên bạn cần tạo một bus sự kiện mới (hoặc sử dụng bus sự kiện mặc định) ở vùng thứ hai. Sau đó, cấu hình hàng đợi SQS làm mục tiêu cho bus sự kiện đó.
Tiếp theo, cấu hình bus sự kiện ở vùng thứ hai làm mục tiêu trong quy tắc EventBridge của vùng đầu tiên.

Kịch bản 3: Bus sự kiện, quy tắc trong một tài khoản AWS, hàng đợi SQS mục tiêu trong tài khoản AWS khác, nhưng tất cả đều ở cùng một vùng

AWS đã giới thiệu hỗ trợ tài khoản chéo cho các mục tiêu EventBridge vào đầu năm 2025. Trước đây, khi gửi tin nhắn đến tài nguyên liên tài khoản, bạn phải sử dụng một bus sự kiện trong tài khoản thứ hai để thiết lập kết nối (tương tự như kịch bản 2 ở trên).

Với tính năng mới này, có thể có một mục tiêu liên tài khoản, điều này đơn giản hóa việc gửi tin nhắn từ một bus sự kiện đến hàng đợi SQS trong tài khoản khác.

Tuy nhiên, có một hạn chế. Mặc dù việc gửi tin nhắn liên tài khoản là khả thi, nhưng bus sự kiện, quy tắc và mục tiêu trong tài khoản AWS thứ hai phải nằm ở cùng một vùng.

Kịch bản 4: Bus sự kiện, quy tắc trong một tài khoản AWS, hàng đợi SQS mục tiêu ở vùng khác trong tài khoản AWS khác

Như đã đề cập trước đó, việc gửi tin nhắn liên tài khoản chỉ được hỗ trợ khi hàng đợi SQS mục tiêu nằm ở cùng một vùng. Nếu hàng đợi SQS ở một vùng khác, bạn phải sử dụng một bus sự kiện trong tài khoản thứ hai làm trung gian.

Tóm tắt

Mô hình rất đơn giản. Hàng đợi SQS có thể là một mục tiêu trong quy tắc EventBridge khi quy tắc và hàng đợi SQS đều nằm ở cùng một vùng. Hàng đợi SQS mục tiêu có thể ở một tài khoản AWS khác miễn là vùng là giống nhau.

Nếu hàng đợi SQS ở một vùng khác với quy tắc EventBridge, bạn phải sử dụng một Bus sự kiện trung gian ở vùng thứ hai. Bus sự kiện trung gian này và hàng đợi SQS có thể nằm trong một tài khoản AWS khác.

Thực tiễn tốt nhất

  • Đảm bảo quyền truy cập: Hãy chắc chắn rằng các chính sách IAM cho phép EventBridge gửi tin nhắn đến hàng đợi SQS mục tiêu.
  • Kiểm tra kết nối: Luôn kiểm tra kết nối giữa EventBridge và SQS để đảm bảo rằng tin nhắn không bị mất.

Cạm bẫy phổ biến

  • Quên cấu hình quyền: Nhiều nhà phát triển quên rằng cần có quyền truy cập thích hợp cho cả hai tài khoản AWS.
  • Không sử dụng Bus sự kiện trung gian đúng cách: Nếu hàng đợi SQS nằm ở một vùng khác, việc sử dụng Bus sự kiện trung gian là cần thiết.

Mẹo hiệu suất

  • Tối ưu hóa kích thước tin nhắn: SQS có giới hạn kích thước tin nhắn, vì vậy hãy đảm bảo rằng bạn không vượt quá giới hạn này để tránh lỗi.
  • Chọn thời gian chờ: Tùy chỉnh thời gian chờ của hàng đợi SQS để tối ưu hóa hiệu suất gửi và nhận tin nhắn.

Khắc phục sự cố

  • Tin nhắn không đến đích: Kiểm tra lại quy tắc EventBridge và đảm bảo rằng nó được cấu hình chính xác.
  • Lỗi quyền: Nếu bạn nhận được lỗi quyền, hãy kiểm tra lại chính sách IAM của cả hai tài khoản AWS.

Tài nguyên tham khảo

  1. Mục tiêu bus sự kiện trong Amazon EventBridge
  2. Giới thiệu mục tiêu liên tài khoản cho Bus sự kiện Amazon EventBridge

👋 Tôi thường xuyên tạo nội dung về AWSServerless, nếu bạn quan tâm, hãy theo dõi/kết nối với tôi để không bỏ lỡ những bài viết mới nhất của tôi!

LinkedIn
Twitter/X
Medium
Blog cá nhân

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào