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

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

גרסה 1.0.5

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

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

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

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

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

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

הדוגמה הבאה כוללת מדיניות יתרונות מרכזיים של תוסף שמפעילה תוסף Google Cloud Functions. התוסף קורא לברירת המחדל "שלום עולם" שכלולה כשמפעילים את 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. קוד ההגדרה הבא של מדיניות תוסף היתרונות המרכזיים משתמש בשם הזה, יחד עם ערכי אזור ומזהה פרויקט שתואמים לפרטים של סביבת 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>

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

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

תשובה

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

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

ללא.

חומר עזר בנושא הגדרות אישיות

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

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

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

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

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

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

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