אתם צופים במסמכי התיעוד של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X. מידע
גרסה 2.0.2
הפעלת Cloud Functions שנפרסו דרך הפרויקט שלכם ב-Google Cloud.
בשלב הזה, התוסף הזה תומך בהפעלת פונקציות של טריגר HTTP.
דרישות מוקדמות
התוכן הזה מספק הפניה להגדרת התוסף הזה ולשימוש בו. לפני שמשתמשים בתוסף משרת proxy של API באמצעות מדיניות ExtensionCallout, צריך:
מפעילים את Cloud Functions API.
הגדרת ופריסת פונקציות ב-Cloud Functions עבור פרויקט Google Cloud.
נותנים למשתמש גישה באמצעות IAM לרמת הגישה שרוצים לתת לו לפונקציה. לדוגמה, אתם יכולים להגביל את הגישה לפונקציה רק לחשבון השירות שבו אתם משתמשים כדי להגדיר את התוסף.
משתמשים בתוכן של קובץ ה-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 שנוצר מקובץ המפתח של חשבון השירות. | ללא. | כן. |