أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
الإصدار 2.0.1
يمكنك استدعاء وظائف السحابة الإلكترونية المنشورة من خلال مشروعك على Google Cloud.
تتيح هذه الإضافة حاليًا استدعاء دوال مشغّل HTTP.
المتطلبات الأساسية
يوفر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها. قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، يجب تنفيذ ما يلي:
تفعيل واجهة برمجة التطبيقات Cloud Functions API.
تحديد الدوال ونشرها في Cloud Functions لمشروعك على Google Cloud
منح المستخدم إذن الوصول من خلال إدارة الهوية والوصول (IAM) لمستوى الوصول الذي تريده للدالة على سبيل المثال، يمكنك حصر الوصول إلى الدالة على حساب الخدمة الذي تستخدمه لإعداد الإضافة فقط.
استخدام محتوى ملف JSON للمفتاح الناتج عند إضافة الإضافة وإعدادها باستخدام مرجع الإعدادات.
لمحة عن Cloud Functions
باستخدام Google Cloud Functions، يمكنك إنشاء الدوال ونشرها على Google Cloud، ثم استدعاء هذه الدوال من رمز برمجي آخر. للحصول على مقدّمة عن Cloud Functions، جرِّب أحد أدلة البدء السريع .
نماذج
يوضّح المثال التالي كيفية استدعاء الدوال في Cloud Functions باستخدام سياسة ExtensionCallout.
استدعاء دالة Node.js
يتضمّن المثال التالي سياسة ExtensionCallout تستدعي إضافة Google Cloud Functions. تستدعي الإضافة دالة "hello world" التلقائية المضمّنة عند تفعيل واجهة برمجة التطبيقات Cloud Functions API.
يتم نشر JavaScript التالي في Node.js في Cloud Functions لحساب على Google Cloud. إذا كان الطلب يتضمّن سمة رسالة، يعرض الرمز البرمجي هذه السمة. وإلا، يعرض "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>.
إذا عرضت دالة السحابة الإلكترونية استجابة JSON وضبطت parsed="true"، يكون الردّ من الإضافة مرجعًا إلى عنصر. لاستخراج الردّ من المرجع، استخدِم البنية التالية: {objectName}.{jsonKey}. على سبيل المثال:
function.response.message
الإجراءات
invoke
يستدعي دالة سحابة إلكترونية.
تتيح هذه الإضافة حاليًا استدعاء دوال مشغّل 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 | سلسلة. | بلا عُري | نعم. |
| functionName | اسم دالة HTTP المطلوب استدعاؤها هذا هو الاسم الذي استخدمته عند إنشاء الدالة (وليس بالضرورة اسمًا من رمز الدالة البرمجي). | سلسلة. | بلا عُري | نعم. |
| method | طريقة HTTP التي يجب استخدامها عند استدعاء الدالة | سلسلة. | GET |
لا. |
| payload | الحمولة التي يجب إرسالها مع استدعاء الدالة | JSON. | بلا عُري | لا. |
الردّ
قيمة الاستجابة للدالة المحدّدة، إن وُجدت
سمات الردّ
بلا عُري
مرجع الإعدادات
استخدِم ما يلي عند إعداد هذه الإضافة ونشرها لاستخدامها في الخوادم الوكيلة لواجهة برمجة التطبيقات. للاطّلاع على خطوات إعداد إضافة باستخدام وحدة تحكّم Apigee، يُرجى الاطّلاع على مقالة إضافة إضافة وإعدادها.
سمات الإضافة الشائعة
السمات التالية متاحة لكل إضافة.
| الموقع | الوصف | تلقائي | عنصر مطلوب |
|---|---|---|---|
name |
الاسم الذي تُعطِه هذه الإضافة من الإضافات. | لا ينطبق | متوافق |
packageName |
اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. | لا ينطبق | متوافق |
version |
رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. | لا ينطبق | متوافق |
configuration |
قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه | لا ينطبق | متوافق |
سمات حزمة الإضافة هذه
حدِّد قيمًا لسمات الإعدادات التالية الخاصة بهذه الإضافة.
| الموقع | الوصف | تلقائي | مطلوب |
|---|---|---|---|
| بيانات الاعتماد | عند إدخالها في Google Cloud Console، يكون هذا هو محتوى ملف مفتاح حساب الخدمة. عند إرسالها من خلال Management API، تكون قيمة بترميز base64 تم إنشاؤها من ملف مفتاح حساب الخدمة. | بلا عُري | نعم. |