AWS Lambda באמצעות DynamoDB עם Java

1. הקדמה

AWS למבה הוא שירות מחשוב ללא שרת המסופק על ידי שירותי האינטרנט של אמזון ו- WS DynamoDB הוא שירות מסדי נתונים של NoSQL המסופק גם על ידי אמזון.

מעניין ש- DynamoDB תומך הן בחנות מסמכים והן בחנות ערך מפתח ומנוהל באופן מלא על ידי AWS.

לפני שנתחיל, שים לב שמדריך זה דורש חשבון AWS תקף (תוכל ליצור חשבון כאן). כמו כן, מומלץ לקרוא תחילה את המאמר AWS Lambda with Java.

2. תלות Maven

כדי לאפשר למבדה אנו זקוקים לתלות הבאה אשר ניתן למצוא ב- Maven Central:

 com.amazonaws aws-lambda-java-core 1.1.0 

כדי להשתמש במשאבי AWS שונים אנו זקוקים לתלות הבאה אשר ניתן למצוא גם ב- Maven Central:

 com.amazonaws aws-lambda-java-events 1.3.0 

וכדי לבנות את היישום, אנו נשתמש בתוסף Maven Shade:

 org.apache.maven.plugins maven-shadow-plugin 3.0.0 חבילת שווא 

3. קוד למבדה

ישנן דרכים שונות ליצור מטפלים ביישום למבדה:

  • MethodHandler
  • RequestHandler
  • RequestStreamHandler

אנחנו נשתמש RequestHandler ממשק ביישום שלנו. אנו נקבל את בקשה אישית בפורמט JSON, והתגובה תהיה תגובה אישית גם ב ג'סון פוּרמָט:

