Như đã đề cập ở đây[1] trong tài liệu aws, Amplify lưu trữ nhật ký truy cập cho tất cả các ứng dụng mà bạn lưu trữ trong Amplify. Nói cách khác, nó không được lưu trữ trong một trong các nhật ký CloudWatch của bạn và chỉ hiển thị trên bảng điều khiển Bảng điều khiển Amplify mà được lưu trữ và truy cập trực tiếp qua chính Bảng điều khiển Amplify. Do đó, bạn sẽ không thể tìm thấy nhật ký nói trên trong bất kỳ nhóm nhật ký CloudWatch nào của mình. Điều này cũng được chỉ ra trong tab nhật ký Truy cập bảng điều khiển khuếch đại.Nhấp vào nút 'Chỉnh sửa phạm vi thời gian' và bạn sẽ thấy: 'Bạn có thể truy cập nhật ký trong khoảng thời gian hai tuần bất kỳ bắt đầu từ ngày và giờ được cung cấp bên dưới, nếu muốn truy cập nhật ký cũ hơn, bạn sẽ cần thiết lập chức năng Lambda để chạy hai tuần một lần và lưu kết quả trong S3'. Như chúng ta có thể thấy, không giống như nhật ký CloudWatch, nếu muốn truy cập nhật ký Amplify cũ, chúng ta phải xuất và lưu trữ rõ ràng ở đâu đó, cục bộ hoặc trong kho lưu trữ dữ liệu như S3.
Trong trường hợp bạn muốn xử lý bổ sung trên các nhật ký này, bạn có thể tải xuống qua Bảng điều khiển và thực hiện. Trong trường hợp muốn xây dựng một giải pháp tự động để xử lý nhật ký Truy cập Amplify, bạn có thể thực hiện theo các bước sau:
Chúng tôi có thể sử dụng lệnh gọi AWS Api 'GenerateAccessLogs'[2] để lấy nhật ký truy cập trang web trong một khoảng thời gian cụ thể bằng cách sử dụng URL được chỉ định. Vui lòng tham khảo phần dưới cùng của tài liệu này[2] với các liên kết tới lệnh AWS CLI tương ứng hoặc lệnh gọi SDK cho hành động này. Chúng tôi có thể sử dụng lệnh gọi CLI/API/SDK này trong tập lệnh hoặc mã của mình để tìm nạp nhật ký truy cập theo chương trình và lưu trữ ở đâu đó (trong tệp cục bộ hoặc trong S3).
Nếu bạn muốn tự động hóa quá trình xuất nhật ký ở trên, hãy lên lịch để tập lệnh của bạn chạy cục bộ hoặc bạn cũng có thể chạy mã tương tự (chẳng hạn như tập lệnh Python) qua AWS Lambda và lên lịch để lambda thực thi hai tuần một lần qua AWS EventBridge.
Khi chúng tôi đã xuất nhật ký truy cập, chẳng hạn như S3 theo cách lập trình hoặc thủ công, chúng tôi có thể thực hiện xử lý bổ sung đối với dữ liệu đó. Ví dụ: như đã đề cập trong phần 'Phân tích nhật ký truy cập' bên dưới phần này tại đây[2], bạn có thể sử dụng AWS Athena để phân tích nhật ký S3. Bạn cũng có thể đẩy lùi kết quả Athena về chỉ số CloudWatch nếu cần[3].
Thẩm quyền giải quyết
[1] https://docs.aws.amazon.com/amplify/latest/userguide/access-logs.html#using-access-logs
[2] https://docs.aws.amazon.com/amplify/latest/APIReference/API_GenerateAccessLogs.html
[3] https://stackoverflow.com/questions/63715926/creating-a-cloudwatch-metrics-from-the-athena-query-results