התחברות מ-Cloud Run
במדריך למתחילים הזה נסביר איך לפרוס אפליקציה לדוגמה בשירות Cloud Run באמצעות מסוף Google Cloud ואפליקציית לקוח. האפליקציה לדוגמה הזו מחברת את Cloud Run ל-AlloyDB ל-PostgreSQL.
קוד אפליקציה לדוגמה
קוד האפליקציה לדוגמה במדריך למתחילים הזה נמצא בספרייה examples/go במאגר GoogleCloudPlatform/alloydb-auth-proxy ב-GitHub.
האפליקציה כתובה בשפת התכנות Go ומשמשת ככלי לאיסוף הצבעות. הלוגיקה העיקרית נמצאת בקובץ main.go, שמתחיל שרת אינטרנט ומטפל בבקשות של משתמשים.
חיבור מסד הנתונים מוגדר באמצעות משתני סביבה, שאתם מגדירים כשאתם יוצרים את שירות Cloud Run. המשתנים האלה מציינים לאפליקציה איך להתחבר למכונת AlloyDB, כולל שם מסד הנתונים, המשתמש, הסיסמה וכתובת ה-IP של המכונה. הקוד משתמש במשתנים האלה כדי ליצור חיבור מאובטח למסד הנתונים של AlloyDB.
מאגר המקורות של הקוד
מאגר alloydb-auth-proxy מכיל את AlloyDB Auth Proxy, כלי שעוזר להתחבר בצורה מאובטחת למופעי AlloyDB.
המאגר כולל גם ספריות ודוגמאות קשורות, כמו אפליקציית Go שמשמשת במדריך הזה להתחלה מהירה.
אתם לא צריכים את כל פרויקט alloydb-auth-proxy כדי להתחבר ל-AlloyDB מ-Cloud Run. הפקודה cloudshell_open משכפלת את כל המאגר לנוחיותכם, אבל הקבצים היחידים שמשמשים לבניית הקונטיינר במדריך הזה נמצאים בספרייה examples/go.
לפני שמתחילים
- נכנסים לחשבון 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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry 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.-
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.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, Cloud Run, AlloyDB, Cloud Resource Manager, Service Networking, Cloud Build, and Container Registry 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.- מוודאים שיש לכם אשכול AlloyDB ומכונה ראשית. מידע נוסף זמין במאמר בנושא יצירה של אשכול ושל המופע הראשי שלו.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לחיבור מ-Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- אדמין ברשת Compute (
roles/compute.networkAdmin) - אדמין ב-AlloyDB (
roles/alloydb.admin) - אדמין של Artifact Registry (
roles/artifactregistry.admin) - אדמין ב-Cloud Run (
roles/run.admin) - אדמין באחסון (
roles/storage.admin) - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - אדמין של Container Analysis (
roles/containeranalysis.admin) - יצירת אסימונים בחשבון שירות (
roles/iam.serviceAccountTokenCreator) - כתיבת מדדים למעקב (
roles/monitoring.metricWriter) - Dev Ops (
roles/iam.devOps)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
התחברות למופע ויצירת מסד נתונים
אם אתם לא בדף Overview של האשכול החדש שיצרתם, במסוף Google Cloud , עוברים לדף Clusters.
כדי להציג את הדף Overview (סקירה כללית) של האשכול, לוחצים על שם האשכול
my-cluster.בתפריט הניווט, לוחצים על AlloyDB Studio.
ברשימה Database בקטע Log in to your database, בוחרים באפשרות
postgres.ברשימה הנפתחת משתמש, בוחרים באפשרות
postgres.בשדה סיסמה, מזינים את הסיסמה שיצרתם בשלב יצירת אשכול והמופע הראשי שלו.
לוחצים על אימות. בחלונית Explorer מוצגת רשימה של האובייקטים במסד הנתונים.
בכרטיסייה Untitled query, יוצרים מסד נתונים:
CREATE DATABASE quickstart_db;לוחצים על Run. מחכים שההודעה
Statement executed successfullyתוצג בחלונית תוצאות.
איך מוצאים את מזהה הפרויקט
נכנסים לדף Dashboard במסוף Google Cloud .
מזהה הפרויקט מופיע בכרטיס Project info.
רושמים את מזהה הפרויקט. תצטרכו אותו בשלב הבא במדריך למתחילים הזה.
מאכלסים את Artifact Registry בתמונה של האפליקציה לדוגמה
במסוף Google Cloud , פותחים את Cloud Shell.
ב-Cloud Shell Editor, מריצים את הפקודה הבאה כדי לשכפל את המאגר עם קוד האפליקציה לדוגמה מ-GitHub:
cloudshell_open --repo_url \ "https://github.com/GoogleCloudPlatform/alloydb-auth-proxy" \ --dir \ "examples/go" \ --force_new_cloneיוצרים מאגר ב-Artifact Registry לקובצי אימג' של Docker:
gcloud artifacts repositories create cloud-run-source-deploy --location us-central1 --repository-format=docker --project PROJECT_IDמחליפים את
PROJECT_IDבמזהה הפרויקט.בתיבת הדו-שיח Authorize Cloud Shell, לוחצים על Authorize. ההנחיה הזו לא מופיעה אם כבר ביצעתם את השלב הזה.
כדי ליצור קונטיינר Docker ולפרסם אותו ב-Artifact Registry, משתמשים בפקודה הבאה:
gcloud builds submit --tag us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy/run-sql --project PROJECT_IDמחליפים את
PROJECT_IDבמזהה הפרויקט.קוד האפליקציה לדוגמה לשימוש בתחילת העבודה נמצא בספרייה
examples/goשל מאגר GitHubGoogleCloudPlatform/alloydb-auth-proxy. הפקודהcloudshell_openבשלב הקודם משכפלת באופן אוטומטי את המאגר הזה ופותחת את הספרייה הנכונה בשבילכם.
איתור כתובת ה-IP של המופע החדש
נכנסים לדף Clusters במסוף Google Cloud .
מחפשים בטבלה את השורה שבה שם המשאב הוא
my-primary.רושמים את כתובת ה-IP הפרטית בשורה הזו. תצטרכו אותו בשלב הבא במדריך למתחילים הזה.
דוגמה לפורמט של כתובת IP:
172.19.209.2:5432.
יצירת שירות ל-Cloud Run
נכנסים לדף Cloud Run במסוף Google Cloud .
בכרטיסייה Services (שירותים), לוחצים על Deploy Container (פריסת מאגר תגים).
בדף Create service, בוחרים באפשרות Deploy one revision from an existing container image.
בשדה כתובת ה-URL של קובץ אימג' של קונטיינר, לוחצים על בחירה.
בחלונית Select container image (בחירת קובץ אימג' של קונטיינר), מבצעים את הפעולות הבאות:
- לוחצים על הכרטיסייה Artifact registry.
- מרחיבים את
us-central1-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy. - מרחיבים את
run-sql. - בוחרים את התמונה האחרונה.
- לוחצים על בחירה.
בשדה שם השירות מזינים
quickstart-service.מוודאים שהאפשרות
us-central1 (Iowa)נבחרה כברירת מחדל ברשימה אזור.בקטע אימות, בוחרים באפשרות מתן גישה לכולם.
בקטע CPU allocation and pricing (הקצאת CPU ותמחור), מוודאים שהאפשרות CPU is only allocated during request processing (הקצאת CPU מתבצעת רק במהלך עיבוד הבקשה) מסומנת.
מרחיבים את הקטע Container(s), Volumes, Networking, Security.
בכרטיסייה Container(s) (מאגרי תגים), בוחרים בכרטיסייה Variables & secrets (משתנים וסודות) ומבצעים את השלבים הבאים:
בקטע Environment variables, לוחצים על Add variable.
מזינים את הפרטים הבאים בשדות
Nameו-Value:DB_NAME:quickstart_dbDB_USER:postgres-
DB_PASS: הסיסמה שהזנתם כשיצרתם את האשכול. DB_PORT:5432-
INSTANCE_HOST: כתובת ה-IP של המופע הראשי של האשכול, שמופיעה בקטע מציאת כתובת ה-IP של המופע החדש. אל תכללו את מספר היציאה – לדוגמה, צריך להגדיר את הערך ל-172.19.209.2ולא ל-172.19.209.2:5432.
עוברים מהכרטיסייה Container(s) (מאגרי תגים) לכרטיסייה Networking (רשת) ופועלים לפי השלבים הבאים:
מסמנים את התיבה Connect to a VPC for outbound traffic (התחברות ל-VPC לתעבורה יוצאת).
בוחרים באפשרות הפניית התנועה ישירות ל-VPC.
בתפריט הנפתח רשת, בוחרים את הערך
default.בתפריט הנפתח רשת משנה, מוודאים שהערך
defaultנבחר.
לוחצים על Create (יצירה) כדי ליצור את שירות Cloud Run.
אחרי פריסת שירות Cloud Run, כתובת ה-URL של האפליקציה לדוגמה מוצגת בשדה URL בדף quickstart-service.
האפליקציה משתמשת ב-AlloyDB כמאגר הנתונים שלה.
הצגת האפליקציה לדוגמה
נכנסים לדף Cloud Run במסוף Google Cloud .
בדף quickstart-service, לוחצים על content_copy העתקה ללוח כדי להעתיק את כתובת ה-URL של האפליקציה.
בכרטיסייה חדשה בדפדפן, מדביקים את כתובת ה-URL של האפליקציה שהועתקה ולוחצים על Enter.
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
ניקוי האשכול
נכנסים לדף Clusters במסוף Google Cloud .
לצד אשכול
my-clusterשרוצים למחוק, לוחצים על more_vert פעולות ואז על delete מחיקה.בתיבת הדו-שיח מחיקת אשכול שמופיעה, מקלידים
my-clusterבשדה my-cluster כדי לאשר שרוצים למחוק אותו.לוחצים על Delete.
פינוי נפח אחסון לפי המוצר
נכנסים לדף Cloud Run במסוף Google Cloud .
מסמנים את התיבה לצד שם השירות
quickstart-service.לוחצים על delete מחיקה בחלק העליון של הדף Cloud Run.
בתיבת הדו-שיח Delete quickstart-service שמופיעה, לוחצים על Delete כדי לאשר.