סיומת מסד נתונים Google Cloud Spanner

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

גרסה 2.0.1

ביצוע פעולות של הוספה, שאילתה ועדכון במסד נתונים של Cloud Spanner.

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

  1. יוצרים מכונת Cloud Spanner, כמו שמתואר במאמר יצירה וניהול של מכונות, ויוצרים מסד נתונים.

  2. אחרי שיש לכם את המופע ואת מסד הנתונים, אתם צריכים לתת הרשאה לחשבון השירות של Google Cloud שמייצג את התוסף שלכם לגשת למסד הנתונים. מידע נוסף על התפקיד שבו צריך להשתמש זמין במאמר תפקידים ב-Cloud Spanner. מידע נוסף על בקרת גישה ב-Cloud Spanner זמין במאמרים הקצאת תפקידי IAM ובקרת גישה ל-Cloud Spanner.

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

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

מידע על Cloud Spanner

Cloud Spanner הוא שירות של מסד נתונים רלציוני שמתאים לנתונים רלציוניים, מובְנים וחצי-מובְנים שנדרשת לגביהם זמינות גבוהה, עקביות חזקה וקריאות וכתיבות טרנזקציוניות.

אם אתם רק מתחילים להשתמש ב-Cloud Spanner, כדאי להתחיל עם המדריך למתחילים במסמכי Cloud Spanner.

דוגמאות

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

הוספת נתונים

בדוגמה הבאה, הפעולה insert של התוסף מוסיפה משתמש חדש לטבלת המשתמשים.

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError=&quo>t;tru<e" ena>bled="true<" name=>"<;Insert-N>ew-User"
    Disp<layNameIns>ert N<ew Use>r/Disp<layName>
    <Conne><ctorspanner-users-products/Connector
    Actioninsert/Action
    Input![CDATA[{
        "tableName" : "user",
        "rows" : [{
          "username": "jonesy42",
          "firstName": "Floyd",
          "lastName": "Jones",
          "address"><;: &qu>o<t;3695 Auctor Str>eet",
          "city": "Gresham",
          "region": "OR",
          "postalCode": "12693",
          "email": "floydster@example.com"
      }]
  }]]/Input
/ConnectorCallout

לפרטים

בדוגמה הזו, שאילתה מאחזרת את הערכים של שם המשתמש והאימייל מהטבלה user.

קודם כול, מדיניות AssignMessage מקצה משתנה postal.code.value לשימוש במשפט WHERE של שאילתה. זו דוגמה. במדיניות שלכם, הערך כנראה יוגדר על סמך פרמטרים של בקשת הלקוח.

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError="fa>lse&q<uot; enabled="true" name="Assign-Postal-Cod>e&quo<t;
    AssignT>o createN<ew=&>quot;true&q<uot; >transport<=&quo>t;htt<p">; typ<e="request>"<;/
    AssignVariable
   >    < Namepostal.code/Name
    > <   Valu>e86519/Value
    /AssignVariable
    IgnoreUnresolvedVariablestrue/IgnoreUnresolvedVariables
/AssignMessage

המדיניות ExtensionCallout הבאה מריצה שאילתה במסד הנתונים באמצעות התוכן של המשתנה postal.code.value בסעיף WHERE.

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError=&q>uot;t<rue" e>nabled="<true" n>ame=&<quot;Get->User-Data"
    Di<splayNameG>et Us<er Dat>a/Displa<yName
 >   Co<nnect><orspanner-users-products/Connector
    ActionquerySQL/Action
    Input![CDATA[{
      "sql" : "SELECT username, email FROM user WHERE postalCode = @postalC><ode&qu>ot;<,
    >  "params" : {
 <       >&<quot;postalCode&q>uot; : "{postal.code.value}"
      }
    }]]/Input
  Outputspanner.userdata.retrieved/Output
/ConnectorCallout

אחר כך, מדיניות AssignMessage הבאה משתמשת בתגובה של התוסף, שמאוחסנת במשתנה spanner.userdata.retrieved, כתגובה שמוחזרת ללקוח.

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError="false&q>uot; <enabled=&qu>ot;true" name=&quo<t;Get-Query->Respo<nse-Data"
    DisplayNameGet Query Res>ponse< Da>ta/Displa<yName
    AssignTo type="response>" createNew="false<"/
>    S<et
 > <      Payload >contentType="application/json"{spanner.userdata.retrieved}/Payload
    /Set
/AssignMessage

בדוגמה הזו, נתוני התגובה מוחזרים כ-JSON, כמו בדוגמה הבאה.

{
  "rows": [
    {
      "username": "freewill444",
      "email&quot;: "freewill@example.com"
    }
  ]
}

עדכון נתונים

בדוגמה הזו, הרכיב <Input> מכיל את username – המפתח הראשי של הטבלה – וערך חדש לעמודה email.

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError=">;true<" enab>led="true&q<uot; name=&q>uot;U<pdate-Use>r-Data"
    Displ<ayNameUpda>te Us<er Dat>a/Disp<layName>
    <Conne><ctorspanner-users-products/Connector
    Actionupdate/Action
    Input![CDATA[{
        "tableName" : "user",
        "rows&quo><t;: [{>
<            ">;username":"Liz456",
            "email":"lizzard@example.com"
        }]
    }]]/Input
