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

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

גרסה 1.3.1

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

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

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

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

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

  2. הגדרה וdeploy של פונקציות ב-Cloud Functions לפרויקט ב-Google Cloud

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

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

  5. יש להשתמש בתוכן של קובץ ה-JSON שמכיל את המפתח שהתקבל במהלך הוספה והגדרה של התוסף באמצעות ההפניה לתצורה.

מידע על Cloud Functions

באמצעות Google Cloud Functions, אתם יכולים ליצור ולפרוס פונקציות ב-Google Cloud, ואז להפעיל את הפונקציות האלה מקוד אחר. אם אתם רוצים להתחיל להשתמש ב-Cloud Functions, מומלץ לנסות את אחד מההתחלה המהירה.

טעימות

הדוגמה הבאה ממחישה איך להפעיל פונקציות ב-Cloud Functions באמצעות המדיניות בנושא יתרונות מרכזיים.

הפעלת הפונקציה Node.js

הדוגמה הבאה כוללת מדיניות של תוספי יתרונות מרכזיים שמפעילה תוסף של 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.

נכון לעכשיו, התוסף הזה תומך בהפעלת פונקציות טריגר של 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>

פרמטרים של בקשה

פרמטר התיאור תיאור ברירת המחדל נדרש
region האזור ב-Google Cloud שבו הפונקציה נפרסת. מחרוזת. ללא. כן.
projectId מזהה הפרויקט ב-GCP. מחרוזת. ללא. כן.
functionName שם פונקציית ה-HTTP להפעלה. זהו השם שבו השתמשתם כשיצרתם את הפונקציה (לא בהכרח שם מקוד הפונקציה). מחרוזת. ללא. כן.
method שיטת ה-HTTP שבה צריך להשתמש להפעלת הפונקציה. מחרוזת. GET לא.
payload המטען הייעודי שצריך לשלוח עם הפעלת הפונקציה. JSON. ללא. לא.

תשובה

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

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

ללא.

סימוכין לתצורה

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

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

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

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

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

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

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