הגדרת AWS SAM ופריסת backend ללא שרתים

פיתוח backends ללא שרתים נתקל לא פעם בקירות של תצורות מסורבלות ומורכבויות פריסה. אנו מגדירים AWS SAM ופורסים יישומי Serverless במפתח מלא, והופכים את CloudFormation לתבניות תמציתיות. הצוות שלנו מטפל במחזור כולו—מביקורת ועד תמיכה—ומספק פתרון אמין שגדל עם העסק שלכם.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הגדרת AWS SAM ופריסת backend ללא שרתים
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

למה AWS SAM, ולא Serverless Framework?

העברנו חמישה פרויקטים מ-Serverless Framework ל-AWS SAM וראינו יתרונות בכל פעם: פחות עקיפות, מחסנית CloudFormation שקופה, אינטגרציה טבעית עם CDK. SAM הוא לא סתם שכבת הפשטה נוספת — הוא הכלי הרשמי של AWS, תואם לחלוטין ל-CloudFormation: הפלט הוא מחסנית מלאה שניתן לבצע לה versioning ולבצע rollback. במקום 50 שורות של CloudFormation עבור Lambda + API Gateway + IAM Role, כותבים 10 שורות של SAM. זה מקצר את זמן הפיתוח של ה-backend ב-40% ומפחית את הסיכון לשגיאות תצורה. פרויקט SAM טיפוסי עולה 30–50% פחות מהמקבילה ב-Serverless Framework, בזכות פחות קוד וללא תוספים.

למהנדסים שלנו עם הסמכת AWS יש 5 שנות ניסיון בארכיטקטורות serverless והם סיפקו מעל 30 פרויקטי SAM. אנו מבטיחים תאימות למחסנית שלך ואופטימיזציית עלויות — לדוגמה, שימוש ב-Graviton2 חוסך עד 20% על Lambda, ועלויות התשתית יורדות ב-40% בעת מעבר מ-EC2 ל-Lambda. כפי ש-AWS מציינת: "SAM היא הדרך הקלה ביותר לבנות יישומי serverless".

למה Graviton2? מעבדי AWS Graviton2 המבוססים על ארכיטקטורת ARM64 מספקים עד 20% ביצועים טובים יותר למחיר בהשוואה ל-x86. SAM מאפשר לבחור את הארכיטקטורה בתבנית עם שורה אחת.

השוואה: SAM לעומת Serverless Framework

קריטריון AWS SAM Serverless Framework
הפשטה הרחבה ישירה של CloudFormation תחביר מותאם אישית עם ספקים
גודל תבנית 10 שורות לפונקציה פשוטה 15–20 שורות עם תוספים
אינטגרציית AWS טבעית, תמיכה מלאה בשירותים נדרשים תוספים לחלק מהשירותים
פיתוח מקומי SAM CLI + Docker serverless-offline
Versioning של מחסנית CloudFormation Change Sets כלים נפרדים

איך להקים CI/CD עבור SAM?

אינטגרציה ואספקה רציפות הן חובה בכל ארכיטקטורת production. SAM משתלב בצורה חלקה עם pipelines פופולריים: GitHub Actions, GitLab CI, AWS CodePipeline. תרחיש טיפוסי: ב-push לענף main, הוא מריץ sam build ומבצע deploy לסביבת # .github/workflows/deploy.yml (фрагмент) - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/GitHubActions aws-region: eu-west-1 - name: SAM build and deploy run: | sam build sam deploy --no-confirm-changeset --no-fail-on-empty-changeset עם אישור אוטומטי של Change Sets.

# .github/workflows/deploy.yml (фрагмент)
- name: Configure AWS credentials
  uses: aws-actions/configure-aws-credentials@v4
  with:
    role-to-assume: arn:aws:iam::123456789012:role/GitHubActions
    aws-region: eu-west-1
- name: SAM build and deploy
  run: |
    sam build
    sam deploy --no-confirm-changeset --no-fail-on-empty-changeset

לתצורה מרובת סביבות, השתמש ב-samconfig.toml עם פרופילים שונים. Rollback מתבצע באמצעות פקודת rollback-stack הסטנדרטית של CloudFormation — ללא זמן השבתה.

מה כלול בהקמת Backend עם SAM?

העבודה שלנו מכסה את כל המחזור: מבדיקת הארכיטקטורה הנוכחית שלך ועד מסירת תיעוד.

  • מסמך ארכיטקטורה: דיאגרמת שירותים, בחירת זמן ריצה של Lambda, חישובי זיכרון וזמן קצוב.
  • template.yaml: כל המשאבים (Lambda, API Gateway, DynamoDB, SQS, S3) עם מדיניות ומשתני סביבה.
  • קוד מקור של Lambda: handlers ב-TypeScript/Node.js 20, JWT authorizer, middlewares, בדיקות.
  • תצורת סביבות: dev/staging/prod עם שלבים שונים, פרמטרי SSM לסודות.
  • Pipeline של CI/CD: workflow מוכן לשימוש עבור GitHub Actions או GitLab CI.
  • תיעוד והדרכה: README עם דוגמאות קריאות, תיאורי משתנים, הוראות למפתחים.
  • אחריות: שבוע של תמיכה לאחר הפריסה לתיקון כל תקלה.

התחלה מהירה: התקנה ומבנה

brew tap aws/tap
brew install aws-sam-cli
# или: pip install aws-sam-cli
sam --version
# SAM CLI, version 1.x
sam init --runtime nodejs20.x --dependency-manager npm --app-template hello-world --name my-backend

