תוסף לפונקציות של Google Cloud

אתם צופים במסמכי התיעוד של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X.
מידע

גרסה 2.0.2

הפעלת Cloud Functions שנפרסו דרך הפרויקט שלכם ב-Google Cloud.

בשלב הזה, התוסף הזה תומך בהפעלת פונקציות של טריגר HTTP.

דרישות מוקדמות

התוכן הזה מספק הפניה להגדרת התוסף הזה ולשימוש בו. לפני שמשתמשים בתוסף משרת proxy של API באמצעות מדיניות ExtensionCallout, צריך:

  1. מפעילים את Cloud Functions API.

  2. הגדרת ופריסת פונקציות ב-Cloud Functions עבור פרויקט Google Cloud.

  3. נותנים למשתמש גישה באמצעות IAM לרמת הגישה שרוצים לתת לו לפונקציה. לדוגמה, אתם יכולים להגביל את הגישה לפונקציה רק לחשבון השירות שבו אתם משתמשים כדי להגדיר את התוסף.

  4. שימוש במסוף GCP כדי ליצור מפתח לחשבון השירות.

  5. משתמשים בתוכן של קובץ ה-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 בחשבון GCP. אם הבקשה כוללת מאפיין הודעה, הקוד מחזיר אותו. אחרת, היא מחזירה '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 Functions מחזירה תגובת JSON והגדרתם את parsed="true", התגובה מהתוסף היא הפניה לאובייקט. כדי לחלץ את התשובה מההפניה, משתמשים בתחביר הבא: {objectName}.{jsonKey}. לדוגמה:

function.response.message

פעולות

להפעיל

מפעיל פונקציה של Cloud Functions.

בשלב הזה, התוסף הזה תומך בהפעלת פונקציות של טריגר 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 מזהה הפרויקט ב-GCP. מחרוזת. ללא. כן.
functionName השם של פונקציית ה-HTTP שתופעל. זה השם שבו השתמשתם כשיצרתם את הפונקציה (לא בהכרח שם מקוד הפונקציה). מחרוזת. ללא. כן.
method שיטת ה-HTTP שבה צריך להשתמש כשמפעילים את הפונקציה. מחרוזת. GET לא.
מטען ייעודי (payload) המטען הייעודי (payload) שיישלח עם הפעלת הפונקציה. ‫JSON. ללא. לא.

תשובה

ערך התגובה של הפונקציה שצוינה, אם יש כזה.

מאפייני התשובה

ללא.

הסבר על ההגדרות

כשמגדירים ופורסים את התוסף הזה לשימוש בשרתי proxy ל-API, צריך להשתמש בפרטים הבאים. הוראות להגדרת תוסף באמצעות מסוף Apigee מופיעות במאמר הוספה והגדרה של תוסף.

מאפיינים נפוצים של תוספים

המאפיינים הבאים קיימים בכל תוסף.

נכס תיאור ברירת המחדל נדרש
name השם שבחרת לתצורה הזו של התוסף. ללא כן
packageName השם של חבילת התוסף כפי שהוא סופק על ידי Apigee Edge. ללא כן
version מספר הגרסה של חבילת התוסף שממנה מגדירים את התוסף. ללא כן
configuration ערך הגדרה ספציפי לתוסף שרוצים להוסיף. מאפיינים לחבילת תוספים זו ללא כן

מאפיינים של חבילת התוספים הזו

מזינים ערכים למאפייני ההגדרה הבאים שספציפיים לתוסף הזה.

נכס תיאור ברירת מחדל חובה
פרטי כניסה כשמזינים את התוכן הזה במסוף Apigee Edge, זה התוכן של קובץ המפתח של חשבון השירות. כששולחים את הערך הזה דרך Management API, הוא מגיע בקידוד Base64 שנוצר מקובץ המפתח של חשבון השירות. ללא. כן.