במדריך הזה נסביר איך לפרוס פונקציית Pub/Sub על ידי העלאה של קובץ zip של קוד המקור של הפונקציה לקטגוריה של Cloud Storage, באמצעות Terraform להקצאת המשאבים. Terraform הוא כלי בקוד פתוח שמאפשר להקצות Google Cloud משאבים באמצעות קובצי תצורה מוצהרים.
במדריך הזה נעשה שימוש בפונקציית Node.js כדוגמה, אבל הוא מתאים גם לפונקציות Python, Go ו-Java. ההוראות זהות בין אם אתם משתמשים באחד מהזמנים האלה להפעלה. לפרטים על שימוש ב-Terraform עם Cloud Functions API v2, אפשר לעיין בדפי העיון של Hashicorp.
מטרות
- כאן תוכלו ללמוד איך משתמשים ב-Terraform כדי לפרוס פונקציה של Pub/Sub.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
For details, see Cloud Run functions pricing.
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Functions, Cloud Build, Artifact Registry, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Functions, Cloud Build, Artifact Registry, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - מקצים לחשבון השירות של Compute שמוגדר כברירת מחדל את התפקידים
roles/run.invokerו-roles/cloudbuild.builds.builder. -
מכינים את סביבת הפיתוח.
אם כבר התקנתם את ה-CLI של gcloud, מריצים את הפקודה הבאה כדי לעדכן אותו:
gcloud components update
הגדרת הסביבה
במדריך הזה מריצים פקודות ב-Cloud Shell. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud כבר מותקן, כולל ה-CLI של Google Cloud, ומוגדרים בה ערכים לפרויקט הנוכחי. יכול להיות שיעברו כמה דקות עד ש-Cloud Shell יאותחל:
הכנת הבקשה
ב-Cloud Shell, מבצעים את השלבים הבאים:
משכפלים את מאגר האפליקציות לדוגמה למופע Cloud Shell:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git
עוברים לספרייה שמכילה את הקוד לדוגמה של פונקציות Cloud Run:
cd terraform-docs-samples/functions/pubsub
הדוגמה ל-Node.js שבה נעשה שימוש במדריך הזה היא פונקציית Pub/Sub בסיסית של Hello World. הנה הקובץ
main.tf:
הפעלת Terraform
בספרייה terraform-docs-samples/functions/pubsub שמכילה את הקובץ main.tf, מריצים את הפקודה הבאה כדי להוסיף את הפלאגינים הנדרשים וליצור את הספרייה .terraform:
terraform init
אימות התצורה של Terraform
תצוגה מקדימה של הגדרות Terraform. השלב הזה הוא אופציונלי, אבל הוא מאפשר לכם לוודא שהתחביר של main.tf נכון. הפקודה הזו מציגה תצוגה מקדימה של המשאבים שייווצרו:
terraform plan
החלת ההגדרות של Terraform
פורסים את הפונקציה על ידי החלת ההגדרה. כשמופיעה בקשה, מזינים yes:
terraform apply
הפעלת הפונקציה
כדי לבדוק את הפונקציה Pub/Sub:
מפרסמים הודעה בנושא (בדוגמה הזו, שם הנושא הוא
functions2-topic):gcloud pubsub topics publish TOPIC_NAME --message="Friend"
קוראים את יומני הפונקציה כדי לראות את התוצאה, כאשר
FUNCTION_NAMEהוא שם הפונקציה (בדוגמה הזו, שם הפונקציה הואfunction):gcloud functions logs read FUNCTION_NAME
אמור להופיע פלט של רישום ביומן שכולל את ההודעה החדשה 'חבר'.
הסרת המשאבים
כשתסיימו את המדריך תוכלו למחוק את כל מה שיצרתם, כדי שלא תחויבו.
תוכלו להריץ את הפקודה terraform destroy כדי להסיר את כל המשאבים שהוגדרו בקובץ התצורה של Terraform:
terraform destroy
כדי לאפשר ל-Terraform למחוק את המשאבים, כותבים yes.