ยังไงตั้งค่าเป็น lambda ฟังก์ชันสำหรับทำงานกับสองคนตัวกระตุ้นด้วยกัน

0

คำถาม

ฉันต้องการที่หนึ่ง lambda แค่เริ่มต้นเมื่อมีแฟ้มถูกอัปโหลดไปอยู่สองคนต่างออก S3 นำหน้าด้วย.

ตัวอย่าง:

ฉันมีแฟ้มเป็นและแฟ้มบีและฉันมีสองคนต่างออกส่วนนำหน้าสำหรับแฟ้มแต่ละแฟ้ม.

ฉันต้องการทำบางอย่า aggregations กับแฟ้มเป็นและแฟ้มบี

เพื่อทำอย่างนี้ฉันจะใช้ Lambda นั่นจะทำให้ข้อความบน SNS ตอนนี้แฟ้มที่ถูกอัปโหลดไป.

ฉันต้อง config นี้ lambda สำหรับคนเริ่มตอนนี้ lambda ได้รับนี้สองเหตุการณ์การแจ้งให้ทราบ.

ดังนั้นของฉัน lambda สามารถเริ่มต้นเมื่อสองไฟล์ที่มีอยู่บน S3 สำหรับเป็นในขั้นตอนตรวจสอบ

อะไรคือวิธีที่ดีที่สุดสำหรับตั้งค่านี้ให้เรื่องนี้ทำงานด้วยกัน?

1

คำตอบที่ดีที่สุด

1

TLDR; แทนที่เลี้ยง"สร้างแฟ้ม"การแจ้งให้ทราด้วยตนเองใน"โพส lambda"มี S3 เหตุการณ์การแจ้งให้ทราบต่างๆ โดยอัตโนมัติเรียกร้องของ"การประมวลผล lambda"เมื่อแฟ้มเป้าหมายก็คือสร้างขึ้นมา ที่ lambda วิ่งหนีไปให้สมบูรณ์เมื่อทั้งสองแฟ้มที่มีอยู่จริง

docs:อเมซอน S3 สามารถส่งเหตุการณ์จะเป็น Lambda ฟังก์ชันตอนที่เป็นวัตถุถูกสร้างหรือกลบออกไป.

(1)สร้าง S3 เหตุการณ์การแจ้งให้ทราบต่างๆ: เพิ่มสองเหตุการณ์การแจ้งให้ทราบต่างๆของคุณลงถังให้หมด หนึ่ง invokes ที่กำลังประมวลผล lambda เมื่ FileA คือถูกสร้างบน S3. อีก invokes มันตอนที่เป็น FileB คือสร้างขึ้นมา คุณสามารถ ตั้งค่าตัวกรอง ดังนั้นของคุณ lambda คือแจ้งเท่านั้นแน่นอน S3 การกระทำและแฟ้มรูปแบบทั้งหมดหรอก

(2)เป็นการประมวลผล lambda เช็คหาคนอื่นแฟ้มอยู่ก่อน. ที่ S3 เหตุการณ์ผ่านไป lambda มีข้อมูลเกี่ยวกับตัวกระตุ้นให้เหตุการณ์(e.g. ObjectCreatedและวัตถุ(e.g. กุญแจชื่อของเวอร์ชั่นถั etc.) ใช้ AWS SDK ต้องตรวจสอบว่าอีกแฟ้มอยู่บน S3.

ถ้าทั้งสองมีแฟ้มอยู่ก่อนแล้วงั้นถอดถอนกาวใจเต้นแทน,ไม่งั้นออกไปได้แล้ว

50%เวลาที่การประมวลผล lambda จะออกก่อน(เพราะแค่ 1 แฟ้มอยู่ก่อน). อีกครั้งที่ lambda จะวิ่งหนีตลอดทางผ่านไปกาวยเป็นกิจวัตรประจำวัน

(ข้อควรจำ:ส่วนนี้จะทำงานอย่างเดียวเท่านั้นถ้าคุณสามารถ derive หนึ่งชื่อแฟ้มจากคนอื่นซึ่งมันไม่ชัดเจนอกจากปฏิบัติการหรือความเห็น)

2021-11-22 14:54:37

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................