אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
גרסה 2.0.0
הפעלת פונקציות Cloud Functions שנפרסו דרך הפרויקט שלכם ב-Google Cloud.
בשלב זה, התוסף תומך בהפעלה של פונקציות טריגר של HTTP.
דרישות מוקדמות
התוכן הזה מכיל מידע שיעזור לכם להגדיר את התוסף הזה ולהשתמש בו. לפני שמשתמשים בתוסף משרת proxy של API באמצעות מדיניות ExtensionCallout, צריך:
מפעילים את Cloud Functions API.
הגדרה וdeploy של פונקציות ב-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.
בשלב זה, התוסף תומך בהפעלה של פונקציות טריגר של 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) | מטען הייעוד (payload) שצריך לשלוח עם הקריאה לפונקציה. | JSON. | ללא. | לא. |
תשובה
ערך התגובה של הפונקציה שצוינה, אם יש כזה.
מאפייני התשובה
ללא.
מסמך עזר בנושא הגדרות
השתמשו בהוראות הבאות כשמגדירים ומפרסים את התוסף הזה לשימוש בשרתי proxy ל-API. במאמר הוספה והגדרה של תוסף מוסבר איך להגדיר תוסף באמצעות מסוף Apigee.
מאפייני תוספים נפוצים
המאפיינים הבאים קיימים בכל תוסף.
נכס | תיאור | ברירת המחדל | נדרש |
---|---|---|---|
name |
השם שבחרת לתצורה הזו של התוסף. | ללא | כן |
packageName |
השם של חבילת התוסף כפי שהוא סופק על ידי Apigee Edge. | ללא | כן |
version |
מספר הגרסה של חבילת התוסף שממנה מגדירים את התוסף. | ללא | כן |
configuration |
ערך הגדרה ספציפי לתוסף שרוצים להוסיף. מאפיינים לחבילת תוספים זו | ללא | כן |
הנכסים של חבילת התוספים הזו
מציינים ערכים למאפייני התצורה הבאים שספציפיים לתוסף הזה.
נכס | תיאור | ברירת מחדל | חובה |
---|---|---|---|
פרטי כניסה | כשמזינים את הקובץ במסוף Apigee Edge, זהו התוכן של קובץ המפתח של חשבון השירות. כששולחים אותו דרך ממשק ה-API לניהול, הוא ערך בקידוד base64 שנוצר מקובץ המפתח של חשבון השירות. | ללא. | כן. |