
يحوّل قوالب SAM إلى موارد CloudFormation، مولّدًا دوال Lambda وأدوار IAM وسياسات تتضمن أفضل ممارسات serverless المدمجة.
تحويل AWS Serverless Application Model (AWS SAM) هو ماكرو AWS CloudFormation يحوّل قوالب SAM إلى قوالب CloudFormation.
لاستخدام تحويل SAM، أضف AWS::Serverless-2016-10-31 إلى قسم Transform في قالب CloudFormation الخاص بك.
من فوائد استخدام تحويل SAM:
احفظ ما يلي كملف template.yaml:
Transform: AWS::Serverless-2016-10-31
Resources:
MyFunction:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs24.x
Handler: index.handler
InlineCode: |
exports.handler = async (event) => {
console.log(event);
}
وانشره باستخدام SAM CLI:
sam sync --stack-name sam-app
سينشئ مورد AWS::Serverless::Function دالة AWS Lambda تسجّل الأحداث التي تستقبلها.
في الخلفية، يتم تحويل القالب إلى المكافئ JSON لقالب CloudFormation التالي:
Resources:
MyFunction:
Type: AWS::Lambda::Function
Properties:
Code:
ZipFile: |
exports.handler = async (event) => {
console.log(event);
}
Handler: index.handler
Role: !GetAtt MyFunctionRole.Arn
Runtime: nodejs24.x
Tags:
- Key: lambda:createdBy
Value: SAM
MyFunctionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Action:
- sts:AssumeRole
Effect: Allow
Principal:
Service:
- lambda.amazonaws.com
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Tags:
- Key: lambda:createdBy
Value: SAM
للحصول على مقدمة أكثر شمولًا، راجع هذا البرنامج التعليمي في دليل المطوّر.
ستحتاج إلى تثبيت Python 3.8+.
أنشئ بيئة افتراضية:
python3 -m venv .venv
source .venv/bin/activate
قم بإعداد التبعيات:
make init
شغّل الاختبارات:
make pr
راجع DEVELOPMENT_GUIDE.md لمزيد من تعليمات التطوير، وCONTRIBUTING.md لإرشادات المساهمة.
أفضل طريقة للتفاعل مع الفريق هي عبر GitHub. يمكنك إما إنشاء Issue أو بدء نقاش.
يمكنك أيضًا الانضمام إلى قناة #samdev على Slack.