استفاده از تریگرهای S3 برای نگهداری لیستی از فایل‌ها در DynamoDB - وبلاگ سایمون ویلیسون

استفاده از تریگرهای S3 برای نگهداری لیستی از فایل‌ها در DynamoDB. امروز صبح یک نمونه اولیه تجربی از سیستمی ساختم برای ردیابی کارآمد فایل‌هایی که به یک سطل بزرگ S3 اضافه شده‌اند، با نگهداری یک جدول DynamoDB موازی با استفاده از تریگرهای S3 و AWS lambda.

من با این درخواست واحد به پروژه سفارشی Claude خود به 80 درصد راه رسیدم:

برنامه CLI پایتون با استفاده از boto3 با دستوراتی برای ایجاد یک سطل S3 جدید که آن را پیکربندی می‌کند تا دارای تریگرهای رویداد S3 lambada باشد که یک جدول dynamodb حاوی فراداده‌هایی در مورد همه فایل‌های موجود در آن سطل را نگه می‌دارد. این دستورات را شامل کنید

  • create_bucket - یک سطل ایجاد می‌کند و تریگرها و جداول dynamo مرتبط را تنظیم می‌کند
  • list_files - لیستی از فایل‌ها را صرفاً بر اساس پرس و جو از dynamo به من نشان می‌دهد

سپس ChatGPT من را به نقطه 95٪ رساند. کد تولید شده توسط Claude شامل یک اشکال آشکار بود، بنابراین من کد را در o3-mini-high جایگذاری کردم با این فرض که "استدلال" اغلب یک راه عالی برای رفع این نوع خطاها است:

شناسایی، توضیح و سپس رفع هر گونه اشکال در این کد:

کد از Claude در اینجا جایگذاری شده است

... و جدا از افزودن چند فراخوانی time.sleep() برای رفع خطاهای زمان‌بندی در توزیع خط‌مشی IAM، همه چیز کار کرد!

رسیدن از یک ایده خام به یک اثبات مفهوم کارآمد از چیزی شبیه به این با کمتر از 15 دقیقه درخواست، فوق‌العاده ارزشمند است.

این دقیقاً همان نوع پروژه‌ای است که من در گذشته از آن اجتناب می‌کردم، به دلیل عدم تحمل تقریباً غیرمنطقی من از ناامیدی ناشی از کشف جزئیات فردی هر فراخوان به S3، IAM، AWS Lambda و DynamoDB.