ในสมัยก่อน โพสต์บล็อกเราได้อธิบายโซลูชันการยืนยันตัวตนแบบ end-to-end ในภูมิภาค AWS เดียว การแก้ปัญหาใช้ ความหมายของ Amazon APIs ตรวจจับใบหน้า สำหรับการตรวจจับใบหน้าและ เปรียบเทียบใบหน้า เพื่อเปรียบเทียบใบหน้า เราคิดว่า API เหล่านั้นเป็น API ไร้สถานะ เนื่องจากไม่ได้ขึ้นอยู่กับ Amazon Rekognition คอลเลกชันใบหน้า. พวกเขายังเป็น idempotent ซึ่งหมายความว่าการโทรซ้ำด้วยพารามิเตอร์เดียวกันจะส่งคืนผลลัพธ์เดียวกัน พวกเขามีตัวเลือกที่ยืดหยุ่นในการส่งรูปภาพไม่ว่าจะผ่าน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon ตำแหน่ง (Amazon S3) หรือไบต์ดิบ
ในโพสต์นี้เราเน้นที่ อิมเมจการรับรู้ของ Amazon APIs ไร้สัญชาติ และอภิปรายสองตัวเลือกในการส่งผ่านอิมเมจ และเมื่อใดที่ควรเลือกตัวเลือกหนึ่งจากมุมมองของสถาปัตยกรรมระบบ จากนั้นเราจะหารือเกี่ยวกับวิธีปรับขนาด API ไร้สัญชาติเพื่อเอาชนะข้อจำกัดระดับภูมิภาค เมื่อพูดถึงความสามารถในการปรับขนาด เรามักอ้างถึงธุรกรรมสูงสุดต่อวินาที (TPS) ที่โซลูชันสามารถจัดการได้ ตัวอย่างเช่น เมื่อจัดงานขนาดใหญ่ที่ใช้การมองเห็นของคอมพิวเตอร์เพื่อตรวจจับใบหน้าหรือป้ายชื่อวัตถุ คุณอาจพบกับการจราจรติดขัด และคุณไม่ต้องการให้ระบบเร่งความเร็ว ซึ่งหมายความว่าบางครั้งคุณจำเป็นต้องเพิ่ม TPS และมากกว่าโควต้าบริการระดับภูมิภาคที่ Amazon Rekognition API มี โพสต์นี้เสนอวิธีแก้ปัญหาเพื่อเพิ่ม TPS ของ API ไร้สัญชาติโดยใช้หลายภูมิภาค
API ไร้สถานะของ Amazon Rekognition
จาก Amazon Rekognition Image API ที่มีให้ใช้งาน เปรียบเทียบใบหน้า, ตรวจจับใบหน้า, ตรวจหาฉลาก, ตรวจหาModerationLabels, ตรวจจับอุปกรณ์ป้องกัน, ตรวจจับข้อความและ รู้จักคนดัง เป็นคนไร้สัญชาติ พวกเขามีทั้ง Amazon S3 และตัวเลือกไบต์ดิบเพื่อส่งภาพ ตัวอย่างเช่น ในไวยากรณ์คำขอของ DetectFaces
API มีสองตัวเลือกในการส่งไปยัง Image
สนาม: Bytes
or S3Object
.
เมื่อใช้ S3Object
ตัวเลือก สถาปัตยกรรมทั่วไปมีดังนี้
โซลูชันนี้มีเวิร์กโฟลว์ต่อไปนี้:
- แอปพลิเคชันไคลเอนต์เข้าถึงหน้าเว็บที่โฮสต์ด้วย AWS ขยาย.
- แอปพลิเคชันไคลเอ็นต์ได้รับการรับรองความถูกต้องและได้รับอนุญาตจาก Amazon Cognito Co.
- แอปพลิเคชันไคลเอนต์อัปโหลดรูปภาพไปยังบัคเก็ต S3
- Amazon S3 ทริกเกอร์ AWS แลมบ์ดา ฟังก์ชันเรียก Amazon Rekognition
- ฟังก์ชัน Lambda เรียกใช้ Amazon Rekognition API ด้วยตัวเลือก S3Object
- ฟังก์ชันแลมบ์ดาคงผลลัพธ์ไว้เป็น อเมซอน ไดนาโมดีบี ตาราง
เลือก S3Object
ตัวเลือกในสถานการณ์ต่อไปนี้:
- รูปภาพเป็นไฟล์รูปแบบ PNG หรือ JPEG
- คุณปรับใช้สแต็กทั้งหมดในภูมิภาคเดียวกันที่มี Amazon Rekognition
- โควต้าบริการระดับภูมิภาคของ Amazon Rekognition API เป็นไปตามข้อกำหนดของระบบของคุณ
เมื่อคุณไม่ปฏิบัติตามข้อกำหนดทั้งหมดเหล่านี้ คุณควรเลือก Bytes
ตัวเลือก
ใช้ Amazon Rekognition Stateless API ในภูมิภาคอื่น
ตัวอย่างหนึ่งของการใช้ Bytes
ตัวเลือกคือเมื่อคุณต้องการปรับใช้กรณีการใช้งานของคุณในภูมิภาคที่ Amazon Rekognition ไม่สามารถใช้ได้โดยทั่วไป ตัวอย่างเช่น หากคุณมีการแสดงตนของลูกค้าในอเมริกาใต้ (sa-east-1
) ภาค. สำหรับถิ่นที่อยู่ของข้อมูล บัคเก็ต S3 ที่คุณใช้เพื่อจัดเก็บอิมเมจของผู้ใช้จะต้องอยู่ในนั้น sa-east-1
แต่คุณต้องการใช้ Amazon Rekognition สำหรับโซลูชันของคุณ แม้ว่าโดยทั่วไปจะไม่สามารถใช้ได้ใน sa-east-1
. ทางออกหนึ่งคือการใช้ Bytes
ตัวเลือกในการเรียก Amazon Rekognition ในภูมิภาคอื่นที่ Amazon Rekognition ใช้งานได้ เช่น us-east-1
. แผนภาพต่อไปนี้แสดงสถาปัตยกรรมนี้
หลังจากเรียกใช้ฟังก์ชัน Lambda (ขั้นตอนที่ 4) แทนที่จะเรียก Amazon Rekognition โดยตรงกับตำแหน่ง S3 ของรูปภาพ ฟังก์ชันจำเป็นต้องดึงรูปภาพจากบัคเก็ต S3 (ขั้นตอนที่ 5) จากนั้นเรียก Amazon Rekognition ด้วยข้อมูลดิบของรูปภาพ (ขั้นตอนที่ 6). ต่อไปนี้เป็นข้อมูลโค้ดของฟังก์ชันแลมบ์ดา:
โปรดทราบว่าข้อมูลโค้ดก่อนหน้าใช้งานได้โดยตรงกับรูปแบบ JPEG หรือ PNG สำหรับรูปแบบภาพอื่นๆ เช่น BMP จำเป็นต้องมีการประมวลผลภาพเพิ่มเติมเพื่อแปลงเป็น JPEG หรือ PNG ไบต์ก่อนที่จะส่งไปยัง Amazon Rekognition รหัสต่อไปนี้แปลง BMP เป็น JPEG ไบต์:
เพิ่มขนาด TPS ของ API ไร้สัญชาติโดยกระจายการเรียก API ไปยังหลายภูมิภาค
กรณีการใช้งานอื่นของ Bytes
ตัวเลือกคือคุณสามารถขยาย TPS ของ API ไร้สัญชาติได้โดยกระจายการเรียก API ออกเป็นหลายภูมิภาค ด้วยวิธีนี้ คุณจะไม่ถูกจำกัดโดยโควต้าบริการภูมิภาคของ API เพราะคุณสามารถรับ TPS เพิ่มเติมจากภูมิภาคอื่นได้
ในตัวอย่างต่อไปนี้ ฟังก์ชัน Lambda ถูกสร้างขึ้นเพื่อเรียกใช้ Amazon Rekognition DetectLabels
API กับ Bytes
ตัวเลือก. หากต้องการขยาย TPS สูงสุด คุณสามารถกระจายการเรียก API ไปยังหลายภูมิภาคด้วยน้ำหนัก TPS สูงสุดที่คุณสามารถทำได้คำนวณจาก: min(region_1_max_tps/region_1_weight, region_2_max_tps/region_2_weight, … region_n_max_tps/region_n_weight) ตัวอย่างต่อไปนี้ใช้ us-east-1
และ us-west-2
ภูมิภาค
ข้อมูลโค้ดที่จะโทร DetectLabels
API มีดังนี้:
เพราะ us-east-1
และ us-west-2
ทั้งคู่มี TPS สูงสุด 50 สำหรับ Amazon Rekognition DetectFaces API คุณสามารถกระจายการเรียก API ให้เท่ากันด้วยน้ำหนัก 50/50 โดยการตั้งค่าตัวแปรสภาพแวดล้อม REGION_1_TRAFFIC_PERCENTAGE
ถึง 50 ด้วยวิธีนี้ คุณสามารถบรรลุขั้นต่ำ (50/50%, 50/50%) = 100 TPS ในทางทฤษฎี
ในการตรวจสอบแนวคิด ฟังก์ชัน Lambda จะแสดงเป็น REST API ด้วย Amazon API Gateway Amazon. แล้วก็ JMeter ใช้ในการโหลดทดสอบ API
REGION_1_TRAFFIC_PERCENTAGE
ตั้งค่าครั้งแรกเป็น 100 ด้วยวิธีนี้ทั้งหมด DetectFaces
การเรียก API ถูกส่งไปที่ us-east-1
เท่านั้น. ตามทฤษฎีแล้ว TPS สูงสุดที่สามารถทำได้จะถูกจำกัดโดยโควต้าบริการใน us-east-1
ซึ่งเท่ากับ 50 TPS ทดสอบการโหลดบนจุดสิ้นสุด API แบบกำหนดเอง โดยเริ่มจาก 50 เธรดพร้อมกัน และเพิ่มทีละ 5 เธรดจนกระทั่ง ProvisionedThroughputExceededException
ส่งคืนจาก Amazon Rekognition ถูกสังเกต
REGION_1_TRAFFIC_PERCENTAGE
จากนั้นตั้งค่าเป็น 50 ด้วยวิธีนี้ทั้งหมด DetectLabels
การเรียก API จะถูกส่งไปยัง us-east-1
และ us-west-2
. ตามทฤษฎีแล้ว TPS สูงสุดที่สามารถทำได้คือโควต้าบริการที่ทั้งสองภูมิภาครวมกัน ซึ่งก็คือ 100 TPS เริ่มการทดสอบการโหลดอีกครั้งจาก 100 เธรดเพื่อหา TPS สูงสุด
ตารางต่อไปนี้สรุปผลการทดสอบโหลด
เปอร์เซ็นต์ของการเรียก API ของ DetectLabels ไปยัง us-east-1 | เปอร์เซ็นต์ของการเรียก API ของ DetectLabels ไปยัง us-west-2 | TPS สูงสุดในทางทฤษฎี | การทำงานพร้อมกันสูงสุดโดยไม่มี มีการเตรียมใช้งานThroughputExceededException |
100 | 0 | 50 | 70 |
50 | 50 | 100 | 145 |
สรุป
ลูกค้าจำนวนมากกำลังใช้ API ไร้สถานะของ Amazon Rekognition Image สำหรับกรณีการใช้งานต่างๆ รวมถึงการยืนยันตัวตน การกลั่นกรองเนื้อหา การประมวลผลสื่อ และอื่นๆ โพสต์นี้กล่าวถึงสองตัวเลือกในการส่งรูปภาพและวิธีใช้ตัวเลือกไบต์ดิบสำหรับกรณีการใช้งานต่อไปนี้:
- ความพร้อมใช้งานระดับภูมิภาคของ Amazon Rekognition
- ถิ่นที่อยู่ของข้อมูลลูกค้า
- ปรับขนาด TPS ของ API ไร้สถานะของ Amazon Rekognition
ตรวจสอบวิธีการใช้ Amazon Rekognition กรณีการใช้งานคอมพิวเตอร์วิทัศน์ที่แตกต่างกัน และเริ่มต้นเส้นทางแห่งนวัตกรรมของคุณ
เกี่ยวกับผู้เขียน
ชารอน ลี เป็นสถาปนิกโซลูชันที่ AWS ซึ่งตั้งอยู่ในเขตบอสตัน รัฐแมสซาชูเซตส์ เธอทำงานร่วมกับลูกค้าระดับองค์กร ช่วยพวกเขาแก้ปัญหายากๆ และสร้างบน AWS นอกเวลางาน เธอชอบใช้เวลากับครอบครัวและสำรวจร้านอาหารในท้องถิ่น
ไวภาวชาห์ เป็นสถาปนิกโซลูชันอาวุโสของ AWS และชอบช่วยเหลือลูกค้าด้วยทุกสิ่งบนระบบคลาวด์และเปิดใช้งานเส้นทางการปรับใช้ระบบคลาวด์ นอกเวลางาน เขาชอบท่องเที่ยว สำรวจสถานที่และร้านอาหารใหม่ๆ ทำอาหาร ติดตามกีฬา เช่น คริกเก็ตและฟุตบอล ดูภาพยนตร์และซีรีส์ (แฟนพันธุ์แท้ Marvel) และกิจกรรมผจญภัย เช่น ปีนเขา กระโดดร่ม และอื่นๆ อีกมากมาย
- ขั้นสูง (300)
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- ความหมายของ Amazon
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ในการธนาคาร
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- AWS Machine Learning AWS
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- ดัล-อี
- การเรียนรู้ลึก ๆ
- google ai
- เรียนรู้เครื่อง
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ขนาดไอ
- วากยสัมพันธ์
- วิธีการทางเทคนิค
- ลมทะเล