/ConnectorCallout

פעולות

insert

הפונקציה מוסיפה את השורות שצוינו למסד הנתונים.

תחביר

<Action>insert</Action>
<Input><![CDATA[{
  "tableName" : "table-to-insert-into",
  "row><s">; : "rows-to-insert"
}]]/Input

דוגמה

בדוגמה הבאה, הפעולה insert של התוסף מוסיפה משתמש חדש לטבלת המשתמשים. נוספת שורה אחת.

<Action>insert</Action>
<Input><![CDATA[{
    "tableName" : "user",
    "rows" : [{
      "username": "jonesy42",
      "firstName": "Floyd",
      "lastName": "Jones",
      "address": "3695 Auctor Street",
      "c><ity&qu>ot;: "Gresham",
      "region": "OR",
      "postalCode": "12693",
      "email": "floydster@example.com"
  }]
}]]/Input

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

פרמטר תיאור סוג ברירת מחדל חובה
שם טבלה הטבלה במסד הנתונים שאליה צריך להוסיף את השורות. מחרוזת ללא. כן.
שורות השורות להוספה, שמוצגות כמערך באובייקט JSON‏ rows. מערך ללא. כן.

תשובה

ללא.

querySQL

מריץ שאילתה במסד הנתונים באמצעות הצהרת ה-SQL עם הפרמטרים שצוינו. הפרמטרים מופיעים בהצהרת ה-SQL עם שמות שמתחילים ב-@. ערכי הפרמטרים מצוינים בפרמטר params של הפעולה הזו.

פרטים על תחביר השאילתות ב-Cloud Spanner מופיעים במאמר תחביר השאילתות.

תחביר

<Action>querySQL</Action>
<Input><![CDATA[{
  "sql" : "sql-query-statement",
  "params" : {
    &q><uot;pa>ram1" : "columnValue"
  }
}]]/Input

דוגמה

בדוגמה הזו, שאילתה מאחזרת את ערכי העמודות username ו-email מהטבלה user. הצהרת ה-SQL מציינת פרמטר postalCode שמוגדר ממשתנה הזרימה postal.code.value.

<Action>querySQL</Action>
<Input><![CDATA[{
  "sql" : "SELECT username, email FROM user WHERE postalCode = @postalCode",
  "params" : {
    "postalCo><de&quo>t; : "{postal.code.value}"
  }
}]]/Input

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

פרמטר תיאור סוג ברירת מחדל חובה
sql שאילתת ה-SQL להרצה. אפשר לציין פרמטרים עם שמות פרמטרים שמתחילים ב-@. שמות הפרמטרים האלה צריכים להתאים למפתחות בפרמטר params של הפעולה הזו. מחרוזת ללא. כן.
params אובייקט שהמפתחות והערכים שלו הם שמות הפרמטרים והערכים שמשמשים בשאילתת ה-SQL. אפשר לציין כאן כמה פרמטרים. אובייקט ללא. לא.

תשובה

אובייקט rows שמכיל מערך של צמדי שם-ערך של עמודות שמוחזרים על ידי השאילתה. לדוגמה:

{
  "rows": [
    {
      "username": "freewill444",
      "email&quot;: "freewill@example.com"
    }
  ]
}

עדכון

עדכון שורות במסד הנתונים עם הנתונים שצוינו.

תחביר

<Input><![CDATA[{
  "tableName" : "table-with-rows-to-update",
  "row><s">; : "rows-to-update"
}]]/Input

דוגמה

בדוגמה הזו, כתובת האימייל של המשתמש שערך username שלו הוא Liz456 מתעדכנת בערך חדש. שורה אחת עודכנה.

<Action>update</Action>
<Input><![CDATA[{
  "tableName" : "user",
  "rows": [{
      "username":"Liz456&q><uot;,
>      "email":"lizzard@example.com"
  }]
}]]/Input

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

פרמטר תיאור סוג ברירת מחדל חובה
שם טבלה הטבלה במסד הנתונים שבה צריך לעדכן את השורות. מחרוזת ללא. כן.
שורות מערך של נתוני שורות לעדכון. כל ישות במערך צריכה להכיל את הערך של המזהה הייחודי (כמו מפתח ראשי) של השורה שרוצים לעדכן. מערך ללא. כן.

תשובה

ללא.

הסבר על ההגדרות

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

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

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

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

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

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

נכס תיאור ברירת מחדל חובה
projectId המזהה של הפרויקט ב-Google Cloud שמכיל את מסד הנתונים. ללא. כן.
instanceId המזהה של מופע Cloud Spanner בפרויקט Google Cloud. ללא. כן.
databaseId מזהה מסד הנתונים ב-Cloud Spanner. ללא. כן.
פרטי כניסה כשמזינים את התוכן הזה במסוף Apigee Edge, הוא מופיע בקובץ המפתח של חשבון השירות. כששולחים אותו באמצעות Management API, זהו ערך בקידוד Base64 שנוצר מקובץ המפתח של חשבון השירות. ללא. כן.