إضافة دوال Google Cloud

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

الإصدار 1.3.1

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

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

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

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

  1. فعِّل Cloud Functions API.

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

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

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

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

لمحة عن دوال السحابة

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

عيّنات

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

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

يعرض المثال التالي سياسة ExtensionCallout التي تستدعي إضافة دوال Google Cloud. تستدعي الإضافة دالة "hello world" التلقائية المضمّنة عند تفعيل واجهة برمجة التطبيقات Cloud Functions API.

تم نشر رمز JavaScript التالي في Node.js في دوال السحابة لحساب 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. في معظم الحالات عند استخدام إضافة دوال Cloud، يمكنك إعداد parsed="false". راجع عنصر<الإخراج> للاطّلاع على مزيد من المعلومات.

إذا كانت دالة Cloud تعرض استجابة 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>

مَعلمات الطلب

المَعلمة الوصف Type تلقائي مطلوبة
region منطقة Google Cloud التي يتم تفعيل الدالة فيها. سلسلة. بلا عُري نعم.
projectId رقم تعريف مشروع Google Cloud Platform. سلسلة. بلا عُري نعم.
functionName اسم دالة HTTP المراد استدعاؤها. هذا هو الاسم الذي استخدمته عند إنشاء الدالة (ليس بالضرورة اسم من التعليمة البرمجية للدالة). سلسلة. بلا عُري نعم.
method طريقة HTTP التي يتم استخدامها عند استدعاء الدالة. سلسلة. GET لا.
payload الحمولة المطلوب إرسالها مع استدعاء الدالة. JSON. بلا عُري لا.

الإجابة

قيمة استجابة الدالة المحددة، إن وجدت.

خصائص الاستجابة

بلا عُري

مرجع التكوين

استخدِم ما يلي عند ضبط هذه الإضافة ونشرها للاستخدام في الخوادم الوكيلة لواجهة برمجة التطبيقات. لمعرفة خطوات إعداد إضافة باستخدام وحدة تحكُّم Apigee، يُرجى الاطّلاع على إضافة إضافة وضبطها.

خصائص الإضافات الشائعة

السمات التالية متاحة لكل إضافة.

الموقع الوصف تلقائي عنصر مطلوب
name الاسم الذي تُعطِه هذه الإضافة من الإضافات. لا ينطبق متوافق
packageName اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. لا ينطبق متوافق
version رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. لا ينطبق متوافق
configuration قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه لا ينطبق متوافق

الخصائص لحزمة الإضافات هذه

يمكنك تحديد قيم لخصائص الإعداد التالية الخاصة بهذه الإضافة.

الموقع الوصف تلقائي مطلوبة
بيانات الاعتماد عند إدخالها في وحدة تحكّم Apigee Edge، تكون هي محتوى ملف مفتاح حساب الخدمة. وعند إرسالها من خلال واجهة برمجة تطبيقات الإدارة، تكون قيمة بترميز base64 يتم إنشاؤها من ملف مفتاح حساب الخدمة. بلا عُري نعم.