מטרות
במדריך הזה נסביר איך לבצע את הפעולות הבאות באמצעות שרת ה-proxy המקומי של Spanner PGAdapter לדרייברים של PostgreSQL:
- יוצרים מכונה ומסד נתונים ב-Spanner.
- לכתוב, לקרוא ולהריץ שאילתות SQL על נתונים במסד הנתונים.
- מעדכנים את הסכימה של מסד הנתונים.
- עדכון נתונים באמצעות טרנזקציית קריאה-כתיבה.
- מוסיפים אינדקס משני למסד הנתונים.
- משתמשים באינדקס כדי לקרוא ולהריץ שאילתות SQL על נתונים.
- אחזור נתונים באמצעות טרנזקציה לקריאה בלבד.
עלויות
במדריך הזה משתמשים ב-Spanner, רכיב שלGoogle Cloudשהשימוש בו כרוך בתשלום. למידע על עלות השימוש ב-Spanner, ראו תמחור.
לפני שמתחילים
מבצעים את השלבים שמפורטים בקטע הגדרה, שכוללים יצירה והגדרה של פרויקט Google Cloud כברירת מחדל, הפעלת החיוב, הפעלת Cloud Spanner API והגדרת OAuth 2.0 כדי לקבל פרטי כניסה לאימות לשימוש ב-Cloud Spanner API.
חשוב במיוחד להריץ את הפקודה gcloud auth
application-default login כדי להגדיר את סביבת הפיתוח המקומית עם פרטי כניסה לאימות.
הכנת סביבת PGAdapter המקומית
אתם יכולים להשתמש במנהלי התקנים של PostgreSQL בשילוב עם PGAdapter כדי להתחבר ל-Spanner. PGAdapter הוא שרת proxy מקומי שמתרגם את פרוטוקול הרשת של PostgreSQL לפרוטוקול gRPC של Spanner.
כדי להפעיל את PGAdapter, צריך Java או Docker.
אם אף אחד מהכלים הבאים לא מותקן במחשב הפיתוח, מתקינים אחד מהם:
משכפלים את המאגר של האפליקציה לדוגמה ומעבירים אותו למכונה המקומית:
git clone https://github.com/GoogleCloudPlatform/pgadapter.gitעוברים לספרייה שמכילה את הקוד לדוגמה של Spanner:
psql
cd pgadapter/samples/snippets/psql-snippetsJava
cd pgadapter/samples/snippets/java-snippets mvn package -DskipTestsGo
cd pgadapter/samples/snippets/golang-snippetsNode.js
cd pgadapter/samples/snippets/nodejs-snippets npm installPython
cd pgadapter/samples/snippets/python-snippets python -m venv ./venv pip install -r requirements.txt cd samplesC#
cd pgadapter/samples/snippets/dotnet-snippetsPHP
cd pgadapter/samples/snippets/php-snippets composer install cd samples
יצירת מכונה
בפעם הראשונה שמשתמשים ב-Spanner, צריך ליצור מכונה – הקצאה של משאבים שמשמשים את מסדי הנתונים של Spanner. כשיוצרים מכונה, בוחרים הגדרת מכונה שקובעת איפה הנתונים יאוחסנו, וגם את מספר הצמתים שבהם משתמשים, שקובע את כמות משאבי האחסון וההצגה במכונה.
במאמר יצירת מכונה מוסבר איך ליצור מכונה של Spanner באמצעות אחת מהשיטות הבאות. אפשר לתת למכונה את השם test-instance כדי להשתמש בה עם נושאים אחרים במסמך הזה, שמתייחסים למכונה בשם test-instance.
- Google Cloud CLI
- מסוף Google Cloud
- ספריית לקוח (C++, C#, Go, Java, Node.js, PHP, Python, Ruby או Rust)
עיון בקבצים לדוגמה
מאגר הדוגמאות מכיל דוגמה שמראה איך להשתמש ב-Spanner עם PGAdapter.
בתיקייהsamples/snippets מוסבר איך להשתמש ב-Spanner. הקוד מראה איך ליצור מסד נתונים חדש ולהשתמש בו. הנתונים משתמשים בסכימה לדוגמה שמוצגת בדף סכימה ומודל נתונים.
הפעלת PGAdapter
מפעילים את PGAdapter במחשב הפיתוח המקומי ומפנים אותו למכונה שיצרתם.
בפקודות הבאות אנחנו מניחים שהפעלתם את gcloud auth application-default login.
אפליקציית Java
wget https://storage.googleapis.com/pgadapter-jar-releases/pgadapter.tar.gz \
&& tar -xzvf pgadapter.tar.gz
java -jar pgadapter.jar -i test-instance
Docker
docker pull gcr.io/cloud-spanner-pg-adapter/pgadapter
docker run \
--name pgadapter \
--rm -d -p 5432:5432 \
-v "$HOME/.config/gcloud":/gcloud:ro \
--env CLOUDSDK_CONFIG=/gcloud \
gcr.io/cloud-spanner-pg-adapter/pgadapter \
-i test-instance -x
אמולטור
docker pull gcr.io/cloud-spanner-pg-adapter/pgadapter-emulator
docker run \
--name pgadapter-emulator \
--rm -d \
-p 5432:5432 \
-p 9010:9010 \
-p 9020:9020 \
gcr.io/cloud-spanner-pg-adapter/pgadapter-emulator
הפקודה הזו מפעילה את PGAdapter עם אמולטור Spanner מוטמע. האמולטור המוטמע הזה יוצר באופן אוטומטי כל מכונה או מסד נתונים של Spanner שאתם מתחברים אליהם, בלי שתצטרכו ליצור אותם באופן ידני לפני כן.
מומלץ להריץ את PGAdapter בסביבת הייצור כקונטיינר sidecar או כתלות בתהליך. למידע נוסף על פריסת PGAdapter בסביבת הייצור, ראו בחירת שיטה להרצת PGAdapter.
יצירת מסד נתונים
gcloud spanner databases create example-db --instance=test-instance \
--database-dialect=POSTGRESQL
אמורה להופיע ההודעה:
Creating database...done.
יצירת טבלאות
הקוד הבא יוצר שתי טבלאות במסד הנתונים.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./create_tables.sh example-db
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar createtables example-db
Go
go run sample_runner.go createtables example-db
Node.js
npm start createtables example-db
Python
python create_tables.py example-db
C#
dotnet run createtables example-db
PHP
php create_tables.php example-db
השלב הבא הוא כתיבת נתונים במסד הנתונים.
יצירת חיבור
כדי לבצע פעולות קריאה או כתיבה, צריך ליצור חיבור ל-PGAdapter. כל האינטראקציות עם Spanner צריכות לעבור דרךConnection. שם מסד הנתונים מצוין במחרוזת החיבור.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./create_connection.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar createconnection example-db
Go
go run sample_runner.go createconnection example-db
Node.js
npm start createconnection example-db
Python
python create_connection.py example-db
C#
dotnet run createconnection example-db
PHP
php create_connection.php example-db
כתיבת נתונים באמצעות DML
אפשר להוסיף נתונים באמצעות שפת טיפול בנתונים (DML) בטרנזקציית קריאה-כתיבה.
הדוגמאות הבאות מראות איך להריץ פקודת DML ב-Spanner באמצעות מנהל התקן של PostgreSQL.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./write_data_with_dml.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar writeusingdml example-db
Go
go run sample_runner.go writeusingdml example-db
Node.js
npm start writeusingdml example-db
Python
python write_data_with_dml.py example-db
C#
dotnet run writeusingdml example-db
PHP
php write_data_with_dml.php example-db
התגובה הבאה אמורה להופיע:
4 records inserted.
כתיבת נתונים באמצעות אצווה של DML
PGAdapter תומך בהרצת אצוות DML. שליחת כמה פקודות DML באצווה אחת מפחיתה את מספר הנסיעות הלוך ושוב ל-Spanner ומשפרת את הביצועים של האפליקציה.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./write_data_with_dml_batch.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar writeusingdmlbatch example-db
Go
go run sample_runner.go writeusingdmlbatch example-db
Node.js
npm start writeusingdmlbatch example-db
Python
python write_data_with_dml_batch.py example-db
C#
dotnet run writeusingdmlbatch example-db
PHP
php write_data_with_dml_batch.php example-db
אמורה להופיע ההודעה:
3 records inserted.
כתיבת נתונים באמצעות מוטציות
אפשר גם להוסיף נתונים באמצעות מוטציות.
PGAdapter מתרגם את הפקודה COPY של PostgreSQL למוטציות. השימוש ב-COPY הוא הדרך היעילה ביותר להוסיף במהירות נתונים למסד הנתונים ב-Spanner.
פעולות COPY הן אטומיות כברירת מחדל. פעולות אטומיות ב-Spanner מוגבלות על ידי מגבלת הגודל של ה-commit. מידע נוסף זמין במאמר מגבלות על יצירה, קריאה, עדכון ומחיקה של נתונים.
הדוגמאות הבאות מראות איך לבצע פעולת COPY לא אטומית. כך הפעולה COPY יכולה לחרוג ממגבלת הגודל של ה-commit.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./write_data_with_copy.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar write example-db
Go
go run sample_runner.go write example-db
Node.js
npm start write example-db
Python
python write_data_with_copy.py example-db
C#
dotnet run write example-db
PHP
php write_data_with_copy.php example-db
אמורה להופיע ההודעה:
Copied 5 singers
Copied 5 albums
הרצת שאילתות על נתונים באמצעות SQL
ב-Spanner יש ממשק SQL לקריאת נתונים, שאפשר לגשת אליו בשורת הפקודה באמצעות Google Cloud CLI או באופן פרוגרמטי באמצעות מנהל התקן של PostgreSQL.
בשורת הפקודה
מריצים את הצהרת ה-SQL הבאה כדי לקרוא את הערכים של כל העמודות מהטבלה Albums:
gcloud spanner databases execute-sql example-db --instance=test-instance \
--sql='SELECT singer_id, album_id, album_title FROM albums'
בתוצאה רואים:
SingerId AlbumId AlbumTitle
1 1 Total Junk
1 2 Go, Go, Go
2 1 Green
2 2 Forever Hold Your Peace
2 3 Terrified
שימוש במנהל התקן של PostgreSQL
בנוסף להרצה של הצהרת SQL בשורת הפקודה, אפשר להנפיק את אותה הצהרת SQL באופן פרוגרמטי באמצעות מנהל התקן של PostgreSQL.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./query_data.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar query example-db
Go
go run sample_runner.go query example-db
Node.js
npm start query example-db
Python
python query_data.py example-db
C#
dotnet run query example-db
PHP
php query_data.php example-db
התוצאה הבאה אמורה להופיע:
1 1 Total Junk
1 2 Go, Go, Go
2 1 Green
2 2 Forever Hold Your Peace
2 3 Terrified
שאילתה באמצעות פרמטר SQL
אם באפליקציה שלכם יש שאילתה שמופעלת לעיתים קרובות, אתם יכולים לשפר את הביצועים שלה על ידי הוספת פרמטרים. אפשר לשמור במטמון את השאילתה הפרמטרית שנוצרה ולהשתמש בה שוב, וכך להפחית את עלויות ההידור. למידע נוסף, קראו את המאמר שימוש בפרמטרים של שאילתות כדי להאיץ שאילתות שמבוצעות לעיתים קרובות.
הנה דוגמה לשימוש בפרמטר בסעיף WHERE כדי לשלוח שאילתה על רשומות שמכילות ערך ספציפי של LastName.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./query_data_with_parameter.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar querywithparameter example-db
Go
go run sample_runner.go querywithparameter example-db
Node.js
npm start querywithparameter example-db
Python
python query_data_with_parameter.py example-db
C#
dotnet run querywithparameter example-db
PHP
php query_data_with_parameter.php example-db
התוצאה הבאה אמורה להופיע:
12 Melissa Garcia
עדכון הסכימה של מסד הנתונים
נניח שאתם צריכים להוסיף עמודה חדשה בשם MarketingBudget לטבלה Albums. כדי להוסיף עמודה חדשה לטבלה קיימת, צריך לעדכן את הסכימה של מסד הנתונים. ב-Spanner אפשר לעדכן את הסכימה של מסד הנתונים בזמן שמסד הנתונים ממשיך לשרת את התנועה. עדכוני סכימה לא דורשים להעביר את מסד הנתונים למצב אופליין, והם לא נועלים טבלאות או עמודות שלמות. אפשר להמשיך לכתוב נתונים במסד הנתונים במהלך עדכון הסכימה. במאמר עדכוני סכימה מוסבר איך לעדכן סכימות ואיך השינויים בסכימה משפיעים על הביצועים.
הוספת עמודה
אפשר להוסיף עמודה בשורת הפקודה באמצעות Google Cloud CLI או באופן פרוגרמטי באמצעות מנהל התקן של PostgreSQL.
בשורת הפקודה
משתמשים בפקודה הבאה של ALTER TABLE כדי להוסיף את העמודה החדשה לטבלה:
gcloud spanner databases ddl update example-db --instance=test-instance \
--ddl='ALTER TABLE albums ADD COLUMN marketing_budget BIGINT'
אמורה להופיע ההודעה:
Schema updating...done.
שימוש במנהל התקן של PostgreSQL
מריצים את הצהרת ה-DDL באמצעות מנהל התקן של PostgreSQL כדי לשנות את הסכימה:
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./add_column.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar addmarketingbudget example-db
Go
go run sample_runner.go addmarketingbudget example-db
Node.js
npm start addmarketingbudget example-db
Python
python add_column.py example-db
C#
dotnet run addmarketingbudget example-db
PHP
php add_column.php example-db
אמורה להופיע ההודעה:
Added marketing_budget column
הפעלת אצווה של DDL
מומלץ לבצע כמה שינויים בסכימה באצווה אחת. כדי להריץ כמה הצהרות DDL באצווה אחת, אתם יכולים להשתמש בתכונת האצווה המובנית של מנהל ההתקן של PostgreSQL, לשלוח את כל הצהרות ה-DDL כמחרוזת SQL אחת שמופרדת בנקודה ופסיק, או להשתמש בהצהרות START BATCH DDL ו-RUN BATCH.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./ddl_batch.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar ddlbatch example-db
Go
go run sample_runner.go ddlbatch example-db
Node.js
npm start ddlbatch example-db
Python
python ddl_batch.py example-db
C#
dotnet run ddlbatch example-db
PHP
php ddl_batch.php example-db
אמורה להופיע ההודעה:
Added venues and concerts tables
כתיבת נתונים בעמודה החדשה
הקוד הבא כותב נתונים בעמודה החדשה. היא מגדירה את MarketingBudget לערך 100000 בשורה עם מפתח השורה Albums(1, 1), ולערך 500000 בשורה עם מפתח השורה Albums(2, 2).
COPY של PostgreSQL למוטציות. כברירת מחדל, פקודות COPY מתורגמות למוטציות Insert.
מריצים את set spanner.copy_upsert=true כדי לתרגם פקודות COPY למוטציות InsertOrUpdate. אפשר להשתמש בזה כדי לעדכן נתונים קיימים ב-Spanner.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./update_data_with_copy.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar update example-db
Go
go run sample_runner.go update example-db
Node.js
npm start update example-db
Python
python update_data_with_copy.py example-db
C#
dotnet run update example-db
PHP
php update_data_with_copy.php example-db
אמורה להופיע ההודעה:
Updated 2 albums
אפשר גם להריץ שאילתת SQL כדי לאחזר את הערכים שכתבתם.
זה הקוד להרצת השאילתה:
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את השאילתה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./query_data_with_new_column.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar querymarketingbudget example-db
Go
go run sample_runner.go querymarketingbudget example-db
Node.js
npm start querymarketingbudget example-db
Python
python query_data_with_new_column.py example-db
C#
dotnet run querymarketingbudget example-db
PHP
php query_data_with_new_column.php example-db
אמורה להופיע ההודעה:
1 1 100000
1 2 null
2 1 null
2 2 500000
2 3 null
עדכון נתונים
אפשר לעדכן נתונים באמצעות DML בעסקה של קריאה וכתיבה.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./update_data_with_transaction.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar writewithtransactionusingdml example-db
Go
go run sample_runner.go writewithtransactionusingdml example-db
Node.js
npm start writewithtransactionusingdml example-db
Python
python update_data_with_transaction.py example-db
C#
dotnet run writewithtransactionusingdml example-db
PHP
php update_data_with_transaction.php example-db
אמורה להופיע ההודעה:
Transferred marketing budget from Album 2 to Album 1
תגי עסקה ותגי בקשה
כדי לפתור בעיות בטרנזקציות ובשאילתות ב-Spanner, אפשר להשתמש בתגי טרנזקציות ותגי בקשות. אפשר להגדיר תגי טרנזקציות ותגי בקשות באמצעות משתני הסשן SPANNER.TRANSACTION_TAG ו-SPANNER.STATEMENT_TAG.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./tags.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar tags example-db
Go
go run sample_runner.go tags example-db
Node.js
npm start tags example-db
Python
python tags.py example-db
C#
dotnet run tags example-db
PHP
php tags.php example-db
אחזור נתונים באמצעות עסקאות לקריאה בלבד
נניח שאתם רוצים לבצע יותר מקריאה אחת באותה חותמת זמן. עסקאות לקריאה בלבד צופות בתחילית עקבית של היסטוריית ה-commit של העסקה, כך שהאפליקציה תמיד מקבלת נתונים עקביים.
מגדירים את החיבור לקריאה בלבד או משתמשים בהצהרת ה-SQL SET TRANSACTION READ ONLY כדי לבצע טרנזקציה לקריאה בלבד.
כך מריצים שאילתה ומבצעים קריאה באותה עסקה לקריאה בלבד:
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./read_only_transaction.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar readonlytransaction example-db
Go
go run sample_runner.go readonlytransaction example-db
Node.js
npm start readonlytransaction example-db
Python
python read_only_transaction.py example-db
C#
dotnet run readonlytransaction example-db
PHP
php read_only_transaction.php example-db
הפלט אמור להיראות כך:
1 1 Total Junk
1 2 Go, Go, Go
2 1 Green
2 2 Forever Hold Your Peace
2 3 Terrified
2 2 Forever Hold Your Peace
1 2 Go, Go, Go
2 1 Green
2 3 Terrified
1 1 Total Junk
שאילתות מחולקות למחיצות ו-Data Boost
partitionQuery API מחלק שאילתה לחלקים קטנים יותר, או למחיצות, ומשתמש במספר מכונות כדי לאחזר את המחיצות במקביל. כל מחיצה מזוהה באמצעות אסימון מחיצה. ל-PartitionQuery API יש זמן אחזור ארוך יותר מאשר ל-API הרגיל של השאילתות, כי הוא מיועד רק לפעולות בכמות גדולה, כמו ייצוא או סריקה של מסד הנתונים כולו.
בעזרת Data Boost אתם יכולים להריץ שאילתות של ניתוח נתונים ולייצא נתונים בלי להשפיע על עומסי העבודה הקיימים במכונה המוקצית של Spanner. התכונה Data Boost תומכת רק בשאילתות מחולקות למחיצות.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./data_boost.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar databoost example-db
Go
go run sample_runner.go databoost example-db
Node.js
npm start databoost example-db
Python
python data_boost.py example-db
C#
dotnet run databoost example-db
PHP
php data_boost.php example-db
מידע נוסף על הרצת שאילתות מחולקות למחיצות ושימוש ב-Data Boost עם PGAdapter זמין במאמר Data Boost והצהרות של שאילתות מחולקות למחיצות.
DML מחולק למחיצות
שפת הטיפול בנתונים (DML) מחולקים למחיצות מיועדת לסוגים הבאים של עדכונים ומחיקות בכמות גדולה:
- ניקיון תקופתי ואיסוף אשפה.
- מילוי עמודות חדשות בערכי ברירת מחדל.
psql
Java
Go
Node.js
Python
C#
PHP
מריצים את הדוגמה באמצעות הפקודה הבאה:
psql
PGDATABASE=example-db ./partitioned_dml.sh
Java
java -jar target/pgadapter-snippets/pgadapter-samples.jar partitioneddml example-db
Go
go run sample_runner.go partitioneddml example-db
Node.js
npm start partitioneddml example-db
Python
python partitioned_dml.py example-db
C#
dotnet run datpartitioneddmlboost example-db
PHP
php partitioned_dml.php example-db
הסרת המשאבים
כדי להימנע מחיובים נוספים בחשבון לחיוב ב-Cloud על המשאבים שבהם השתמשתם במדריך הזה, אתם צריכים למחוק את מסד הנתונים ואת המכונה שיצרתם.
מחיקת מסד הנתונים
אם מוחקים מכונה, כל מסדי הנתונים שבתוכה נמחקים באופן אוטומטי. בשלב הזה מוסבר איך למחוק מסד נתונים בלי למחוק מכונה (עדיין תחויבו על המכונה).
בשורת הפקודה
gcloud spanner databases delete example-db --instance=test-instance
באמצעות מסוף Google Cloud
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על המופע.
לוחצים על מסד הנתונים שרוצים למחוק.
בדף Database details, לוחצים על Delete.
מאשרים שרוצים למחוק את מסד הנתונים ולוחצים על מחיקה.
מחיקת המכונה
מחיקת מכונה גורמת להסרה אוטומטית של כל מסדי הנתונים שנוצרו בה.
בשורת הפקודה
gcloud spanner instances delete test-instance
באמצעות מסוף Google Cloud
נכנסים לדף Spanner Instances במסוף Google Cloud .
לוחצים על המכונה.
לוחצים על Delete.
מאשרים שרוצים למחוק את המכונה ולוחצים על Delete.
המאמרים הבאים
במאמר אימות לשירותי Cloud באמצעות ספריות לקוח תוכלו לקרוא מידע נוסף על פרטי כניסה לאימות ולהרשאה.