מחלקה ציבורית PersonRequest {שם פרטי פרטי מחרוזת; שם משפחה פרטי מחרוזת; // סטרים וקובעים סטנדרטיים} 
ClassResponse {class מחרוזת פרטית; // סטרים וקובעים סטנדרטיים}

הבא הוא מחלקת נקודת הכניסה שלנו שתיישם RequestHandler ממשק כ:

מחלקה ציבורית SavePersonHandler מיישמת את RequestHandler {DynamoDB פרטי dynamoDb; מחרוזת פרטית DYNAMODB_TABLE_NAME = "אדם"; אזורים פרטיים REGION = Regions.US_WEST_2; טיפול אישי ב- PersonResponseRequest (PersonRequest personRequest, הקשר הקשר) {this.initDynamoDbClient (); persistData (personRequest); PersonResponse personResponse = PersonResponse חדש (); personResponse.setMessage ("נשמר בהצלחה !!!"); אדם חוזר תגובה; } PutItemOutcome persistData פרטי (PersonRequest personRequest) זורק ConditionalCheckFailedException {להחזיר this.dynamoDb.getTable (DYNAMODB_TABLE_NAME) .putItem (PutItemSpec חדש (). withItem (פריט חדש () .withString ("firstName", personRequ. "lastName", personRequest.getLastName ());} ריק ריק initDynamoDbClient () {לקוח AmazonDynamoDBClient = AmazonDynamoDBClient חדש (); client.setRegion (Region.getRegion (REGION)); this.dynamoDb = DynamoDB חדש (לקוח);}} 

כאן כאשר אנו מיישמים את RequestHandler ממשק, אנחנו צריכים ליישם handleRequest () לצורך הטיפול בפועל בבקשה. באשר לשאר הקוד, יש לנו:

  • בקשה אישית אובייקט - שיכיל את ערכי הבקשה שהועברו בפורמט JSON
  • הֶקשֵׁר אובייקט - משמש לקבלת מידע מסביבת ביצוע למבדה
  • תגובת אדם - שהוא אובייקט התגובה לבקשת למבדה

בעת יצירת אובייקט DynamoDB ניצור תחילה את ה- AmazonDynamoDBClient התנגד והשתמש בזה כדי ליצור DynamoDB לְהִתְנַגֵד. שים לב שה- אזור זה חובה.

כדי להוסיף פריטים בטבלת DynamoDB, נשתמש ב- PutItemSpec אובייקט - על ידי ציון מספר העמודות וערכיהן.

איננו זקוקים לשום סכמה מוגדרת מראש בטבלת DynamoDB, עלינו רק להגדיר את שם העמודה מפתח ראשי, שהוא "תְעוּדַת זֶהוּת" במקרה שלנו.

4. בניית תיק הפריסה

כדי לבנות את יישום lambda, עלינו לבצע את הפקודה הבאה של Maven:

צל חבילה נקי mvn: צל

יישום למבדה יורכב וארוז ל קַנקַן קובץ מתחת לתיקיית היעד.

5. יצירת טבלת DynamoDB

בצע את הצעדים הבאים ליצירת טבלת DynamoDB:

  • התחבר לחשבון AWS
  • נְקִישָׁה "DynamoDB" שניתן לאתר תחת "כל השירותים"
  • דף זה יציג טבלאות DynamoDB שכבר נוצרו (אם ישנן)
  • נְקִישָׁה "צור טבלה" לַחְצָן
  • לְסַפֵּק "שם שולחן" ו "מפתח ראשי" עם סוג הנתונים שלה כ- "מספר"
  • לחץ על "לִיצוֹר" לַחְצָן
  • תיווצר טבלה

6. יצירת פונקציית למבה

בצע את הצעדים הבאים ליצירת פונקציית למבדה:

  • התחבר לחשבון AWS
  • נְקִישָׁה "למבדה" שניתן לאתר תחת "כל השירותים"
  • דף זה יציג פונקציית למבדה שכבר נוצרה (אם קיימת) או שלא נוצרות פונקציות למבדה לחץ על "תתחיל עכשיו"
  • "בחר שרטוט" -> בחר “פונקציה ריקה ”
  • "הגדר טריגרים" -> לחץ "הַבָּא" לַחְצָן
  • "הגדר פונקציה"
    • "שֵׁם": SavePerson
    • "תיאור": שמור אדם ב- DDB
    • "זמן ריצה": בחר "Java 8"
    • "העלה": לחץ "העלה" לחץ על הלחצן ובחר את קובץ הצנצנת של יישום למבדה
  • "מטפל": com.baeldung.lambda.dynamodb.SavePersonHandler
  • "תַפְקִיד": בחר "צור תפקיד מותאם אישית"
  • חלון חדש יופיע ויאפשר הגדרת תפקיד IAM לביצוע למבדה ועלינו להוסיף בו את מענקי DynamoDB. לאחר שתסיים, לחץ "להתיר" לַחְצָן
  • נְקִישָׁה "הַבָּא" לַחְצָן
  • "סקירה": סקור את התצורה
  • נְקִישָׁה "יצירת פונקציה" לַחְצָן

7. בדיקת תפקוד למבדה

השלב הבא הוא לבדוק את פונקציית למבדה:

  • לחץ על "מִבְחָן" לַחְצָן
  • ה "אירוע בדיקת קלט" חלון יוצג. כאן נספק את קלט JSON לבקשתנו:
{"id": 1, "firstName": "John", "lastName": "Doe", "age": 30, "address": "United States"}
  • נְקִישָׁה "שמור ובדוק" אוֹ "להציל" לַחְצָן
  • את הפלט ניתן לראות ב "תוצאת ביצוע" סָעִיף:
{"message": "נשמר בהצלחה !!!" }
  • עלינו גם לבדוק ב- DynamoDB שהרשומה נמשכת:
    • לך ל קונסולת ניהול “DynamoDB”
    • בחר את הטבלה "אדם"
    • בחר את "פריטים" הכרטיסייה
    • כאן תוכלו לראות את פרטי האדם שהועברו בבקשה ליישום למבדה
  • אז הבקשה עוברת בהצלחה על ידי בקשת הלמבה שלנו

8. מסקנה

במאמר מהיר זה למדנו כיצד ליצור יישום למבדה עם DynamoDB ו- Java 8. ההוראות המפורטות אמורות לתת לך יתרון בהגדרת הכל.

וכמו תמיד, את קוד המקור המלא של אפליקציית הדוגמה ניתן למצוא ב- Github.


$config[zx-auto] not found$config[zx-overlay] not found