שליחת קריאה לממשקי API מפרויקט ב-Google Cloud

1. לפני שמתחילים

ב-Codelab הזה נסביר איך ליצור פרויקט בענן ב-Google Cloud ואז להפעיל ממשקי Google Cloud API מהפרויקט הזה.

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

  • יכולת להתמצא במסוף Google Cloud.

מה תלמדו

  • איך יוצרים פרויקט ב-Google Cloud
  • איך מגדירים חשבון לחיוב
  • איך מגדירים את Cloud Shell
  • איך מפעילים API.
  • איך מאשרים API באמצעות מפתח API.
  • איך נותנים הרשאה ל-API באמצעות חשבון שירות.

הדרישות

2. להגדרה

בקטע הזה מוסבר איך ליצור פרויקט בענן ב-Google Cloud, להגדיר חשבון לחיוב ולהגדיר את Cloud Shell.

יצירת פרויקט בענן ב-Google Cloud והגדרת חשבון לחיוב

  1. נכנסים אל Cloud Console ובוחרים פרויקט או יוצרים פרויקט חדש.

של Google Cloud  חלונית פרויקט חדשחלונית New Project (פרויקט חדש) שבה מוצגים השדות Project name (שם הפרויקט), Organization (ארגון) ו-Location (מיקום).

חשוב לזכור את מזהה הפרויקט שמופיע מתחת לשדה שם הפרויקט. המזהה הוא שם ייחודי בכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס), והוא יופיע בהמשך ה-codelab הזה בתור PROJECT_ID.

  1. לאחר מכן, צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים של Google Cloud.

למרות שה-codelab הזה לא אמור לעלות הרבה, אם בכלל, כדאי לפעול לפי ההוראות שבקטע ניקוי כדי להשבית את המשאבים ולמנוע עלויות מעבר ל-codelab הזה. שימו לב שמשתמשים חדשים ב-Google Cloud זכאים לתקופת ניסיון בחינם בשווי 300$.

הגדרת Cloud Shell

בשיעור Codelab הזה נשתמש ב-Cloud Shell, סביבת שורת פקודה שפועלת ב-Google Cloud. ‫Cloud Shell היא מכונה וירטואלית שמבוססת על Debian, שטעונים בה כל הכלים הדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB, מה שמשפר מאוד את ביצועי הרשת והאימות. המשמעות היא שכל מה שצריך בשביל ה-codelab הזה הוא דפדפן.

כדי להפעיל את Cloud Shell מ-Cloud Console:

  1. לוחצים על a8460e837e9f5fda.png הפעלת Cloud Shell.

יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו.

מפעילים את האפשרות Cloud Shell.‫Cloud Shell עם שורת פקודה.

אחרי שמתחברים ל-Cloud Shell, אפשר לראות שהאימות כבר בוצע ושהפרויקט כבר מוגדר ל-PROJECT_ID.

  1. יצירת רשימה של חשבונות עם פרטי כניסה:
gcloud auth list

הפלט הבא אמור להתקבל:

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. כדי לראות רשימה של הפרויקטים, מזינים את הפקודה הזו.
gcloud config list project

הפלט הבא אמור להתקבל:

[core]
project = <PROJECT_ID>

אם מסיבה כלשהי הפרויקט לא מוגדר, מריצים את הפקודה הזו כדי להגדיר את הפרויקט.

gcloud config set project <PROJECT_ID>

‫PROJECT_ID הוא המזהה שבו השתמשתם בשלבי ההגדרה. אפשר גם לחפש אותו במרכז הבקרה של מסוף Cloud:

חלונית Project info שבה מוצג מזהה הפרויקט.

ב-Cloud Shell מוגדרים גם כמה משתני סביבה כברירת מחדל, שיכולים להיות שימושיים כשמריצים פקודות בעתיד.

  1. כדי לראות את מזהה הפרויקט, מזינים את הפקודה הבאה.
echo $GOOGLE_CLOUD_PROJECT

הפלט הבא אמור להתקבל:

<PROJECT_ID>
  1. לבסוף, מגדירים את אזור ברירת המחדל ואת הגדרת הפרויקט.
gcloud config set compute/zone us-central1-f

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

3. הפעלת API מפרויקט

בשיעור Codelab הזה נדגים איך משתמשים בממשק API לדוגמה (Natural Language API) כדי למצוא ישויות (כמו אנשים, מקומות ואירועים) בטקסט, ואיך להעריך את הסנטימנט (רמת החיבה) של הטקסט הזה. תלמדו איך:

  • מפעילים את ממשקי ה-API של Google Cloud.
  • קבלת הרשאה ל-API באמצעות מפתחות API וחשבונות שירות.
  • קוראים ל-API באמצעות curl וספריות לקוח.

הפעלת API

  1. בתפריט הראשי במסוף Cloud, בוחרים באפשרות APIs & Services.

התפריט הראשי של מסוף Cloud שבו מוצגת האפשרות APIs & Services (ממשקי API ושירותים).

  1. בחלק העליון של המסך, לוחצים על + ENABLE APIS AND SERVICES.

האפשרות ENABLE APIS AND SERVICES.

  1. בשלב הזה, אפשר לסנן ולעיין בממשקי ה-API, או לעבור ישירות לממשק API באמצעות התיבה Search. מחפשים את Natural Language ובוחרים באפשרות Cloud Natural Language API.

