của David Boyne | ngày 14 tháng 11 năm 2023 | trong Amazon EventBridge, Serverless | Permalink | Share
Hôm nay, AWS thông báo hỗ trợ logging with EventBridge Pipes. Amazon EventBridge Pipes là một giải pháp tích hợp kết nối các producers and consumers với các tùy chọn filter, transform và enrichment. EventBridge Pipes cắt giảm số lượng lượng code tích hợp phải viết và duy trì khi xây dựng ứng dụng event-driven. Nhiều tích hợp phổ biến bao gôm kết nối Amazon Kinesis streams cùng với bộ lọc, Amazon DynamoDB tích hợp trực tiếp với Amazon EventBridge, và Amazon SQS tích hợp với AWS Step Functions.
EventBridge Pipes logging giới thiệu cái nhìn sâu vào trong những giai đoạn khác nhau của thực thi pipeline. Nó mở rộng trên Amazon CloudWatch metrics support, và cung cấp cho bạn những phương thức thêm vào để xử lý sự cố và gỡ lỗi.
Bây giờ bạn có thể tìm hiểu sâu vào những tình huống thành công hay thất bại trong các bước thực thi của đường ống. Khi có sự biến đổi thành công hoặc thất bại, bạn có thể sử dụng logs để đào sâu và bắt đầu xử lý sự cố cho bất kỳ vấn đề nào mà cấu hình đường ống của bạn mắc phải.
Các bước thực hiện EventBridge Pipes
Hiểu được các bước thực hiện của môt đường ống có thể giúp đỡ bạn chọn những log level phù hợp, xác định lượng thông tin được ghi lại.
Việc thực thi đường ống là việc một event hoặc một loạt event nhận được bởi một đường ống di chuyển từ nguồn đến đích. Khi event đi qua một đường ống, chúng có thể được lọc, chuyển đổi và tăng cường bằng các dùng AWS Step Functions, AWS Lambda, Amazon API Gateway, và EventBridge API Destinations.
Việc thực thi đường ống bao gồm 2 giai đoạn chính: Enrichment và Target. Cả 2 giai đoạn này bao gồm các bước chuyển đổi và gọi.
Bạn có thể sử dụng input transformers để cho phép chỉnh sửa payload của event trước khi events đến giai đoạn enrichment hoặc gửi đến target. Điều này cho phép bạn kiểm soát chi tiết toàn bộ thao tác của dữ liệu event trong quá trình thực thi cấu hình đường ống của chúng.
Khi việc thực thi đường ống bắt đầu, Quá trình thực thi bắt đầu giai đoạn enrichment. Nếu bạn không cấu hình một giai đoạn enrichment, quá trình thực thi sẽ tiếp tục giai đoạn Target.
Tại các giai đoạn thực thi, chuyển đổi, enrichment và target, EventBridge có thể log thông tin để giúp gỡ lỗi hoặc khắc phục sự cố. Log của đường ống có thể bao gồm payloads, lỗi, chuyển đổi, AWS request và AWS response.
Cấu hình log levels với EventBridge Pipes
Khi logging được bật trong đường ống của bạn, EventBridge xử lý một log cho toàn bộ mỗi bước thực thi và gửi chúng đến những log destination nhất định.
EventBridge pipes hỗ trợ 3 log destinations: Amazon CloudWatch Logs, Amazon Kinesis Data Firehose stream, and Amazon S3. Những records được gửi có thể được customized bởi cấu hình log level của đường ống (OFF, ERROR, INFO, TRACE).
- OFF – EventBridge không gửi bất kỳ records nào.
- ERROR – EventBridge gửi những record liên quan tới các lỗi phát sinh trong quá trình thực thi quy trình. Các ví dụ bao gồm Lỗi thực thi không thành công, Hết thời gian thực thi và Lỗi Enrichment.
- INFO: EventBrdge gửi những record liên quan tới các lỗi và thông tin được chọn được thực hiện trong quá trình thực hiện đường ống. Các ví dụ bao gồm Bắt đầu thực thi, Thực thi thành công và Giai đoạn enrichment thành công.
ERROR log level tỏ ra có lợi trong việc hiểu rõ hơn về lý do dẫn đến việc thực hiện đường ống không thành công. Thực thi đường ống có thể bắt gặp lỗi vì nhiều lý do, như timeouts, enrichment thất bại, chuyển đổi thất bại hoặc gọi đến đích không thành công. Bật ERROR logging cho phép bạn hiểu hơn về những nguyên nhân làm cho đường ống bị lỗi và tạo điều kiện thuận lợi để giải quyết vấn đề.
INFO log level cung cấp thông tin ERROR với những chi tiết được thêm vào. Nó không chỉ thông báo về lỗi mà còn cung cấp sâu sắc về việc bắt đầu thực thi đường ống, toàn bộ giai đoạn enrichment, sự tiến triển bên trong giai đoạn chuyển đổi và và sự khởi đầu cũng như sự hoàn thành thành công của giai đoạn mục tiêu.
Để phân tích sâu hơn, bạn có thể sử dụng TRACE log level để có một cái nhìn sâu sắc toàn diện về quá trình thực thi đường ống. Điều này cung cấp toàn bộ những hỗ trợ log của đường ống, đưa ra những chi tiết vượt qua INFO và ERROR logs. TRACE log level tiết lộ những thông tin quan trọng, chẳng hạn như bỏ qua các giai đoạn thực hiện đường ống và bắt đầu các quá trình chuyển đổi và enrichment.
Để có thêm thông tin về log level hoặc những log nào được gửi đi, you can read the documentation.
Tích hợp dữ liệu thực thi với EventBridge Pipes logging
Để giúp đỡ việc gỡ lỗi, bạn có thể chọn tích hợp thêm dữ liệu thực thi trong logs của đường ống. Dữ liệu này bao gồm event payloads, AWS requests và responses được gửi đến và nhận từ các thành phần target và enrichment đã được định cấu hình.
Bạn cũng có thể sử dụng dữ liệu thực thi để có được nhiều thông tin về payloads, requests, responses gửi đến những dịch vụ của AWS trong quá trình thực thi của đường ống.
Việc kết hợp dữ liệu thực thi có thể nâng cao hiểu biết về quá trình thực hiện đường ống, cung cấp thông tin chi tiết sâu hơn và hỗ trợ gỡ lỗi mọi vấn đề gặp phải.
Dữ liệu thực thi bao gồm:
- Payload: Nội dung của chính event. Payload của event có thể chứa những thông tin nhạy cảm và EventBridge sẽ không cố gắng biên tập lại nội dung của event. Tích hợp dữ liệu thực thi là tùy chọn và có thể được tắt đi.
- awsRequest: Request được gửi từ enrichment hoặc target ở định dạng JSON. Đối với API destination, điều này bao gồm yêu cầu HTTP được gửi đến endpoint đó.
- awsResponse: Response được trả về bởi enrichment hoặc target trong định dạng JSON. Đối với API Destinations, đây là phản hồi được trả về từ endpopint được cấu hình.
Payload của event được cấp khi bản thân event được cập nhật. Những giai đoạn bao gồm khởi tạo đường ống, giai đoạn enrichment, giai đoạn target. AwsRequest và awsResponse cả hai được tạo ra tại bước cuối cùng của giai đoạn enrichment và target.
Để có thêm thông tin với log levels và dữ liệu thực thi, truy cập tài liệu này.
Bắt đầu với EventBridge Pipes logs
Ví dụ này tạo ra một đường ống với logging được bật và tích hợp những dữ liệu thực thi. Đường ống này kết nối với 2 Amazon SQS queues sử dụng một bộ chuyển đổi đầu vào trên target và không có giai đoạn enrichment. Bộ chuyển đổi dữ liệu đầu sửa đổi payload của event trước khi chúng đến được với target.
- Tạo ra source và target queue
- Chuyển đến EventBridge Pipes và chọn Create Pipe
- Chọn SQS như làm source và chọn pipe-source làm hàng đợi SQS.
- Bỏ qua giai đoạn filter và enrichment và thêm một Target mới. Chọn SQS làm Target service và chọn pipe-target làm hàng đợi.
- Mở phần Target Input Transformer và nhập transformer code vào trong Transformer field.
- Chọn Pipe settings để cấu hình log group cho đường ống mới.
- Xác nhận rằng CloudWatch Logs được đặt là log destination, và chọn trace làm log level. Kiển tra check vào “Include execution data” . Thao tác này sẽ ghi lại tất cả dấu vết vào nhóm nhật ký CloudWatch mới và bao gồm các thông báo SQS được gửi trên đường ống.
- Chọn Create Pipe
- Gửi một SQS message đến hàng đợi source
- Tất cả logs trace được show trong cửa sổ monitoring, sử dụng CloudWatch Logs để xem thêm thông tin
Kết luận
EventBridge Pipes cho phép tích hợp point-to-point giữa những producer và consumer. Với hỗ trợ logging cho EventBridge Pipes, bây giờ bạn có thể có một cái nhìn sâu hơn về nhiều giai đoạn trong quá trình thực thi của đường ống. Đường ống log destination có thể được cấu hình với CloudWatch Logs, Kinesis Data Firehose và Amazon S3.
EventBridge Pipes hỗ trợ 3 loại log levels. Log level ERROR cấu hình EventBridge để gửi những records liên quan đến lỗi tới log destination. Log level INFO cấu hình EventBridge để gửi những records liên quan đến lỗi và lựa chọn những thông tin cần trong quá trình thực thi đường ống. Log level TRACE gửi bất kỳ records nào được tạo ra đến log destination, rất hữu ích khi gỡ lỗi và có thêm cái nhìn sâu hơn.
Bạn có thể tích hợp dữ liệu thực thi trong logs, bao gồm chính event đó, và AWS request và response được thi thi với các dịch vụ AWS và được cấu hình trong đường ống. Điều này có thể giúp bạn có cái nhìn sâu hơn về việc thực thi đường ống. Đọc thêm tài liệu này để tìm hiểu nhiều hơn về EventBridge Pipes Logs.
Để tìm hiểu thêm về serverless, truy cập Serverless Land.