כדי לגשת Google Cloud למוצרים ולשירותים באופן פרוגרמטי, משתמשים ב-Cloud APIs. ממשקי ה-API האלה חושפים ממשק REST פשוט בפורמט JSON. הדרך המומלצת לגשת אל Cloud APIs היא באמצעות ספריות הלקוח ב-Cloud.
באמצעות Cloud Code, קל להוסיף לפרויקט את ספריות הלקוח של Cloud עבור Cloud APIs והשפה שבה אתם משתמשים. באותו תצוגה, אפשר לחפש דוגמאות לכל API ולשלב בקלות דוגמאות באפליקציה.
עיון בממשקי Cloud API
כדי לעיין בכל ממשקי ה-API הזמינים Google Cloud :
לוחצים על
Cloud Code ומרחיבים את הקטע Cloud APIs.
בתצוגה Cloud APIs, ממשקי ה-API של Cloud מקובצים לפי קטגוריה.
כדי לראות את הפרטים של API, לוחצים על שם ה-API. מוצגים פרטים כמו שם השירות, הסטטוס, הוראות ההתקנה של ספריות הלקוח, תיעוד ודוגמאות קוד.
הפעלת ממשקי Cloud API
כדי להפעיל ממשקי Cloud API בפרויקט באמצעות דף הפרטים של ה-API, צריך לבצע את השלבים הבאים:
- בדף הפרטים של Cloud API, בוחרים את הפרויקט שרוצים להפעיל בו את Cloud API.
- לוחצים על Enable API. אחרי הפעלת ה-API, מוצגת הודעה לאישור השינוי.
הוספת ספריות לקוח לפרויקט
בנוסף לחיפוש ולהפעלה של Cloud APIs באמצעות Cloud Code, אפשר להוסיף לפרויקט ספריית לקוח ספציפית לשפה.
כדי להתקין ספריית לקוח, פועלים לפי ההוראות בדף פרטי ה-API בשפה הרלוונטית.
שימוש בדוגמאות ל-API
בדפדפן ה-API אפשר לחפש דוגמאות קוד לכל API ולהשתמש בהן.
לוחצים על
Cloud Code ומרחיבים את הקטע Cloud APIs.
כדי לפתוח את התצוגה המפורטת, לוחצים על השם של ה-API.
כדי לראות דוגמאות קוד ל-API, לוחצים על דוגמאות קוד.
כדי לסנן את רשימת הדוגמאות, מקלידים טקסט לחיפוש או בוחרים שפת תכנות מהרשימה שפה.
כדי לראות דוגמה, לוחצים על השם שלה. יש גם אפשרויות להעתיק את הדוגמה ללוח או לצפות בדוגמה ב-GitHub.
הגדרת אימות
אחרי שמפעילים את ממשקי ה-API הנדרשים ומוסיפים את ספריות הלקוח הדרושות, צריך להגדיר את האפליקציה כדי שהאימות שלה יתבצע בהצלחה. ההגדרה תלויה בסוג הפיתוח ובפלטפורמה שבה אתם מריצים את הקוד.
אחרי שתשלימו את שלבי האימות, האפליקציה תוכל לבצע אימות ותהיה מוכנה לפריסה.
פיתוח מקומי
מכונה מקומית
אם נכנסתם אל Google Cloud ב-IDE, Cloud Code מגדיר את Application Default Credentials (ADC) ואפשר לדלג על השלב הזה. אם נכנסתם אל Google Cloud מחוץ לסביבת פיתוח משולבת (IDE) (לדוגמה, באמצעות ה-CLI של gcloud), צריך להגדיר את ADC ולאפשר לספריות הלקוח Google Cloud לבצע אימות דרך ADC על ידי הרצת הפקודה:
gcloud auth login --update-adc
minikube
אם נכנסתם אל Google Cloud ב-IDE, Cloud Code מגדיר את Application Default Credentials (ADC) ואפשר לדלג על השלב הזה. אם נכנסתם אל Google Cloud מחוץ לסביבת פיתוח משולבת (IDE) (לדוגמה, באמצעות ה-CLI של gcloud), צריך להגדיר את ADC ולאפשר לספריות הלקוח Google Cloud לבצע אימות דרך ADC על ידי הרצת הפקודה:
gcloud auth login --update-adc
- מריצים את הפקודה
minikube start --addons gcp-authכדי להפעיל את minikube. הפקודה הזו מטמיעה את ה-ADC בפודים. למידע מפורט על אימות minikube באמצעות Google Cloud, אפשר לעיין במסמכי minikube gcp-auth.
אשכולות K8s מקומיים אחרים
אם נכנסתם אל Google Cloud ב-IDE, Cloud Code מגדיר את Application Default Credentials (ADC) ואפשר לדלג על השלב הזה. אם נכנסתם אל Google Cloud מחוץ לסביבת פיתוח משולבת (IDE) (לדוגמה, באמצעות ה-CLI של gcloud), צריך להגדיר את ADC ולאפשר לספריות הלקוח Google Cloud לבצע אימות דרך ADC על ידי הרצת הפקודה:
gcloud auth login --update-adc
- כדי לוודא שספריות הלקוח Google Cloud יכולות למצוא את פרטי הכניסה שלכם, צריך לערוך את מניפסט הפריסה כדי להוסיף את ספריית
~/.config/gcloudהמקומית לפודים של Kubernetes. - מגדירים את מזהה הפרויקט ( Google Cloud Project ID) כמשתנה סביבה
בשם
GOOGLE_CLOUD_PROJECT.
דוגמה להגדרת pod ב-Kubernetes:
apiVersion: v1
kind: Pod
metadata:
name: my-app
labels:
name: my-app
spec:
containers:
- name: my-app
image: gcr.io/google-containers/busybox
ports:
- containerPort: 8080
env:
- name: GOOGLE_CLOUD_PROJECT
value: my-project-id
volumeMounts:
- mountPath: /root/.config/gcloud
name: gcloud-volume
volumes:
- name: gcloud-volume
hostPath:
path: /path/to/home/.config/gcloudCloud Run
אם נכנסתם אל Google Cloud ב-IDE, Cloud Code מגדיר את Application Default Credentials (ADC) ואפשר לדלג על השלב הזה. אם נכנסתם אל Google Cloud מחוץ לסביבת פיתוח משולבת (IDE) (לדוגמה, באמצעות ה-CLI של gcloud), צריך להגדיר את ADC ולאפשר לספריות הלקוח Google Cloud לבצע אימות דרך ADC על ידי הרצת הפקודה:
gcloud auth login --update-adc
פיתוח מקומי באמצעות ממשקי API שנדרש בהם חשבון שירות
חלק מממשקי ה-API, כמו Cloud Translation API, דורשים חשבון שירות עם הרשאות מתאימות כדי לאמת את הבקשות שלכם. למידע נוסף, קראו את המאמר יצירה וניהול של חשבונות שירות. מדריך למתחילים שמשתמש בחשבון שירות זמין במאמר שימוש בספריות הלקוח של Cloud ב-Cloud Code.
כדי לפתוח טרמינל, לוחצים על Terminal (טרמינל) > New Terminal (טרמינל חדש).
יוצרים חשבון שירות כדי לאמת את בקשות ה-API:
gcloud iam service-accounts create \ SERVICE_ACCOUNT_ID \ --project PROJECT_ID
מחליפים את הערכים הבאים:
SERVICE_ACCOUNT_ID: מזהה חשבון השירות-
PROJECT_ID: מזהה הפרויקט
כדי למצוא את המזהים האלה, ב- Google Cloudלוחצים על תפריט הניווט בפינה הימנית העליונה של המסך, מעבירים את מצביע העכבר מעל IAM & Admin ולוחצים על Service Accounts.
בעמודה Email מופיעים
SERVICE_ACCOUNT_IDוPROJECT_IDהייחודיים של כל חשבון שירות בפורמט הבא:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.comלדוגמה: כתובת האימייל של חשבון השירות
my-service-account@my-project.iam.gserviceaccount.comכוללת את הערכים הבאים:SERVICE_ACCOUNT_ID:my-service-accountPROJECT_ID:my-project
מקצים לחשבון השירות את התפקיד המתאים. בדוגמה הבאה של פקודה מוקצה התפקיד Cloud Translation API User. כדי לדעת איזה תפקיד להקצות, צריך לעיין במסמכים של Cloud API שבו אתם משתמשים.
gcloud projects \ add-iam-policy-binding \ PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \ --role='roles/cloudtranslate.user'
יוצרים מַפְתח לחשבון השירות:
gcloud iam service-accounts keys \ create key.json --iam-account \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
הגדרת המפתח כפרטי ברירת המחדל:
export \ GOOGLE_APPLICATION_CREDENTIALS=key.jsonאופציונלי: כדי לאפשר למשתמשים להתחזות לחשבון השירות, מריצים את הפקודה
gcloud iam service-accounts add-iam-policy-bindingכדי להקצות למשתמש את התפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser) בחשבון השירות:gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
מחליפים את הערכים הבאים:
USER_EMAIL: כתובת האימייל של המשתמש
פיתוח מרחוק
GKE
בהתאם להיקף הפרויקט, אפשר לבחור איך לאמת Google Cloud שירותים ב-GKE:
- (לפיתוח בלבד)
- יוצרים אשכול GKE עם ההגדרות הבאות:
- מוודאים שאתם משתמשים בחשבון השירות ש-GKE משתמש בו כברירת מחדל, בחשבון השירות שמשמש כברירת המחדל של Compute Engine, ושהיקפי הגישה מוגדרים למתן גישה מלאה לכל ממשקי Cloud API (שתי ההגדרות האלה זמינות בקטע Node Pools > Security). מכיוון שחשבון השירות של Compute Engine משותף לכל עומסי העבודה שנפרסו בצומת, השיטה הזו מקצה הרשאות מעבר לנדרש, ולכן מומלץ להשתמש בה רק לצורכי פיתוח.
- מוודאים ש-Workload Identity לא מופעל באשכול (בקטע Cluster (אשכול) > Security (אבטחה)).
- מקצים לחשבון השירות את התפקידים הנדרשים:
- אם אתם מנסים לגשת לסוד, אתם צריכים לפעול לפי השלבים הספציפיים ל-Secret Manager כדי להגדיר את התפקידים הנדרשים בחשבון השירות.
- אם אתם משתמשים בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, יכול להיות שהתפקידים הנכונים ב-IAM כבר הוקצו.
- רשימה של סוגי תפקידים ב-IAM ותפקידים מוגדרים מראש שאפשר להקצות לזהויות מופיעה במאמר הסבר על התפקידים. במאמר הענקה, שינוי וביטול גישה למשאבים מוסבר איך נותנים תפקידים.
- יוצרים אשכול GKE עם ההגדרות הבאות:
- (מומלץ לשימוש בסביבת ייצור)
- מגדירים את אשכול GKE ואת האפליקציה באמצעות Workload Identity כדי לאמת Google Cloud שירותים ב-GKE. כך משייכים את חשבון השירות של Kubernetes לחשבון השירות של Google.
- מגדירים את פריסת Kubernetes כך שתפנה לחשבון השירות של Kubernetes על ידי הגדרת השדה
.spec.serviceAccountNameבקובץ ה-YAML של פריסת Kubernetes. אם אתם עובדים על אפליקציה שנוצרה מדוגמת קוד של Cloud Code, הקובץ הזה נמצא בתיקייה kubernetes-manifests. - אם השירות Google Cloud שאליו אתם מנסים לגשת דורש תפקידים נוספים, צריך להעניק אותם לחשבון השירות של Google שבו אתם משתמשים כדי לפתח את האפליקציה:
- אם אתם מנסים לגשת לסוד, אתם צריכים לפעול לפי השלבים הספציפיים ל-Secret Manager כדי להגדיר את התפקידים הנדרשים בחשבון השירות.
- רשימה של סוגי תפקידים ב-IAM ותפקידים מוגדרים מראש שאפשר להעניק לזהויות מופיעה במאמר הסבר על התפקידים. במאמר הענקה, שינוי וביטול גישה למשאבים מוסבר איך נותנים תפקידים.
Cloud Run
- כדי ליצור חשבון שירות ייחודי חדש לפריסת אפליקציית Cloud Run, עוברים לדף Service Accounts ובוחרים את הפרויקט שבו מאוחסן הסוד.
- לוחצים על יצירת חשבון שירות.
- בתיבת הדו-שיח Create service account, מזינים שם תיאורי לחשבון השירות.
- משנים את מזהה חשבון השירות לערך ייחודי וקל לזיהוי, ואז לוחצים על יצירה.
- אם השירות Google Cloud שאליו אתם מנסים לגשת דורש תפקידים נוספים, מקצים את התפקידים, לוחצים על Continue ואז על Done.
- כדי להוסיף את חשבון השירות להגדרת הפריסה:
- בשורת הסטטוס של Cloud Code, בוחרים בפקודה Cloud Run: Deploy.
- בממשק המשתמש של Cloud Run Deployment, בקטע Revision Settings, בשדה Service Account, מציינים את חשבון השירות.
Cloud Run
בהתאם להיקף הפרויקט, אפשר לבחור איך לאמת Google Cloud שירותים ב-GKE:
- (לפיתוח בלבד)
- יוצרים אשכול GKE עם ההגדרות הבאות:
- מוודאים שמשתמשים בחשבון השירות ש-GKE משתמש בו כברירת מחדל, בחשבון השירות שמשמש כברירת המחדל של Compute Engine, ושהיקפי הגישה מוגדרים למתן גישה מלאה לכל ממשקי ה-API של Cloud (שתי ההגדרות האלה זמינות בקטע Node Pools > Security). מכיוון שחשבון השירות של Compute Engine משותף לכל עומסי העבודה שנפרסו בצומת, השיטה הזו מקצה הרשאות מעבר לנדרש, ולכן מומלץ להשתמש בה רק לצורכי פיתוח.
- מוודאים ש-Workload Identity לא מופעל באשכול (בקטע Cluster (אשכול) > Security (אבטחה)).
- מקצים לחשבון השירות את התפקידים הנדרשים:
- אם אתם מנסים לגשת לסוד, אתם צריכים לפעול לפי השלבים הספציפיים ל-Secret Manager כדי להגדיר את התפקידים הנדרשים בחשבון השירות.
- אם אתם משתמשים בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, יכול להיות שהתפקידים הנכונים ב-IAM כבר הוקצו.
- רשימה של סוגי תפקידים ב-IAM ותפקידים מוגדרים מראש שאפשר להעניק לזהויות מופיעה במאמר הסבר על התפקידים. במאמר הענקה, שינוי וביטול גישה למשאבים מוסבר איך נותנים תפקידים.
- יוצרים אשכול GKE עם ההגדרות הבאות:
- (מומלץ לשימוש בסביבת ייצור)
- מגדירים את אשכול GKE ואת האפליקציה באמצעות Workload Identity כדי לאמת Google Cloud שירותים ב-GKE. כך משייכים את חשבון השירות של Kubernetes לחשבון השירות של Google.
- כדי להוסיף את חשבון השירות להגדרת הפריסה:
- בשורת הסטטוס של Cloud Code, בוחרים בפקודה Cloud Run: Deploy.
- בממשק המשתמש של Cloud Run Deployment, בקטע Revision Settings, בשדה Service Account, מציינים את חשבון השירות.
- אם Google Cloud השירות שאתם מנסים לגשת אליו דורש תפקידים נוספים, צריך להעניק אותם לחשבון השירות של Google שבו אתם משתמשים כדי לפתח את האפליקציה:
- אם אתם מנסים לגשת לסוד, אתם צריכים לפעול לפי השלבים הספציפיים ל-Secret Manager כדי להגדיר את התפקידים הנדרשים בחשבון השירות.
- רשימה של סוגי תפקידים ב-IAM ותפקידים מוגדרים מראש שאפשר להעניק לזהויות מופיעה במאמר הסבר על התפקידים. במאמר הענקה, שינוי וביטול גישה למשאבים מוסבר איך נותנים תפקידים.
פיתוח מרחוק עם הרשאות Secret Manager מופעלות
אם אתם מפתחים מרחוק, משתמשים בחשבון שירות לאימות והאפליקציה שלכם משתמשת בסודות, תצטרכו לבצע עוד כמה שלבים בנוסף להוראות לפיתוח מרחוק. בשלבים האלה מקצים לחשבון השירות של Google את התפקיד הנדרש כדי לגשת לסוד מסוים ב-Secret Manager:
לוחצים על
Cloud Code (קוד Cloud) ואז מרחיבים את הקטע Secret Manager (ניהול סודות).
לוחצים לחיצה ימנית על הסוד ובוחרים באפשרות עריכת הרשאות במסוף Cloud. דף ההגדרות של Secret Manager ייפתח בדפדפן האינטרנט עבור הסוד הזה.
במסוף Google Cloud , לוחצים על Permissions ואז על Add.
בשדה New principals, מזינים את השם של חשבון השירות.
בשדה Select a role, בוחרים את התפקיד Secret Manager Secret Accessor.
לוחצים על Save.
לחשבון השירות יש עכשיו הרשאה לגשת לסוד הספציפי הזה.