عن المشروع

يُعد تحويل AWS Serverless Application Model (SAM) ماكرو CloudFormation مفتوح المصدر يقوم بترجمة القوالب المبسطة الخاصة بـ SAM إلى قوالب CloudFormation قياسية. يوسع هذا التحويل البنية الأساسية لـ CloudFormation بإضافة أنواع موارد ذات مستوى أعلى مثل AWS::Serverless::Function وAWS::Serverless::Api وAWS::Serverless::SimpleTable، مما يسمح للمطورين بتعريف تطبيقات Serverless مع تقليل الكود المكرر. تشمل القدرات الرئيسية ما يلي: - **تحويل القوالب**: إضافة `Transform: AWS::Serverless-2016-10-31` إلى قالب CloudFormation لتمكين أنواع موارد SAM. يقوم التحويل بتوسيع التعريفات المختصرة لتساويها بكامل نظيراتها في CloudFormation، بما في ذلك أدوار IAM والأذونات وتMappings لمصادر الأحداث. - **الممارسات المدمجة**: يقوم تلقائياً بإنشاء أدوار IAM بسياسات الحد الأدنى من الصلاحيات، ويربط سياسات مُدارة مثل AWSLambdaBasicExecutionRole، ويطبق افتراضات معقولة لإعدادات وقت التشغيل والمعالج وحدود الوقت. - **الاختبار والتصحيح المحلي**: يتكامل مع أداة سطر الأوامر الخاصة بـ AWS SAM (مثل sam sync, sam local invoke, sam local start-api) لتشغيل واختبار تطبيقات Serverless محلياً قبل نشرها على AWS. - **قوالب السياسات والموصلات**: يدعم قوالب سياسات IAM قابلة لإعادة الاستخدام وموصلات الموارد لتبسيط إدارة الأذونات عبر موارد متعددة. - **دعم وقت تشغيل متعدد**: يعمل مع أوقات تشغيل Lambda بما في ذلك Node.js وPython وJava وGo و.NET وRuby، بالإضافة إلى نشر صور الحاويات. تم كتابة المشروع بلغة Python (الإصدار 3.8+) ونشره كحزمة `aws-sam-translator` على PyPI. يعتمد التطوير على سير عمل قائم على Makefile، حيث يتم استخدام `make init` لإعداد الاعتماديات و`make pr` لتشغيل مجموعة الاختبارات. يتضمن المستوديع سير عمل CI لاختبار البناء وتحديث المخططات، ويدعم المساهمات عبر Gitpod. يتضمن الاستخدام النموذجي كتابة قالب SAM بصيغة YAML أو JSON، ونشره باستخدام CLI الخاص بـ SAM أو مباشرة عبر CloudFormation، والاستفادة من التحويل لتوليد البنية التحتية الأساسية. يوفر المشروع أيضاً وثائق شاملة تشمل دليل المطور ومواصفات القوالب وورش عمل تعليمية لتطوير تطبيقات Serverless على AWS.