در گذشته پست های وبلاگ، ما یک راه حل تأیید هویت انتها به انتها را در یک منطقه AWS توضیح دادیم. راه حل استفاده می کند شناسایی آمازون رابط های برنامه کاربردی ردیابی برای تشخیص چهره و مقایسه چهره ها برای مقایسه چهره ما آن APIها را به عنوان APIهای بدون حالت در نظر می گیریم زیرا به شناسایی آمازون وابسته نیستند. مجموعه چهره. آنها همچنین idempotent هستند، به این معنی که تماس های مکرر با پارامترهای یکسان، همان نتیجه را نشان می دهد. آنها گزینه های انعطاف پذیری را برای ارسال تصاویر، چه از طریق یک، ارائه می دهند سرویس ذخیره سازی ساده آمازون مکان (Amazon S3) یا بایت های خام.
در این پست بر روی تصویر شناسایی آمازون API های بدون حالت، و درباره دو گزینه ارسال تصاویر و زمان انتخاب یکی از روی دیگری از دیدگاه معماری سیستم بحث کنید. سپس در مورد چگونگی مقیاس بندی API های بدون حالت برای غلبه بر برخی محدودیت های منطقه ای بحث می کنیم. هنگامی که در مورد مقیاس پذیری صحبت می کنیم، اغلب به حداکثر تراکنش در ثانیه (TPS) اشاره می کنیم که راه حل می تواند انجام دهد. به عنوان مثال، هنگام میزبانی یک رویداد بزرگ که از دید کامپیوتری برای شناسایی چهره ها یا برچسب های اشیا استفاده می کند، ممکن است با افزایش ترافیک مواجه شوید و نمی خواهید سیستم دریچه گاز را کاهش دهد. این بدان معناست که گاهی اوقات نیاز به افزایش TPS و حتی فراتر از سهمیه خدمات منطقه ای آمازون Rekognition API دارید. این پست راه حلی را برای افزایش TPS API های بدون حالت با استفاده از چندین منطقه پیشنهاد می کند.
API های بدون حالت شناسایی آمازون
از میان APIهای تصویر شناسایی آمازون موجود، مقایسه چهره ها, ردیابی, DetectLabels, DetectModerationLabels, DetectProtectiveEquipment, متن ردیابیو افراد مشهور را بشناسید بی تابعیت هستند آنها هر دو گزینه Amazon S3 و بایت خام را برای ارسال تصاویر ارائه می دهند. به عنوان مثال، در دستور درخواست از DetectFaces
API، دو گزینه برای ارسال به آن وجود دارد Image
رشته: Bytes
or S3Object
.
هنگام استفاده از S3Object
گزینه، یک معماری معمولی به شرح زیر است.
این راه حل دارای گردش کار زیر است:
- برنامه مشتری به یک صفحه وب میزبانی شده با AWS تقویت کنید.
- برنامه مشتری با احراز هویت و مجاز است Cognito آمازون.
- برنامه مشتری یک تصویر را در یک سطل S3 آپلود می کند.
- آمازون S3 یک را راه اندازی می کند AWS لامبدا تابعی برای فراخوانی آمازون Rekognition.
- تابع Lambda API های شناسایی آمازون را با گزینه S3Object فراخوانی می کند.
- تابع لامبدا نتیجه را تا یک ادامه می دهد آمازون DynamoDB جدول.
انتخاب S3Object
گزینه در سناریوهای زیر:
- تصویر با فرمت PNG یا JPEG است
- شما کل پشته را در همان منطقه ای که Amazon Rekognition در دسترس است مستقر می کنید
- سهمیه خدمات منطقه ای آمازون Rekognition API نیاز سیستم شما را برآورده می کند
وقتی همه این الزامات را ندارید، باید آن را انتخاب کنید Bytes
گزینه.
از API های بدون حالت شناسایی آمازون در منطقه ای متفاوت استفاده کنید
یک نمونه از استفاده از Bytes
گزینه زمانی است که میخواهید مورد استفاده خود را در منطقهای مستقر کنید که شناسایی آمازون به طور کلی در دسترس نیست، به عنوان مثال، اگر مشتری در آمریکای جنوبی حضور دارید (sa-east-1
) منطقه. برای اقامت داده ها، سطل S3 که برای ذخیره تصاویر کاربران استفاده می کنید باید در آن باشد sa-east-1
، اما شما می خواهید از شناسایی آمازون برای راه حل خود استفاده کنید حتی اگر به طور کلی در دسترس نیست sa-east-1
. یکی از راه حل ها استفاده از Bytes
گزینه ای برای فراخوانی آمازون Rekognition در منطقه دیگری که آمازون Rekognition در دسترس است، مانند us-east-1
. نمودار زیر این معماری را نشان می دهد.
پس از فعال شدن تابع Lambda (مرحله 4)، به جای فراخوانی مستقیم آمازون Rekognition با مکان S3 تصویر، تابع باید تصویر را از سطل S3 بازیابی کند (مرحله 5)، سپس آمازون Rekognition را با بایت های خام تصویر فراخوانی کند (مرحله). 6). کد زیر یک قطعه کد از تابع Lambda است:
توجه داشته باشید که قطعه کد قبلی مستقیماً برای فرمتهای JPEG یا PNG کار میکند. برای سایر فرمتهای تصویر، مانند BMP، پردازش تصویر اضافی برای تبدیل آن به بایتهای JPEG یا PNG قبل از ارسال به آمازون Rekognition مورد نیاز است. کد زیر BMP را به بایت JPEG تبدیل می کند:
با گسترش فراخوانی های API در چندین منطقه، TPS API های بدون حالت را افزایش دهید
مورد استفاده دیگر از Bytes
گزینه این است که میتوانید TPS APIهای بدون حالت را با پخش کردن فراخوانهای API در چندین منطقه افزایش دهید. به این ترتیب، شما توسط سهمیه خدمات منطقه ای API محدود نمی شوید زیرا می توانید TPS اضافی را از مناطق دیگر بدست آورید.
در مثال زیر، یک تابع Lambda برای فراخوانی آمازون 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
هر دو دارای حداکثر 50 TPS برای Amazon Rekognition DetectFaces API هستند، می توانید با تنظیم متغیر محیطی، تماس های API را با وزن 50/50 به طور مساوی پخش کنید. REGION_1_TRAFFIC_PERCENTAGE
به 50. به این ترتیب، شما می توانید حداقل (50/50٪، 50/50%) = 100 TPS در تئوری به دست آورید.
برای تایید این ایده، تابع Lambda به عنوان یک REST API با نمایش داده می شود دروازه API آمازون. سپس JMeter برای بارگذاری تست API استفاده می شود.
REGION_1_TRAFFIC_PERCENTAGE
ابتدا روی 100 تنظیم شده است، به این ترتیب همه DetectFaces
تماس های API به ارسال می شود us-east-1
فقط. در تئوری، حداکثر TPSی که می توان به دست آورد با سهمیه خدمات در محدود می شود us-east-1
که 50 TPS است. بارگذاری آزمایش در نقطه پایانی API سفارشی، با 50 رشته همزمان شروع می شود، به تدریج 5 رشته را اضافه می کند تا اینکه ProvisionedThroughputExceededException
بازگشت از آمازون Rekognition مشاهده می شود.
REGION_1_TRAFFIC_PERCENTAGE
سپس روی 50 تنظیم می شود، به این ترتیب همه DetectLabels
تماس های API به طور یکنواخت ارسال می شوند us-east-1
و us-west-2
. در تئوری، حداکثر TPS که می توان به دست آورد، سهمیه خدماتی است که دو منطقه با هم ترکیب می کنند، که 100 TPS است. تست بار را دوباره از 100 رشته شروع کنید تا حداکثر TPS را بیابید.
جدول زیر نتایج آزمایش بار را خلاصه می کند.
درصد تماسهای DetectLabels API با us-east-1 | درصد تماسهای DetectLabels API با us-west-2 | حداکثر TPS در تئوری | حداکثر اجراهای همزمان بدون ProvisionedThroughputExceededException |
100 | 0 | 50 | 70 |
50 | 50 | 100 | 145 |
نتیجه
بسیاری از مشتریان از APIهای بدون حالت آمازون Rekognition Image برای موارد استفاده مختلف از جمله تأیید هویت، تعدیل محتوا، پردازش رسانه و موارد دیگر استفاده می کنند. در این پست دو گزینه ارسال تصاویر و نحوه استفاده از گزینه بایت خام برای موارد استفاده زیر مورد بحث قرار گرفته است:
- در دسترس بودن منطقه ای شناسایی آمازون
- اقامت داده های مشتری
- افزایش TPS API های بدون حالت آمازون Rekognition
نحوه استفاده از آمازون Rekognition را بررسی کنید موارد مختلف استفاده از بینایی کامپیوتر و سفر نوآوری خود را آغاز کنید.
درباره نویسنده
شارون لی یک معمار راه حل در AWS، مستقر در منطقه بوستون، MA است. او با مشتریان سازمانی کار می کند و به آنها کمک می کند تا مشکلات دشوار را حل کنند و بر اساس AWS بسازند. خارج از محل کار، او دوست دارد با خانواده اش وقت بگذراند و رستوران های محلی را کشف کند.
وایباواه شاه یک معمار ارشد راه حل با AWS است و میخواهد به مشتریان خود در امور ابری کمک کند و سفر پذیرش ابری آنها را فعال کند. خارج از محل کار، او عاشق سفر، کاوش در مکانها و رستورانهای جدید، آشپزی، دنبال کردن ورزشهایی مانند کریکت و فوتبال، تماشای فیلم و سریال (طرفدار مارول) و فعالیتهای ماجراجویانه مانند پیادهروی، چتربازی است و این فهرست ادامه دارد.
- پیشرفته (300)
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- شناسایی آمازون
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- نحوه فنی
- زفیرنت