AWS Lambda היא שירות מ- Amazon Web Services (AWS) המאפשר לך להריץ את הקוד שלך בתגובה לאירועים מבלי לנהל שרתים. זו דרך פשוטה ומדרגת לבנות אפליקציות.
במדריך זה, אני אראה לך כיצד להשתמש ב-AWS Lambda עם שלושה שירותים נוספים:
-
Amazon S3 לאחסון קבצים, תמונות ווידאו
-
Amazon Simple Notification Service (SNS) לשליחת התראות
-
Amazon EventBridge לתזמון הודעות
נעבור על הכל שלב אחרי שלב.
בסוף, עם שילוב השירותים האחרים, תבנה אפליקציית ציטוטי מימוש מטרות ששולחת הודעות השראה אקראיות כדי לשמור אותך מונע וממוקד במטרות שלך.
דרישות מקדימות
-
חשבון AWS: אם אין לך אחד, הירשם כאן.
-
מאגר GitHub: זה עבור אחסון הקוד שלך. אם אין לך חשבון GitHub, תוכל ליצור אחד כאן.
-
סביבת פיתוח משולבת (IDE) כגון Visual Studio Code או Sublime Text.
-
ידע בסיסי בפיתוח אתרים ובשפת תכנות כלשהי לבחירתך. השתמשתי ב-Python למדריך זה.
מה תלמד
-
איך ליצור דלי Amazon S3
-
איך להשתמש בשירות ההודעות הפשוט של Amazon (SNS)
-
איך להשתמש ב-Amazon Lambda
-
כיצד להשתמש ב-Amazon EventBridge
תוכן עניינים
שלב 1: הגדר את סביבת הפיתוח שלך
בשלב זה, תכין את כל ההתקנים. התחל על ידי התחברות לחשבון AWS שלך, ואז התקן Python אם אין לך אותו ב-IDE שלך.
שלב 2: צור שירות אחסון פשוט של Amazon (S3)
לפני שנתחיל ביצירת דלי S3, בואו נבין מה זה בדיוק Amazon S3:
Amazon S3 (שירות אחסון פשוט) הוא שירות מ-Amazon שמאפשר לך לאחסן ולגשת לכל כמות או סוג של נתונים, כמו תמונות, סרטונים, מסמכים וגיבויים, בכל עת שאתה צריך אותם.
עכשיו שיש לך את היסודות של מהו Amazon S3, בוא נחזור למדריך.
צור דלי S3
יש כמה דרכים ליצור דלי S3, אבל במדריך הזה, נשתמש ב-שורת הפקודה של אובונטו (CMD), הטרמינל שלך, או Amazon CloudShell, בהתאם למה שאתה הכי נוח איתו.
-
הקלד boto3 s3 בשורת החיפוש של האינטרנט כדי לראות רשימה של מסמכים קשורים.
-
לחץ על התוצאה הראשונה.
- ברגע שהמסמך פתוח, העתק את הפקודה הראשונה שאתה רואה.
- הדבק אותה ב-CMD או בטרמינל לבחירתך – אבל לפני זה זכור ל-"cd" לתוך התיקייה הנכונה.
- במסמך, גלול למטה ולחץ על "create_bucket.
-
ברגע שזה פתוח, גלול למטה ל-"Request Syntax." העתק את שם הדלי ואת הגדרת הדלי.
-
משתנים אחרים המפורטים בסינטקס הבקשה הם אופציונליים.
- ברגע שזה נעשה, ודא שאתה שומר.
- חזור ותקרא לסקריפט:
#python3 שם הקובץ שלך
- הרצת הסקריפט יוצרת אוטומטית דלי S3 ב-Amazon S3 שלך.
- עכשיו אתה יכול לעבור לקונסולה כדי לבדוק אם הוא נוצר:
העלה קבצים
עם הדלי שנוצר, עכשיו אנחנו יכולים להעלות קבצים דרך הקונסולה. אני מאמין שיש גם דרך תכנותית להעלות קבצים ולבחון, אבל עדיין לא חקרתי את כל השיטות בתיעוד.
לחץ על שם הדלי כדי להיות מופנה לדף האובייקט. כאן תעלה את הקבצים שלך לאחסון.
לחץ על כפתור ההעלאה כדי להעלות קובץ. זכור, אנחנו יוצרים אפליקציה לציטוט מימוש מטרות.
עכשיו כשקבענו דלי אחסון:
-
פתח כלי כמו Google Drive, MS Word, WPS, או כל עורך מסמכים אחר.
-
כתוב את המטרות שאתה רוצה להשיג.
-
שמור את הקובץ בפורמט PDF או DOCX.
-
קח את המסמך והעלה אותו ל-Amazon S3 שלך.
כדי לאמת אם זה הקובץ הנכון:
-
נווט ללשונית הרשאות.
-
גלול למטה לחסימת גישה ציבורית.
-
לחץ על עריכה ושנה את הסימון בתיבה.
כפי שמוצג למעלה, הוא כרגע מוגדר ל-"דולק". בטל את הסימון כדי לכבות אותו.
-
בעמוד הגדרות הדלי אותו דליף, שנה את המדיניות.
-
גלול למטה, ותראה שמדיניות דלי נוצרה אוטומטית.
-
לך והעתק את המדיניות.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
- חזור לעורך מדיניות הדלי והדבק את המדיניות.
לאחר שסיימת את הצעדים הללו, האובייקט שלך יהיה נגיש לציבור.
חזור ללשונית אובייקטים ולחץ על כתובת ה-URL של האובייקט שניתנה למטה:
עם כתובת URL זו, ההעלאה שלך עכשיו נראית.
שלב 3: צור שירות הודעות פשוט של אמזון (SNS)
SNS הוא שירות הודעות מנוהל לחלוטין המסופק על ידי AWS. הוא מאפשר תקשורת בין יישומים או ישירות עם משתמשים על ידי שליחת התראות.
כדי ליצור SNS, עקוב אחר הצעדים האלה:
1. היכנס לקונסולת הניהול של AWS
לאחר מכן עבור ל-SNS של אמזון. נווט ללוח המחוונים של SNS ובחר נושאים מהתפריט בצד שמאל.
כדי ליצור נושא:
-
לחץ צור נושא.
-
בחר סוג נושא: רגיל (ברירת מחדל) או FIFO (למסרים לפי סדר).
-
הזן שם עבור הנושא שלך. (לדוגמה,
MyFirstSNSTopic
). -
הגדר הגדרות אופציונליות כגון הצפנה, מדיניות ניסיון משלוח, או תגיות.
-
לחץ על צור נושא.
2. הוסף מנויים:
כאשר הנושא נוצר, לחץ עליו כדי לפתוח את דף הפרטים. בחר בלשונית מנויים.
לחץ על צור מנוי ובחר:
-
פרוטוקול יכול להיות דואר אלקטרוני, הודעות טקסט (SMS), HTTP/S, Lambda, או SQS.
-
קצוות כגון כתובת דוא"ל, מספר טלפון, או כתובת URL.
לחץ על צור מנוי.
3. אשר את המנוי:
אם בחרת בדוא"ל או ב-SMS, קישור אישור או קוד יישלחו לכתובת שסיפקת. פעל לפי ההוראות כדי לאשר את המנוי.
עכשיו כשסיימנו את זה, בוא ניצור פונקציית אמזון למבדה שתפעיל את ה-SNS כך שההודעה תישלח לאימייל שלך.
שלב 4: צור מדיניות IAM
מדיניות זו נוצרה כדי לאשר לאמזון למבדה להפעיל את האירוע ולוודא ש-CloudWatch מופעל אוטומטית כדי לנטר את האירועים של היישום.
כדי ליצור מדיניות, פעל לפי השלבים הבאים:
1. התחבר לקונסולת הניהול של AWS.
בתפריט השמאלי, בחר מדיניות. לאחר מכן:
-
לחץ על צור מדיניות.
-
בחר את הלשונית ויזואלי, ואז בחר את שירות SNS.
-
לאחר מכן, לחץ על הלשונית בחר כדי ליצור מדיניות מותאמת אישית.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:REGION:ACCOUNT_ID:goal_topic"
}
]
}
לאחר מכן, החלף את המידע המוצג שלהלן בפרטים שלך:
-
אזור
: האזור שלך ב-AWS (למשל,us-east-1
). -
מספר-חשבון
: מספר החשבון שלך ב-AWS. -
topic-name
: שם הנושא שלך ב־SNS.
2. צפיה ויצירת המדיניות:
ניתן לעשות זאת על ידי ביצוע השלבים הבאים:
-
לחץ על כפתור הסקירה.
-
תן למדיניות שלך שם (לדוגמה,
LambdaSNSPolicy
), ואופציונלית, תיאור. -
לחץ על צור מדיניות.
3. הוסף מדיניות לתפקוד ה־Lambda
כעת, עליך לצרף את המדיניות לתפקוד ה־Lambda שלך. על מנת לעשות זאת, עקוב אחר השלבים הבאים:
-
עבור לקטע תפקידים בקונסול IAM.
-
חפש ובחר בתפקיד הביצוע.
-
לאחר מכן, חפש את המדיניות שיצרת ובחר בה.
-
לחץ צרף מדיניות.
שתי המדיניות יצרפו אוטומטית.
שלב 5: צור פונקציית Amazon Lambda
אמזון למבדה היא שירות מ- AWS שמאפשר לך להריץ קוד בלי לנהל שרתים. אתה מעלה את הקוד שלך, ולמבדה מפעילה ומשתפרת באופן אוטומטי כשצריך.
עקוב אחר השלבים הללו כדי ליצור פונקצית למבדה של אמזון:
1. התחבר לממשק ניהול של AWS:
נווט אל למבדה של AWS.
2. צור פונקציה:
לחץ על צור פונקציה ובחר באפשרות יוצר מסדרת.
מלא את הפרטים:
-
שם הפונקציה: הזן שם ייחודי (לדוגמה,
SNSLambdaFunction
). -
סביבה ריצה: בחר את הסביבה הריצה (לדוגמה, Python, Node.js, Java וכו').
- תפקיד: בחר או צור תפקיד. אם כבר יש לך תפקיד, בחר השתמש בתפקיד קיים. אחרת, בחר צור תפקיד חדש עם הרשאות בסיסיות של למבדה.
- לחץ על הכפתור צור פונקציה.
3. הדבק את הקוד:
בדף הפונקציה של למבדה, עבור לכרטיסיית תצורה:
זכור, אנו מנסים לקבל ציטוט. אני אוסיף את כתובת ה-ARN של הנושא שיצרנו כאן וכולל את מפתחות ה- API שלי. אך לצורך המדריך הזה, אני אשתמש ב- API ישירות כדי לקבל את הנתונים.
4. כתבו את קוד הלמבדה:
עברו ללשונית קוד בפונקציית ה־Lambda שלכם. לאחר מכן כתבו או הדביקו את הקוד מהסביבת הפיתוח שלכם כדי לעבד את ההודעות הנכנסות מ־SNS.
דוגמה:
כך נראה הקוד:
import os
import json
import urllib.request
import boto3
def fetch_random_quote():
"""
Fetches a random quote from the ZenQuotes API.
"""
api_url = "https://zenquotes.io/api/random"
try:
with urllib.request.urlopen(api_url) as response:
data = json.loads(response.read().decode())
if data and isinstance(data, list):
# עיבוד הציטוט והמחבר
quote = data[0].get("q", "No quote available")
author = data[0].get("a", "Unknown author")
return f'"{quote}" - {author}'
else:
return "No quote available."
except Exception as e:
print(f"Error fetching random quote: {e}")
return "Failed to fetch quote."
def lambda_handler(event, context):
"""
AWS Lambda handler function to fetch a random quote and publish it to an SNS topic.
"""
# קבלת זיהוי ה־ARN של נושא ה־SNS ממשתני סביבה
sns_topic_arn = os.getenv("SNS_TOPIC_ARN")
sns_client = boto3.client("sns")
# קבלת ציטוט אקראי
quote = fetch_random_quote()
print(f"Fetched Quote: {quote}")
# פרסום הציטוט ל־SNS
try:
sns_client.publish(
TopicArn=sns_topic_arn,
Message=quote,
Subject="Daily Random Quote to help you stay motivated and inspired to achieve your goals",
)
print("Quote published to SNS successfully.")
except Exception as e:
print(f"Error publishing to SNS: {e}")
return {"statusCode": 500, "body": "Error publishing to SNS"}
return {"statusCode": 200, "body": "Quote sent to SNS"}
5. שמירה:
לחצו על כפתור ההפצה כדי לשמור.
6. בדיקת פונקציית Lambda שלכם:
עברו ללשונית בדיקה וצרו אירוע בדיקה חדש.
לאחר מכן שמרו והריצו את הבדיקה. אם הבדיקה מוצלחת, הודעה תישלח:
זה אומר שההודעה נוצרה עבורכם
לבסוף, בדקו בדוא"ל או בהודעת SMS, לפי הנקודת הקצה שהשתמשתם בה עבור המדריך הזה. במקרה שלי, השתמשתי בדוא"ל.
שלב 6: יצירת EventBridge
Amazon EventBridge הוא שירות שעוזר לכם לחבר אפליקציות ושירותי AWS כגון Amazon SNS ו־Amazon Lambda.
כדי ליצור כלל ב־Amazon EventBridge, עקבו אחר השלבים האלה:
1. נווטו אל EventBridge:
בשורת החיפוש, הקלידו EventBridge ובחרו אותו מרשימת השירותים.
2. צרו כלל:
בקונסולת EventBridge, לחץ על Rules בלוח השמאלי. לאחר מכן, לחץ על לחצן Create rule.
3. הגדרת פרטי הכלל:
-
שם: הזן שם ייחודי לכלל שלך.
-
תיאור (אופציונלי): הוסף תיאור שיסביר מה עושה כלל זה.
4. בחר באוטובוס האירועים:
בחר Default event bus (או אוטובוס אירועים אחר אם יצרת אחד).
5. הגדר את התבנית או הזמנה של האירוע:
לתבנית האירוע:
- בחר שירות AWS כמקור האירוע.
-
בחר בסוג האירוע (לדוגמה, העלאת קובץ S3 או שינוי במצב המופע EC2).
לזמנית:
- בחר באפשרות Schedule כדי להפעיל את הכלל במרווח קבוע (לדוגמה, כל 5 דקות).
- לחץ על המשך. זה יפנה אותך לדף הפרטים המסוים שבו:
-
גלול למטה ולחץ על תזמון ה-cron. תזמון ה-cron יציין מתי הודעה תישלח.
-
בחרו "כבוי" לאפשרות חלון זמן גמיש.
-
בדקו את פרטי הכללים כדי לוודא שהכל נכון.
-
לחצו על הכפתור "הבא" כדי להמשיך לעמוד ה-יעד.
התמונה לעיל מראה מתי ההודעות יישלחו.
- בעמוד היעד, בחרו AWS Lambda כדי להפעיל את הפונקציה שלכם.
- גללו למטה כדי להפעיל ולבחור את הפונקציה שיצרתם.
- לחצו על הכפתור "הבא" כדי להמשיך. זה יוביל אתכם לעמוד ההגדרות. בתחום ההרשאות, בחרו "השתמש בכלל קיים."
- לבסוף, עברו לביקורת וצרו קרון:
- העמוד הבא מראה את כל הפרטים:
באמצעות EventBrige ניתן ליצור מתזמן עבור המשתמשים.
שלב 7: העלאת הקוד שלך
סוף סוף, העלה את הקוד שלך ל־GitHub וכלול תיעוד ראוי כדי להסביר איך הקוד עובד.
תבדוק את התיעוד הזה אם אינך יודע איך: העלאת פרויקט ל־GitHub.
מסקנה
אם עקבת אחר כל השלבים הללו, תהיה יכול ליצור אפליקציית ציטוטי השראה למימוש מטרות באמצעות AWS Lambda, Amazon S3, Amazon SNS ו־Amazon EventBridge. אפליקציה זו מביאה ציטוטים מעוררי השראה ושולחת אותם למנויים על פי קרון זמן.
תוכל למצוא את קישור המאגר כאן.
צריך עזרה או יש לך שאלות? אל תהסס לשתף את ההתקדמות שלך או לשאול שאלות.
אם מצאת את המאמר הזה מועיל, שתף אותו עם אחרים.
הישאר מעודכן בפרויקטים שלי על ידי עקיבה אחרי ב־טוויטר, לינקדאין ו־GitHub
תודה על הקריאה 💖.
כתב ויתור:
המשאבים המוצגים במאמר זה, כולל ה־S3 bucket וכתובת ה־ARN שלו, נמחקו וכבר לא קיימים. הפרטים הנראים בתמונות הושמו במטרה של הדגמה בלבד.
Source:
https://www.freecodecamp.org/news/how-to-build-an-application-with-aws-lambda/