أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
الإصدار: 2.0.1
يمكنك تنفيذ الدوال المنشورة على AWS Lambda. استخدِم هذه الإضافة لعرض الدوال المتاحة في حسابك على AWS، ثم استدعِ دوالاً معيّنة.
المتطلبات الأساسية
قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، يجب تنفيذ ما يلي:
الحصول على رقم تعريف مفتاح الوصول ومفتاح الوصول السري في Amazon access key ID and secret access key.
ستحتاج إلى هذه المعلومات، بالإضافة إلى اسم المنطقة التي تم نشر الدوال فيها، لـ ضبط هذه الإضافة.
نشر دالة Lambda لكي تتمكّن الإضافة من الوصول إلى دالة Lambda، يجب أن تكون:
- منشورة في شبكة VPC علنية
- منشورة في شبكة VPC خاصة مع بوابة NAT علنية
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة ضبط دالة Lambda للوصول إلى الموارد في شبكة Amazon VPC.
لمحة عن AWS Lambda
توفّر AWS Lambda بيئات حوسبة يمكنك فيها تنفيذ الدوال بإحدى اللغات المتاحة.
الإجراءات
invoke
يستدعي هذا الإجراء دالة على AWS Lambda.
لمزيد من التفاصيل عن المَعلمات، يُرجى الاطّلاع على مستندات AWS Lambda Invoke.
البنية
<Action>invoke</Action>
<Input><![CDATA[
{
"functionName" : "function-on-lambda",
"invocationType" : "RequestResponse | Event | DryRun",
"logType" : "None | Tail",
"qualifier" : "Version-or-alias",
"payload" : "Escaped-JSON-string"
}
]]>
</Input>
<Output>flow-variable</Output>
مثال
<Action>invoke</Action>
<Input><![CDATA[
{
"functionName" : "helloWorld",
"invocationType" : "RequestResponse",
"logType" : "None",
"qualifier" : "$LATEST",
"payload" : "{ \"key\": \"val\" }"
}
]]>
</Input>
<Output>function.response.value</Output>
مَعلمات الطلب
لمزيد من التفاصيل عن المَعلمات، يُرجى الاطّلاع على مستندات AWS Lambda Invoke.
| المَعلمة | الوصف | النوع | القيمة التلقائية | مطلوب |
|---|---|---|---|---|
| functionName | اسم الدالة المطلوب استدعاؤها | سلسلة. | بلا عُري | نعم. |
| invocationType | يحدّد ما إذا كان سيتم استدعاء الدالة بشكل متزامن أو غير متزامن أو التحقّق من قيم المَعلمات | سلسلة. | بلا عُري | لا. |
| logType | يحدّد بشكل اختياري ما إذا كان سيتم عرض آخر 4 كيلوبايت من بيانات السجلّ | سلسلة | بلا عُري | لا. |
| qualifier | إصدار أو اسم مستعار لدالة Lambda منشورة | سلسلة | بلا عُري | لا. |
| payload | بيانات JSON كإدخال إلى دالة Lambda | سلسلة | بلا عُري | لا. |
الردّ
مصفوفة من الدوال تحتوي على تفاصيل إصدار معيّن في ما يلي مثال:
{
"StatusCode" : 200,
"Payload" : "{\"statusCode\":200,\"body\":\"\\\"Hello World!\\\"\"}"
}
سمات الردّ
| الموقع | الوصف | النوع | القيمة التلقائية |
|---|---|---|---|
| StatusCode | رمز حالة HTTP. | عدد صحيح | بلا عُري |
| Payload | بيانات JSON تمثّل الكائن الذي تعرضه الدالة لا تظهر هذه السمة إلا إذا كان نوع الاستدعاء RequestResponse. في حال حدوث خطأ في الدالة، تحتوي هذه السمة على رسالة وصف الخطأ. | سلسلة | بلا عُري |
listFunctions
يعرض هذا الإجراء دوال AWS Lambda المتاحة.
لمزيد من التفاصيل عن المَعلمات، يُرجى الاطّلاع على مستندات AWS Lambda ListFunctions.
البنية
<Action>listFunctions</Action>
<Input><![CDATA[
{
"masterRegion" : "ALL | [a-z]{2}(-gov)?-[a-z]+-\d{1}",
"functionVersion" : "ALL",
"maxItems" : 1 - 10000
}
]]>
</Input>
<Output>flow-variable</Output>
مثال
<Action>listFunctions</Action>
<Input><![CDATA[
{
"masterRegion" : "ALL",
"functionVersion" : "ALL",
"maxItems" : 50
}
]]>
</Input>
<Output>function.list</Output>
مَعلمات الطلب
لمزيد من التفاصيل عن المَعلمات، يُرجى الاطّلاع على مستندات AWS Lambda ListFunctions.
| المَعلمة | الوصف | النوع | القيمة التلقائية | مطلوب |
|---|---|---|---|---|
| masterRegion | المنطقة (مثل us-east-2) التي يجب إدراج الدوال فيها، أو ALL لتضمين الدوال من أي منطقة إذا تم تحديد هذه المَعلمة، يجب أيضًا تحديد functionVersion. |
سلسلة | بلا عُري | لا. |
| functionVersion | حدِّد ALL لإدراج جميع الإصدارات المنشورة. إذا لم يتم تحديد هذه المَعلمة، يتم عرض رقم تعريف المورد (ARN) لأحدث إصدار غير منشور فقط. |
سلسلة | بلا عُري | لا. |
| maxItems | الحد الأقصى لعدد الدوال المطلوب عرضها في الردّ يجب أن يكون هذا العدد أكبر من 0. الحد الأقصى المطلق الذي يمكن عرضه هو 50. | عدد صحيح | بلا عُري | لا. |
الردّ
بيانات JSON تمثّل مصفوفة من الدوال تحتوي على تفاصيل إصدار معيّن
[
{
"FunctionName": "helloWorld",
"FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
"Runtime": "nodejs",
"Role": "arn:aws:iam::012345:role/service-role/fakeRole",
"Handler": "index.handler",
"Description": "A Hello World lambda function.",
"Version": "$LATEST"
},
{
"FunctionName": "helloWorld",
"FunctionArn": "arn:aws:lambda:fake-region:012345:function:helloWorld",
"Runtime": "nodejs",
"Role": "arn:aws:iam::012345:role/service-role/fakeRole",
"Handler": "index.handler",
"Description": "A Hello World lambda function.",
"Version": "1"
}
]
سمات الردّ
| الموقع | الوصف | النوع | القيمة التلقائية |
|---|---|---|---|
| Description | وصف الدالة | سلسلة. | بلا عُري |
| Handler | الدالة التي يستدعيها Lambda لبدء تنفيذ الدالة | سلسلة. | بلا عُري |
| FunctionArn | رقم تعريف المورد (ARN) للدالة في Amazon | سلسلة. | بلا عُري |
| FunctionName | اسم الدالة | سلسلة. | بلا عُري |
| Role | دور تنفيذ الدالة | سلسلة. | بلا عُري |
| Runtime | بيئة وقت تشغيل الدالة | سلسلة. | بلا عُري |
| Version | إصدار الدالة | سلسلة. | بلا عُري |
مرجع الإعدادات
استخدِم ما يلي عند ضبط هذه الإضافة ونشرها لاستخدامها في خوادم وكيلة لواجهة برمجة التطبيقات. لمعرفة خطوات ضبط إضافة باستخدام وحدة تحكّم Apigee، يُرجى الاطّلاع على مقالة إضافة إضافة وضبطها.
سمات الإضافة الشائعة
السمات التالية متاحة لكل إضافة.
| الموقع | الوصف | تلقائي | عنصر مطلوب |
|---|---|---|---|
name |
الاسم الذي تُعطِه هذه الإضافة من الإضافات. | لا ينطبق | متوافق |
packageName |
اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. | لا ينطبق | متوافق |
version |
رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. | لا ينطبق | متوافق |
configuration |
قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه | لا ينطبق | متوافق |
سمات حزمة الإضافة هذه
حدِّد قيمًا لسمات الإعداد التالية الخاصة بهذه الإضافة.
| الموقع | الوصف | القيمة التلقائية | مطلوب |
|---|---|---|---|
| AWS Lambda Region | اسم المنطقة التي تم نشر الدوال فيها على سبيل المثال: us-east-1 |
بلا عُري | نعم. |
| Credentials | عند إدخال هذه البيانات في وحدة تحكّم Apigee Edge، يكون هذا ملف JSON يحتوي على رقم تعريف مفتاح الوصول ومفتاح الوصول في Amazon بالصيغة التالية:{"accessKeyId" : "access-key-ID","secretAccessKey" : "secret-access-key"}عند إرسال هذه البيانات باستخدام Management API، تكون قيمة بترميز base64 تم إنشاؤها من ملف JSON هذا. |
بلا عُري | نعم. |