ตามที่กล่าวไว้ที่นี่[1] ใน aws docs Amplify เก็บบันทึกการเข้าถึงสำหรับแอปทั้งหมดที่คุณโฮสต์ใน Amplify กล่าวอีกนัยหนึ่ง ข้อมูลนี้ไม่ได้จัดเก็บไว้ในบันทึก CloudWatch รายการใดรายการหนึ่งของคุณ และจะมองเห็นได้บนแดชบอร์ดของ Amplify Console แต่จัดเก็บและเข้าถึงได้โดยตรงผ่าน Amplify Console ดังนั้น คุณจะไม่พบบันทึกดังกล่าวในกลุ่มบันทึก CloudWatch ใดๆ ของคุณ ซึ่งระบุไว้ในแท็บบันทึกการเข้าถึงคอนโซลขยายเสียงด้วยคลิกที่ปุ่ม 'แก้ไขช่วงเวลา' และคุณจะเห็น: 'คุณสามารถเข้าถึงบันทึกสำหรับช่วงเวลาสองสัปดาห์ใดก็ได้ โดยเริ่มจากวันที่และเวลาที่ระบุด้านล่าง หากคุณต้องการเข้าถึงบันทึกที่เก่ากว่า คุณจะต้องตั้งค่าฟังก์ชัน Lambda ที่ ทำงานทุกสองสัปดาห์และเก็บผลลัพธ์ไว้ใน S3' อย่างที่เราเห็น ไม่เหมือนกับบันทึกของ CloudWatch หากเราต้องการเข้าถึงบันทึก Amplify แบบเก่า เราจะต้องส่งออกและจัดเก็บไว้ในที่ใดที่หนึ่งอย่างชัดเจน ไม่ว่าจะในเครื่องหรือในที่เก็บข้อมูลเช่น S3
ในกรณีที่คุณต้องการประมวลผลเพิ่มเติมในบันทึกเหล่านี้ คุณสามารถดาวน์โหลดได้ผ่านคอนโซลและดำเนินการดังกล่าว ในกรณีที่คุณต้องการสร้างโซลูชันอัตโนมัติสำหรับการประมวลผลบันทึก Amplify Access คุณสามารถใช้ขั้นตอนด้านล่าง:
เราสามารถใช้การเรียก AWS Api 'GenerateAccessLogs'[2] เพื่อรับบันทึกการเข้าถึงเว็บไซต์สำหรับช่วงเวลาที่กำหนดโดยใช้ URL ที่กำหนด โปรดดูส่วนด้านล่างสุดของเอกสารนี้[2] พร้อมลิงก์ไปยังคำสั่ง AWS CLI หรือการเรียกใช้ SDK ที่สอดคล้องกันสำหรับการดำเนินการนี้ เราสามารถใช้การเรียก CLI/API/SDK นี้ในสคริปต์หรือโค้ดของเราเพื่อดึงข้อมูลบันทึกการเข้าถึงโดยทางโปรแกรมและจัดเก็บไว้ในที่ใดที่หนึ่ง (ทั้งในไฟล์ในเครื่องหรือใน S3)
หากคุณต้องการทำให้การส่งออกบันทึกข้างต้นเป็นแบบอัตโนมัติ ให้ตั้งเวลาให้สคริปต์ของคุณทำงานภายในเครื่อง หรือคุณสามารถเรียกใช้โค้ดเดียวกัน (เช่น สคริปต์ Python) ผ่าน AWS Lambda และกำหนดเวลาให้ lambda ดำเนินการทุกๆ สองสัปดาห์ผ่าน AWS EventBridge
เมื่อเราส่งออกบันทึกการเข้าถึงแล้ว ไม่ว่าจะพูด S3 แบบเป็นโปรแกรมหรือแบบแมนนวล เราก็สามารถดำเนินการเพิ่มเติมกับข้อมูลนั้นได้ ตัวอย่างเช่น ตามที่กล่าวไว้ในส่วน 'การวิเคราะห์บันทึกการเข้าถึง' ใต้ส่วนนี้ที่นี่[2] คุณสามารถใช้ AWS Athena เพื่อวิเคราะห์บันทึก S3 คุณยังสามารถพุชผลลัพธ์ของ Athena ไปยังเมตริก CloudWatch ได้หากจำเป็น[3]
อ้างอิง
[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