חלונית Cloud Natural Language API עם הלחצנים ENABLE ו-TRY THIS API.

  1. לוחצים על TRY THIS API (התנסות עם ה-API).

אם לא מוצג לחצן TRY THIS API, לוחצים על אחת מהשיטות שמופיעות ברשימה כדי לנסות את השיטה הזו.

יצירת מפתח API

מכיוון שאתם משתמשים ב-curl כדי לשלוח בקשה ל-Natural Language API, אתם צריכים ליצור מפתח API כדי להעביר אותו בכתובת ה-URL של הבקשה.

  1. ב-Cloud Console, בוחרים באפשרות תפריט הניווט > APIs & Services > Credentials.

תפריט הניווט עם האפשרויות APIs & Services (ממשקי API ושירותים) ו-Credentials (פרטי כניסה).

  1. לוחצים על CREATE CREDENTIALS ואז בוחרים באפשרות API key:

בחלונית Credentials (פרטי כניסה) מוצגות האפשרויות CREATE CREDENTIALS (יצירת פרטי כניסה) ו-API key (מפתח API).

  1. מעתיקים את מפתח ה-API שנוצר ולוחצים על סגירה.

שימוש במפתח API כדי לשלוח קריאה ל-API

  1. בשורה של הפקודה Cloud Shell, מייצאים את מפתח ה-API.
export API_KEY=<YOUR_API_KEY>

מחליפים את <YOUR_API_KEY> במפתח שיצרתם קודם.

  1. יוצרים בקשה ל-API בכלי לעריכת Cloud Shell או בכלי לעריכת Linux, כמו Vim או Emacs. פרטים על הפרמטרים זמינים במאמר בנושא שיטה: documents.analyzeEntities. שומרים את הפלט בקובץ בשם request.json:
{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
  },
  "encodingType":"UTF8"
}
  1. מפעילים את ה-API עם פרטי הבקשה.
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. מריצים מחדש את הפקודה, מפנים את הפלט לקובץ ובודקים את התוצאה. פרטים על הפלט של קובץ ה-JSON מופיעים גם במאמר בנושא שיטה: documents.analyzeEntities.
  2. כדי לשנות את הטקסט לניתוח בקובץ request.json, מחליפים את הערך content בטקסט הרצוי.

4. הרשאה עם חשבון שירות

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

  1. חוזרים לקטע Credentials בתפריט APIs & Services.
  2. לוחצים על Create Credentials, אבל הפעם בוחרים באפשרות Service Account.

חלונית הפרטים של חשבון השירות.

  1. מזינים שם של חשבון שירות שמתאר את המטרה שלו, כמו Natural Language Service Account. המערכת מציעה מזהה. אפשר גם להוסיף תיאור. בהמשך, כשתלמדו עוד על חשבונות שירות, תוכלו להעניק לחשבון השירות גישה לפרויקטים ולהעניק למשתמשים גישה לחשבון השירות. אבל כרגע, פשוט לוחצים על Done כדי ליצור את חשבון השירות.
  2. כדי ליצור צמד מפתחות לשימוש בחשבון השירות, לוחצים על d489bd059474ae59.pngכדי לערוך את חשבון השירות.

החלונית Service accounts שבה מוצגת רשימה של חשבונות.

פרטי חשבון השירות מוצגים.

חלונית פרטי חשבון השירות שבה מוצגים הפרטים של חשבון השירות Natural Language Service.

  1. מעתיקים את כתובת האימייל של חשבון השירות וחוזרים אל Cloud Shell.
  2. ב-Cloud Shell, יוצרים צמד מפתחות לחשבון השירות ומגדירים משתנה סביבה שיצביע עליו:
gcloud iam service-accounts keys create ~/key.json \
  --iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"

מערכת Google Cloud משתמשת במשתנה הסביבה הזה כדי למצוא את פרטי הכניסה, ולכן אין צורך לכלול אותם בקריאה ל-API.

  1. עכשיו אפשר להפעיל את ה-API באמצעות הפקודה:
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." 

התוצאה צריכה להיות זהה לתוצאה הקודמת.

לרבים מהממשקי ה-API יש ספריות לקוח נרחבות שאפשר לחלץ מהן את הפרטים האלה. מידע נוסף על ספריות לקוח זמין במאמר בנושא ספריות לקוח של Cloud. אפשר גם לקרוא את התיעוד של ממשקי ה-API שבהם אתם משתמשים כדי לראות אילו ספריות לקוח זמינות עבורם.

5. הסרת המשאבים

לא מומלץ להשתמש במפתח API ללא הגבלות בפרויקטים. אם מישהו יקבל גישה אליו, הוא יוכל להשתמש בו ללא צורך באימות נוסף.

כדי למחוק את מפתח ה-API הזה:

  1. לוחצים על f6b6844bf5688982.png תפריט הניווט > ממשקי API ושירותים > פרטי כניסה.
  2. בקטע מפתחות API, בוחרים את המפתח שרוצים למחוק ולוחצים על 247adf2e1d1eae4b.pngמחיקה.
  3. באופן דומה, במקום לדאוג שהמפתח הפרטי של חשבון השירות לא מוגן, בקטע Service Accounts בוחרים את חשבון השירות שרוצים למחוק ולוחצים על 247adf2e1d1eae4b.pngDelete.

6. מזל טוב

מעולה! למדתם איך ליצור פרויקט בענן של Google ואיך להפעיל API מתוך הפרויקט.