أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. info
الإصدار 2.0.0
يمكنك استدعاء دوال Cloud التي تم نشرها من خلال مشروعك على Google Cloud.
تتيح هذه الإضافة حاليًا استدعاء وظائف بدء HTTP.
المتطلبات الأساسية
يوفّر هذا المحتوى مرجعًا لضبط هذه الإضافة واستخدامها. قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، عليك إجراء ما يلي:
فعِّل Cloud Functions API.
حدِّد الدوالّ وdeploy في Cloud Functions لمشروعك على Google Cloud.
منح المستخدم إذن الوصول من خلال إدارة الهوية وإمكانية الوصول لمستوى الوصول الذي تريده للدالة على سبيل المثال، يمكنك حصر الوصول إلى الدالة بحساب الخدمة الذي تستخدمه لضبط الإضافة فقط.
استخدِم وحدة تحكّم Google Cloud Platform لإنشاء مفتاح لحساب الخدمة.
استخدِم محتوى ملف JSON الناتج عن المفتاح عند إضافة الإضافة وضبطها باستخدام مرجع الإعدادات.
لمحة عن Cloud Functions
باستخدام Google Cloud Functions، يمكنك إنشاء دوالّ ونشرها على Google Cloud، ثمّ استدعاء هذه الدوالّ من رمز برمجي آخر. للحصول على مقدمة عن Cloud Functions، جرِّب أحد البرامج التعليمية السريعة.
نماذج
يوضّح المثال التالي كيفية استدعاء الدوالّ في Cloud Functions باستخدام سياسة ExtensionCallout.
يعرض المثال التالي سياسة ExtensionCallout تستدعي إضافة Google Cloud Functions. تستدعي الإضافة الدالة التلقائية "مرحبًا" المضمّنة عند تفعيل واجهة برمجة التطبيقات Cloud Functions API.
تم نشر مقتطف JavaScript التالي من Node.js في Cloud Functions لحساب على Google Cloud Platform. إذا كان الطلب يتضمّن سمة رسالة، يعرض الرمز ذلك. بخلاف ذلك، يتم عرض "مرحبًا بالجميع" (Hello World!) كاستجابة.
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
res.status(200).send(message);
};
يتضمّن هذا المثال إضافة Google Cloud Functions تم ضبطها باستخدام بيانات الاعتماد اللازمة للمصادقة والحصول على الإذن لتشغيل الرمز على Cloud Functions.
يتم حفظ رمز الدالة السابق في Cloud Functions على النحو التالي: helloWorld
. يستخدم رمز إعدادات سياسة ExtensionCallout التالي هذا الاسم، بالإضافة إلى قيم المنطقة ورقم تعريف المشروع التي تتطابق مع تفاصيل بيئة Cloud Functions التي تم نشر الدالة فيها.
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output parsed="false">function.response</Output>
تُسجِّل سياسة AssignMessage التالية قيمة الردّ لأغراض تصحيح الأخطاء.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Function-Response">
<DisplayName>Get Function Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{function.response}</Payload>
</Set>
</AssignMessage>
سيكون الردّ على الطلب أعلاه على النحو التالي:
Hello yourself!
القيمة التلقائية لـ parsed
هي true
. يضبط هذا المثال القيمة parsed="false"
في علامة <Output>
للسياسة،
ما يمنع السياسة من تحليل استجابة JSON.
في معظم الحالات عند استخدام إضافة Cloud Functions، يمكنك ضبط parsed="false"
.
اطّلِع على عنصر<Output> لمعرفة المزيد.
إذا كانت دالة Cloud Function تُرجع استجابة JSON وضبطت parsed="true"
، تكون الاستجابة من الإضافة هي مرجع كائن. لاستخراج الردّ من المرجع، استخدِم البنية التالية: {objectName}.{jsonKey}
. على سبيل المثال:
function.response.message
المهام
استدعاء
تستدعي دالة Cloud.
تتيح هذه الإضافة حاليًا استدعاء وظائف بدء HTTP.
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "deployment-region",
"projectId" : "project-id",
"functionName" : "function-name",
"method" : "http-method",
"payload" : { json-payload }
}
]]></Input>
<Output>function.response</Output>
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output>function.response</Output>
مَعلمات الطلب
المَعلمة | الوصف | النوع | تلقائي | مطلوب |
---|---|---|---|---|
المنطقة | منطقة Google Cloud التي تم نشر الدالة فيها | سلسلة. | بلا عُري | نعم. |
projectId | رقم تعريف مشروع Google Cloud Platform | سلسلة. | بلا عُري | نعم. |
functionName | اسم دالة HTTP المطلوب استدعاؤها. هذا هو الاسم الذي استخدمته عند إنشاء الدالة (ليس بالضرورة اسمًا من رمز الدالة). | سلسلة. | بلا عُري | نعم. |
method | طريقة HTTP المُستخدَمة عند استدعاء الدالة. | سلسلة. | GET |
لا. |
الحمولة | الحمولة التي سيتم إرسالها مع طلب استدعاء الدالة. | تنسيق JSON | بلا عُري | لا. |
الردّ
قيمة الاستجابة للدالة المحدّدة، إن توفّرت.
سمات الاستجابة
بلا عُري
مرجع الإعدادات
استخدِم ما يلي عند ضبط هذه الإضافة ونشرها لاستخدامها في الخوادم الوكيلة لواجهات برمجة التطبيقات. لمعرفة خطوات ضبط إضافة باستخدام وحدة تحكّم Apigee، اطّلِع على إضافة إضافة وضبطها.
سمات الإضافات الشائعة
السمات التالية متاحة لكل إضافة.
الموقع | الوصف | تلقائي | عنصر مطلوب |
---|---|---|---|
name |
الاسم الذي تُعطِه هذه الإضافة من الإضافات. | لا ينطبق | متوافق |
packageName |
اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. | لا ينطبق | متوافق |
version |
رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. | لا ينطبق | متوافق |
configuration |
قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه | لا ينطبق | متوافق |
سمات حزمة الإضافة هذه
حدِّد قيمًا لسمات الإعدادات التالية الخاصة بهذه الإضافة.
الموقع | الوصف | تلقائي | مطلوب |
---|---|---|---|
بيانات الاعتماد | عند إدخالها في وحدة تحكّم Apigee Edge، تكون هذه هي محتويات ملف مفتاح حساب الخدمة. عند إرسالها من خلال Management API، تكون قيمة مُشفَّرة بترميز base64 تم إنشاؤها من ملف مفتاح حساب الخدمة. | بلا عُري | نعم. |