Serverless AWS Lambda Development · درس

AWS Serverless Application Model (SAM)

تعلّم تعريف التطبيقات عديمة الخوادم وتطويرها ونشرها باستخدام AWS SAM، وهو إطار عمل مفتوح المصدر للبناء على AWS

الدرس 1 من 411 خطوة

AWS Serverless Application Model (SAM) درس مجاني في Serverless AWS Lambda Development على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Serverless AWS Lambda Development، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Serverless AWS Lambda Development 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Simplify Serverless with AWS SAM

AWS Serverless Application Model (SAM) is an open-source framework that simplifies building and deploying serverless applications on AWS.

It extends AWS CloudFormation, giving you a special, easier syntax for defining serverless resources like Lambda functions, API Gateways, and DynamoDB tables. SAM helps you manage your entire serverless app as a single unit.

SAM Template: The Blueprint

At the core of every SAM application is the template.yaml file. This YAML (or JSON) file acts as the blueprint, describing all the serverless resources that make up your application.

SAM templates are essentially AWS CloudFormation templates, but they include a crucial Transform property that unlocks SAM's simplified, serverless-specific syntax.

Anatomy of a SAM Template

Let's look at the key sections you'll find in a template.yaml file:

  • AWSTemplateFormatVersion: Standard CloudFormation version.
  • Transform: AWS::Serverless-2016-10-31: This is vital! It tells CloudFormation to use SAM's simplified syntax.
  • Description: A short explanation of your application.
  • Resources: This is where you define all your serverless components like Lambda functions, APIs, and databases.

Defining a Serverless Function

In SAM, you define a Lambda function using the AWS::Serverless::Function resource type. You specify essential properties like its runtime, entry point (handler), memory, and how it gets triggered.

  • Type: AWS::Serverless::Function: Identifies it as a Lambda.
  • Handler: The function within your code that AWS Lambda calls to begin execution (e.g., app.lambda_handler).
  • Runtime: The programming language environment (e.g., python3.9, nodejs16.x).
  • CodeUri: The local path to your function's source code.
  • Events: Specifies how your function is invoked (e.g., an API Gateway endpoint).

Our 'Hello World' Lambda Handler

Here's a simple Python Lambda function. It will be the code executed when our serverless function is invoked. It just returns a 'Hello from Lambda!' message.

import json

def lambda_handler(event, context):
    # Log the event for debugging purposes
    print("Received event: " + json.dumps(event))

    # Basic response for API Gateway
    response = {
        "statusCode": 200,
        "body": json.dumps("Hello from Lambda!")
    }
    return response

SAM Template for Our Function

Now, let's define our 'Hello World' Lambda function in a template.yaml. We'll set it up to be triggered by an API Gateway GET request at the /hello path.

This template assumes your Python code (app.py) is in a folder named hello_world/ next to this template.yaml file.

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A simple "Hello World" serverless application.

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: app.lambda_handler
      Runtime: python3.9
      CodeUri: hello_world/
      MemorySize: 128
      Timeout: 30
      Events:
        HelloWorldApi:
          Type: Api
          Properties:
            Path: /hello
            Method: GET

The SAM CLI: Your Deployment Tool

The AWS SAM Command Line Interface (CLI) is your main tool for developing and deploying SAM applications. It provides commands to initialize projects, build dependencies, test locally, and deploy your application to AWS.

  • sam init: Start a new serverless project.
  • sam build: Package your application code and dependencies.
  • sam deploy: Deploy your application to AWS CloudFormation.

Building Your SAM Application

Before you can deploy your application, you need to 'build' it. The sam build command collects your code, bundles any dependencies (like Python packages), and prepares everything into a deployable package.

This command creates a .aws-sam directory containing the processed artifacts.

sam build

Deploying Your SAM Application

Once built, use sam deploy to push your application to AWS. This command creates or updates a CloudFormation stack based on your SAM template, provisioning all the necessary resources.

You'll need to specify a unique stack name and an S3 bucket for code artifacts. The --capabilities CAPABILITY_IAM argument acknowledges that your template creates IAM roles.

sam deploy --stack-name my-hello-app \
           --s3-bucket your-unique-s3-bucket-name \
           --capabilities CAPABILITY_IAM \
           --region us-east-1

Quick Check: SAM Template Components

Which of the following are essential components or sections found within a typical AWS SAM template (template.yaml)?

Recap: Your SAM Journey Begins!

You've just learned the fundamentals of AWS SAM!

  • SAM simplifies serverless application development and deployment using a CloudFormation-based template.
  • Key components include the template.yaml with its Transform property and Resources section.
  • The SAM CLI provides commands like sam init, sam build, and sam deploy to manage your applications.

With SAM, you can efficiently define, build, and deploy complex serverless architectures, making it a powerful tool for serverless development.

البدء مجانًا

تعلم Serverless AWS Lambda Development مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
12
الدروس
48

الأسئلة الشائعة

هل درس «AWS Serverless Application Model (SAM)» مجاني؟

نعم — نص درس «AWS Serverless Application Model (SAM)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Serverless AWS Lambda Development، انتقل إلى CoddyKit PRO. تتضمن دورة Serverless AWS Lambda Development 4 دروس في المجموع.

ماذا ستتعلم في «AWS Serverless Application Model (SAM)»؟

تعلّم تعريف التطبيقات عديمة الخوادم وتطويرها ونشرها باستخدام AWS SAM، وهو إطار عمل مفتوح المصدر للبناء على AWS تتمرن على Serverless AWS Lambda Development مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Serverless AWS Lambda Development؟

لا تُشترط خبرة سابقة. Serverless AWS Lambda Development على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «AWS Serverless Application Model (SAM)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Serverless AWS Lambda Development هذا؟

نعم. كل درس في Serverless AWS Lambda Development يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. AWS Serverless Application Model (SAM)
  2. مقدمة إلى Serverless Framework
  3. CI/CD للتطبيقات عديمة الخوادم
  4. الاختبار المحلي باستخدام SAM CLI
← العودة إلى Serverless AWS Lambda Development