إضافة دوال Google Cloud

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

الإصدار 1.3.1

استدعِ دوال السحابة الإلكترونية التي يتم نشرها من خلال مشروعك على Google Cloud.

في الوقت الحالي، تتيح هذه الإضافة استدعاء دوال مشغِل HTTP.

المتطلبات الأساسية

يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها. قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، عليك إجراء ما يلي:

  1. فعِّل Cloud Functions API.

  2. يمكنك تحديد الدوال ونشرها في Cloud Functions لمشروعك على Google Cloud.

  3. امنح المستخدم إذن الوصول عبر "إدارة الهوية وإمكانية الوصول" (IAM) لمستوى الوصول الذي تريده للوظيفة. على سبيل المثال، يمكنك حصر الوصول إلى الدالة على حساب الخدمة الذي تستخدمه لإعداد الإضافة فقط.

  4. استخدِم "وحدة تحكُّم Google Cloud Platform" لإنشاء مفتاح لحساب الخدمة.

  5. استخدِم محتوى ملف JSON للمفتاح الناتج عند إضافة الإضافة وضبطها باستخدام مرجع الإعدادات.

لمحة عن وظائف السحابة الإلكترونية

باستخدام وظائف Google Cloud، يمكنك إنشاء وظائف ونشرها على Google Cloud، ثم استدعاء هذه الدوال من رموز برمجية أخرى. للاطّلاع على مقدمة عن "وظائف السحابة الإلكترونية"، جرِّب إحدى خطوات البدء السريعة.

نماذج

يوضّح المثال التالي كيفية استدعاء الدوال في دوال Cloud باستخدام سياسة ExtensionCallout.

استدعاء دالة Node.js

يعرض المثال التالي سياسة ExtensionCallout لاستدعاء إضافة دوال Google Cloud. تستدعي الإضافة الاسم التلقائي "hello world" عند تفعيل 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 باسم 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. في معظم الحالات عند استخدام إضافة "دوال السحابة الإلكترونية"، يمكنك إعداد parsed="false". راجع <الإخراج> العنصر للمزيد.

إذا أرجعت دالة السحابة الإلكترونية استجابة JSON وضبطت parsed="true"، ستكون الاستجابة من الإضافة مرجع كائن. لاستخراج الردّ من المرجع، استخدِم البنية التالية: {objectName}.{jsonKey}. مثلاً:

function.response.message

المهام

استدعاء

لاستدعاء دالة السحابة.

في الوقت الحالي، تتيح هذه الإضافة استدعاء دوال مشغِل 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، يكون هذا هو محتوى ملف مفتاح حساب الخدمة. وعند إرسالها عبر واجهة برمجة تطبيقات الإدارة، تكون قيمة بترميز base64 يتم إنشاؤها من ملف مفتاح حساب الخدمة. بلا عُري نعم.