מבנה הפרויקט:

  • brew tap aws/tap brew install aws-sam-cli # или: pip install aws-sam-cli sam --version # SAM CLI, version 1.x sam init --runtime nodejs20.x --dependency-manager npm --app-template hello-world --name my-backend — תבנית SAM
  • template.yaml — תצורת פריסה
  • samconfig.toml — handlers (api.ts, auth.ts, worker.ts)
  • src/handlers/ — קוד משותף (db.ts, response.ts)
  • src/shared/ — אירועי בדיקה
  • events/ — בדיקות

תצורת תבנית ו-Handler

אלמנטים מרכזיים של template.yaml:

---
AWSTemplateFormatVersion: '2010-09-31'
Transform: AWS::Serverless-2016-10-31
Description: My Web Backend
Globals:
  Function:
    Runtime: nodejs20.x
    Architectures: [arm64]
    MemorySize: 512
    Timeout: 10
  Api:
    Cors:
      AllowMethods: "'*'"
Resources:
  ApiGateway:
    Type: AWS::Serverless::HttpApi
    Properties:
      StageName: !Ref Stage
      Auth:
        DefaultAuthorizer: LambdaAuthorizer
        Authorizers:
          LambdaAuthorizer:
            FunctionArn: !GetAtt AuthFunction.Arn
  ApiFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: src/handlers/api.handler
      Events:
        AnyRoute:
          Type: HttpApi
          Properties:
            ApiId: !Ref ApiGateway
            Method: ANY
            Path: /api/{proxy+}
      Policies:
        - DynamoDBCrudPolicy:
            TableName: !Ref MainTable
    Metadata:
      BuildMethod: esbuild
      BuildProperties:
        Minify: true
        Target: es2022
---

דוגמה ל-Lambda Authorizer:

import { verify } from 'jsonwebtoken';

export const handler = async (event) => {
  const token = event.headers?.authorization?.replace('Bearer ', '');
  if (!token) return { isAuthorized: false };
  try {
    const payload = verify(token, process.env.JWT_SECRET!);
    return { isAuthorized: true, context: { userId: String(payload.sub) } };
  } catch {
    return { isAuthorized: false };
  }
};

איך לייעל עלויות SAM?

  • השתמש ב-Graviton2 (arm64) — חיסכון של עד 20% על Lambda.
  • הגדר Provisioned Concurrency רק לפונקציות קריטיות.
  • הגדר CloudWatch Lambda Insights לניטור וזיהוי בקשות לא יעילות.
  • העבר נכסים סטטיים ל-S3 + CloudFront, אל תעמיס על API Gateway.
  • ייעל את גודל חבילת הפריסה: מיניפיקציית esbuild, tree-shaking.

פיתוח מקומי ו-CI/CD

להרצה מקומית, אנו משתמשים ב-__tests__/ עם DynamoDB מדומה דרך Docker. תצורת הסביבה מוגדרת ב-AWSTemplateFormatVersion: '2010-09-31' Transform: AWS::Serverless-2016-10-31 Description: My Web Backend Globals: Function: Runtime: nodejs20.x Architectures: [arm64] MemorySize: 512 Timeout: 10 Api: Cors: AllowMethods: "'*'" Resources: ApiGateway: Type: AWS::Serverless::HttpApi Properties: StageName: !Ref Stage Auth: DefaultAuthorizer: LambdaAuthorizer Authorizers: LambdaAuthorizer: FunctionArn: !GetAtt AuthFunction.Arn ApiFunction: Type: AWS::Serverless::Function Properties: Handler: src/handlers/api.handler Events: AnyRoute: Type: HttpApi Properties: ApiId: !Ref ApiGateway Method: ANY Path: /api/{proxy+} Policies: - DynamoDBCrudPolicy: TableName: !Ref MainTable Metadata: BuildMethod: esbuild BuildProperties: Minify: true Target: es2022 :

[default.deploy.parameters]
stack_name = "my-backend-dev"
s3_bucket = "artifacts-bucket"
region = "eu-west-1"
parameter_overrides = "Stage=dev"

הפריסה מתבצעת עם:

sam build && sam deploy --config-env dev # или для prod sam build && sam deploy --config-env prod 

התהליך כולל בנייה (מיניפיקציית esbuild), יצירת Change Set, ויישום. Rollback משתמש בפקודת import { verify } from 'jsonwebtoken'; export const handler = async (event) => { const token = event.headers?.authorization?.replace('Bearer ', ''); if (!token) return { isAuthorized: false }; try { const payload = verify(token, process.env.JWT_SECRET!); return { isAuthorized: true, context: { userId: String(payload.sub) } }; } catch { return { isAuthorized: false }; } }; הסטנדרטית של CloudFormation.

תהליך ולוחות זמנים

שלב משך תוצאה
ניתוח ארכיטקטורה 0.5–1 יום מסמך עם המלצות
עיצוב תבנית SAM 1–2 ימים template.yaml, samconfig.toml
מימוש פונקציות Lambda 2–3 ימים handlers, שכבת משותפת, בדיקות
אינטגרציה עם שירותים 1–2 ימים DynamoDB, SQS, S3, API Gateway
בדיקות וניפוי שגיאות 1–2 ימים בדיקות יחידה ואינטגרציה
פריסה ו-CI/CD יום אחד Pipeline (GitHub Actions / GitLab CI)
תיעוד והדרכה 0.5 יום README, דוגמאות קריאות

Backend בסיסי של SAM עם Lambda אחת ו-DynamoDB — 1–2 ימים. ארכיטקטורה מלאה עם authorizer, עובדי רקע וסביבות מרובות — 4–5 ימים. התאמת קוד Express/Fastify קיים — 3–5 ימים.

צור קשר כדי להעריך את הפרויקט שלך — המהנדסים שלנו ינתחו את הארכיטקטורה הנוכחית שלך ויכינו הצעה מסחרית. הזמן הקמת AWS SAM turnkey — אנו נטפל בכל התשתית, מתבניות ועד CI/CD.