אתם קוראים את מאמרי העזרה של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X. מידע
גרסה 1.0.5
הפעלת 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 ונוצר מקובץ המפתח של חשבון השירות. | ללא. | כן. |