ฉันมีการกระจาย CloudFront ต้นทางคือบัคเก็ต S3 ที่ใช้ OAI
ฉันได้สร้างฟังก์ชัน lambda@edge ตามคำแนะนำจาก https://aws.amazon.com/blogs/compute/implementing-default-directory-indexes-in-amazon-s3-backed-amazon-cloudfront-origins-using-lambdaedge/
โดยพื้นฐานแล้ว ฉันต้องการให้ฟังก์ชัน lambda@edge เปลี่ยนเส้นทาง URL ที่ลงท้ายด้วย / เป็น /index.html ทำหน้าที่เหมือน Apache DirectroyIndex
การกระจาย CloudFront ใช้ได้กับ URL โดยไม่ต้องมีการเปลี่ยนเส้นทาง แต่ CloudFront ดูเหมือนจะไม่เรียกใช้ฟังก์ชัน lamba@edge ของฉัน
ฉันรับรองแล้วว่ามีความสัมพันธ์ที่ถูกต้องระหว่างการแจกจ่าย CloudFront และเวอร์ชันฟังก์ชัน labda@edge
ฉันส่งคำขอทดสอบหลายรายการ:
ขด -I https://www.sudheer.net/blog/
HTTP/2 403
ประเภทเนื้อหา: แอปพลิเคชัน/xml
วันที่: เสาร์ 19 ก.พ. 2565 14:35:38 GMT
เซิร์ฟเวอร์: AmazonS3
x-cache: ข้อผิดพลาดจาก cloudfront
ผ่าน: 1.1 5d840d432727e3561fd1a3de915212ca.cloudfront.net (CloudFront)
x-amz-cf-pop: EWR53-C2
x-amz-cf-id: leub-Kgu4Bh9xH4Rn5o7bxs62B1NBO4ViEu6hv-_xtGG7DSQlBFEXw=
ฉันได้ 403ฉันไม่พบบันทึก lambda@edge ในภูมิภาคใดๆ
อะไรคือปัญหา? ฉันจะไปหามันได้อย่างไร
ฟังก์ชัน Lambda@Edge มีหลักการดังนี้
"เวอร์ชัน": "2012-10-17",
"คำแถลง": [
{
"ซิด": "",
"เอฟเฟกต์": "อนุญาต",
"อาจารย์ใหญ่": {
"บริการ": [
"edgelambda.amazonaws.com",
"lambda.amazonaws.com"
]
},
"การกระทำ": "sts:AssumeRole"
}
]
}