دوال Serverless بلغة Java: AWS Lambda من الألف إلى الياء

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة في بنية Serverless مع AWS Lambda بلغة Java

الحوسبة اللامركزية (Serverless) هي واحدة من أكثر النماذج طلبًا في التطوير السحابي الحديث. تتيح AWS Lambda تشغيل الكود دون إدارة الخوادم، مع توسيع نطاق التطبيق تلقائيًا حسب الحمل. في هذه المقالة، سنشرح بالتفصيل كيفية إنشاء دوال Serverless بلغة Java باستخدام AWS Lambda - بدءًا من إعداد البيئة وصولاً إلى النشر في بيئة الإنتاج.

لا تزال Java واحدة من أكثر اللغات شيوعًا لتطوير المؤسسات، وتوفر AWS Lambda دعمًا ممتازًا لـ Java (حتى Java 17). سنستعرض المفاهيم الأساسية، ونكتب عدة أمثلة عملية، ونناقش أفضل الممارسات لتحسين زمن البدء البارد والأداء.



أساسيات AWS Lambda لمطوري Java



ما هي AWS Lambda؟

AWS Lambda هي خدمة حوسبة تقوم بتشغيل الكود الخاص بك استجابةً للأحداث وتدير تلقائيًا موارد الحوسبة. أنت تدفع فقط مقابل وقت التنفيذ المستهلك وعدد الطلبات.

الخصائص الرئيسية:

  • بنية موجهة بالأحداث - يتم تشغيل الدالة عند حدوث حدث (طلب HTTP، تحميل ملف إلى S3، تغيير في DynamoDB، إلخ)
  • التوسع التلقائي - تقوم Lambda بإنشاء عدد من النسخ حسب الحاجة لمعالجة الطلبات
  • حد زمن التنفيذ - حتى 15 دقيقة (900 ثانية)
  • دعم Java 8 و11 و17 - مع إمكانية استخدام أي مكتبات


هيكل دالة Lambda بلغة Java

يجب أن تقوم كل دالة Lambda بلغة Java بتنفيذ الواجهة RequestHandler أو RequestStreamHandler. لنلقِ نظرة على مثال أساسي:



import com.amazonaws.services.lambda.runtime.Context;import com.amazonaws.services.lambda.runtime.RequestHandler;import java.util.Map;

public class HelloHandler implements RequestHandler<Map<String, String>, String> {

@Override public String handleRequest(Map<String, String> input, Context context) { String name = input.getOrDefault("name", "World"); String response = String.format("Hello, %s! Your request ID: %s", name, context.getAwsRequestId()); context.getLogger().log("Processed request for: " + name); return response; }}


دعنا نحلل العناصر الرئيسية:

  • RequestHandler<I, O> - واجهة عامة، حيث I هو نوع بيانات الإدخال، O هو نوع بيانات الإخراج
  • Context - كائن يوفر معلومات عن بيئة التنفيذ (معرف الطلب، اسم الدالة، المسجل، إلخ)
  • handleRequest - الطريقة الوحيدة التي يجب تنفيذها


إنشاء وإعداد مشروع لـ AWS Lambda بلغة Java



الخطوة 1: إعداد مشروع Maven

لتطوير دوال Lambda بلغة Java، من المناسب استخدام Maven. قم بإنشاء ملف pom.xml بالمحتوى التالي:



<project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0          http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.pythonlib</groupId>    <artifactId>lambda-demo</artifactId>    <version>1.0.0</version>    <packaging>jar</packaging>

<properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties>

<dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-ja

المدونات

توصيات الكتب