1. نظرة عامة
هناك عدة خيارات للاتصال بمثيل Cloud SQL خاص من مشروع آخر أو شبكة VPC. يمكنك استخدام ميزة "الوصول إلى الخدمات الخاصة" للوصول إلى عناوين IP الداخلية لشركة Google والخدمات التابعة لجهات خارجية من خلال عمليات الربط الخاصة. لتوسيع نطاق الوصول إلى قاعدة البيانات، يمكنك الآن أيضًا تفعيل Private Service Connect (PSC).
تسمح Private Service Connect (PSC) لمطوّري الخدمات بعرض خدماتهم من خلال مرفقات الخدمات التي يمكن للمستهلكين استخدامها لإنشاء نقاط نهاية PSC و/أو الخلفيات في PSC في بيئتهم. ومن خلال نقاط نهاية PSC هذه، يمكنهم الاتصال بخدمات المنتج عبر عنوان IP خاص يحدّده المستخدم.
في هذا الاختبار، يمكنك ضبط الخيار واختباره.
في هذا الدرس، ستُنشئ بنية بسيطة توضّح استخدام الوصول إلى نقاط نهاية PSA وPSC مع CloudSQL.
الشكل 1
لإجراء هذا الدرس العملي، ستحتاج إلى مشروعَين أو شبكتَي VPC منفصلتَين في المشروع نفسه.
الأهداف
في هذه الميزة الاختبارية، ستتعرّف على كيفية تنفيذ المهمة التالية:
- تفعيل ربط الخدمات ببعضها
- إعداد PSA
- إنشاء مثيل CloudSQL باستخدام PSA
- فعِّل إرفاق خدمة PSC.
- إنشاء نقطة نهاية PSC في شبكة VPC للمستهلك للاتصال بقاعدة بيانات CloudSQL
- التحقّق من إمكانية الوصول إلى قاعدة بيانات SQL من الأجهزة الافتراضية الاختبارية، في كلٍّ من شبكات VPC الخاصة بالمنتج والمستهلك
2. الإعداد والمتطلبات
إعداد البيئة حسب السرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها واجهات برمجة تطبيقات Google. ويمكنك تعديلها في أي وقت.
- يكون معرّف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ وحدة تحكّم Cloud Console سلسلة فريدة تلقائيًا، ولا يهمّك عادةً معرفة محتواها. في معظم ورشات عمل رموز البرامج، عليك الإشارة إلى معرّف المشروع (يُعرَف عادةً باسم
PROJECT_ID
). إذا لم يعجبك المعرّف الذي تم إنشاؤه، يمكنك إنشاء معرّف آخر عشوائي. يمكنك بدلاً من ذلك تجربة عنوانك الخاص لمعرفة ما إذا كان متاحًا. ولا يمكن تغييره بعد هذه الخطوة ويبقى ساريًا طوال مدة المشروع. - يُرجى العِلم أنّ هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات عن كلّ من هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تُكلّفك المشاركة في هذا الدليل التعليمي للترميز الكثير، إن لم يكن أيّ تكلفة على الإطلاق. لإيقاف الموارد لتجنُّب تحصيل رسوم بعد انتهاء هذا الدليل التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يكون مستخدمو Google Cloud الجدد مؤهّلين للاستفادة من برنامج الفترة التجريبية المجانية التي تبلغ قيمتها 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من أنّه يمكن تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدليل التعليمي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات أعلى يسار الصفحة:
من المفترض ألا تستغرق عملية توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:
يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. ويقدّم هذا الدليل دليلاً منزليًا دائمًا بسعة 5 غيغابايت، ويتم تشغيله على Google Cloud، ما يُحسِّن بشكل كبير أداء الشبكة والمصادقة. يمكنك تنفيذ جميع أعمالك في هذا الدليل التعليمي للترميز داخل متصفّح. لست بحاجة إلى تثبيت أي تطبيق.
3- المهمة رقم 1 إعداد بيئة لمشروع قاعدة البيانات باستخدام (Terraform)
في مشروع قاعدة البيانات، سنعمل على تفعيل "الشبكات في الخدمة" وإنشاء شبكة VPC وإنشاء نطاق PSA وإنشاء ربط "الشبكات في الخدمة" وإنشاء قواعد جدار الحماية. افتح وحدة تحكّم السحابة الإلكترونية واختَر المشروع الذي ستستخدمه لقاعدة البيانات.
- افتح Cloud Shell في أعلى وحدة التحكّم على يسار الصفحة، وتأكَّد من ظهور معرّف المشروع لقاعدة البيانات في مشروع قاعدة البيانات في Cloud Shell، وأكِّد أي طلبات للسماح بالوصول.
- أنشئ مجلدًا باسم terraform-db-psc وانتقِل إليه.
mkdir terraform-db-psc && cd terraform-db-psc
- أنشئ الملفات main.tf وvariable.tf وnat-vm.tf وdatabase.tf.
touch main.tf variable.tf nat-vm.tf database.tf
- انتقِل إلى عرض محرِّر Cloud Shell. اختَر المحرِّر، وتأكَّد من السماح بأي طلبات ضرورية حتى تتمكّن الواجهة من التحميل.
- بعد التحميل، انتقِل إلى ملف > فتح مجلد وانتقِل إلى /home/your-user-name/terraform-db-psc وانقر على حسنًا لفتح المجلد في المحرِّر.
- اختَر ملف variable.tf وأضِف ما يلي. استبدِل نص
your-database-project-id-here
بمعرّف مشروع قاعدة البيانات الفعلي بين علامتَي اقتباس. استبدِل نصyour-consumer-project-id-here
بمعرّف مشروع المستهلك الفعلي بين علامتَي اقتباس.
variable "project_id" { type = string default = "your-database-project-id-here" } variable "project_id_consumer" { type = set(string) default = ["your-consumer-project-id-here"] } variable "network_id" { type = string default = "database-net" } variable "region_id" { type = string default = "us-east1" } variable "db_password" { type = string default = "cloudsql24" }
- بعد ذلك، افتح الملف main.tf. سنضيف بعض رموز terraform لتنفيذ إجراءات مختلفة كما هو موضّح أدناه.
تفعيل واجهات برمجة التطبيقات |
|
إنشاء شبكة VPC |
|
إضافة قواعد جدار الحماية |
|
إنشاء نطاق إعلانات المنتجات داخل التطبيق |
|
إنشاء شراكة |
|
- انسخ ما يلي والصقه في ملف main .tf.
resource "google_project_service" "default" { for_each = toset([ "compute.googleapis.com", "servicenetworking.googleapis.com", "sqladmin.googleapis.com", "cloudresourcemanager.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = true mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_global_address" "psa_range" { name = "psa-range-${google_compute_network.default.name}" project = var.project_id purpose = "VPC_PEERING" address_type = "INTERNAL" prefix_length = 20 address = "172.18.0.0" network = google_compute_network.default.id } resource "google_service_networking_connection" "private_connection" { network = google_compute_network.default.self_link service = "servicenetworking.googleapis.com" reserved_peering_ranges = [ google_compute_global_address.psa_range.name, ] } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-icmp"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] } resource "google_compute_firewall" "allow_sql" { name = "allow-sql-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["3306"] } source_ranges = ["0.0.0.0/0"] } resource "google_compute_firewall" "allow_internal" { name = "allow-internal-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } allow { protocol = "tcp" ports = ["0-65535"] } allow { protocol = "udp" ports = ["0-65535"] } source_ranges = ["10.128.0.0/9", "172.18.0.0/20"] # Include PSA range }
- ارجع إلى وحدة طرفية Cloud Shell وتأكَّد من أنّك في الدليل terraform-db-psc
cd terraform-db-psc
ونفِّذ الأوامر التالية:
terraform init
تبدأ عملية إعداد دليل العمل. تعمل هذه الخطوة على تنزيل موفّري الخدمات المطلوبين للإعداد المحدّد.
terraform plan
تُنشئ خطة تنفيذ توضّح الإجراءات التي ستتّخذها Terraform لنشر البنية الأساسية.
- الآن لإنشاء الموارد، يمكنك تنفيذ الأمر
terraform apply
ثم كتابةyes
لتشغيله.
4. المهمة رقم 2 إنشاء مثيل CloudSQL باستخدام أداة PSA (Terraform)
لنستخدم Terraform لإنشاء مثيل CloudSQL، مع خيار PSA للسماح بالاتصال. أكمِل عملية الضبط هذه في مشروع قاعدة البيانات.
- انتقِل إلى عرض محرِّر Cloud Shell. تأكَّد من أنّك في المجلد
terraform-db-psc
. اختَر ملفdatabase.tf
وأضِف ما يلي.
resource "google_sql_database_instance" "default" {
name = "psc-psa-sql-db"
region = var.region_id
database_version = "MYSQL_8_0"
settings {
tier = "db-f1-micro"
availability_type = "REGIONAL"
backup_configuration {
enabled = true
binary_log_enabled = true
}
ip_configuration {
ipv4_enabled = "false"
private_network = google_compute_network.default.id
}
}
deletion_protection = false
}
resource "google_sql_user" "users" {
name = "testsql"
instance = google_sql_database_instance.default.name
password = var.db_password
}
- ارجع إلى وحدة طرفية Cloud Shell وتأكَّد من أنّك في الدليل terraform-db-psc. الآن لإنشاء الموارد، يمكنك تنفيذ الأمر
terraform apply
ثم كتابةyes
لتشغيله. قد يستغرق إنشاء مثيل CloudSQL باستخدام PSA ما يصل إلى 15 دقيقة أو أكثر.
التحقّق من قاعدة البيانات
- بعد الانتهاء، انتقِل إلى SQL في وحدة التحكّم، واختَر مثيل قاعدة البيانات psc-psa-sql-db الذي تم إنشاؤه حديثًا.
- على يمين الصفحة، وسِّع القائمة المنسدلة لخيارات SQL واختَر Connections (عمليات الربط).
- ضمن علامة التبويب "الملخّص"، يمكنك الاطّلاع على معلومات عن عملية الاتصال.
- انسخ عنوان IP الداخلي واحفظه في مكان ما على نظامك. كما ترى، تمّ تعيينه من النطاق الذي حجزناه.
- ستحتاج إلى عنوان IP هذا لإكمال المهمة 3، الخطوة 5.
- على يمين الصفحة، وسِّع القائمة المنسدلة لخيارات SQL واختَر المستخدمون.
- من المفترض أن يظهر لك مستخدم باسم testsql وكلمة المرور cloudsql24 (ستُستخدَم هذه المعلومات للوصول إلى قاعدة البيانات لاحقًا).
5- المهمة رقم 3 إنشاء جهاز افتراضي تجريبي والاتصال بمثيل SQL من داخل مشروع قاعدة البيانات (Terraform)
لنستخدم Terraform لإنشاء جهاز افتراضي تجريبي وبوابة NAT. أكمِل عملية الضبط هذه في مشروع قاعدة البيانات.
- انتقِل إلى عرض محرِّر Cloud Shell. تأكَّد من أنّك في المجلد
terraform-db-psc
. اختَر ملفnat-vm.tf
وأضِف ما يلي.
resource "google_compute_router" "default" {
name = "outbound-nat"
region = var.region_id
network = google_compute_network.default.id
bgp {
asn = 64514
}
}
resource "google_compute_router_nat" "default" {
name = "outbound-nat-gw"
router = google_compute_router.default.name
region = google_compute_router.default.region
nat_ip_allocate_option = "AUTO_ONLY"
source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
log_config {
enable = true
filter = "ERRORS_ONLY"
}
}
resource "google_compute_instance" "sql_net_vm" {
name = "db-vm-test"
machine_type = "e2-medium"
zone = "${var.region_id}-b"
project = var.project_id
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = google_compute_network.default.self_link
}
# No external IP address
network_performance_config {
total_egress_bandwidth_tier = "DEFAULT"
}
tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"]
# Install MariaDB at startup
metadata_startup_script = <<EOF
#!/bin/bash
apt-get update
apt-get install -y mariadb-server
systemctl enable mariadb
EOF
}
- ارجع إلى وحدة طرفية Cloud Shell وتأكَّد من أنّك في الدليل terraform-db-psc. الآن لإنشاء الموارد، يمكنك تنفيذ الأمر
terraform plan, then terraform apply
ثم كتابةyes
لتشغيله. سيؤدي ذلك إلى إنشاء بوابة NAT وجهاز افتراضي تم تثبيت MariaDB عليه.
التحقّق من قاعدة البيانات
أكمِل ذلك في مشروع المستهلك
- انتقِل إلى مثيل الجهاز الافتراضي. اختَر db-vm-test.
- اختَر SSH للاتصال بالجهاز الافتراضي.
- يمكنك الاتصال بقاعدة البيانات من خلال عنوان IP المحلي الذي نسخته سابقًا باستخدام ما يلي:
mysql --host=172.18.0.2 --user=testsql --password=cloudsql24
ملاحظة: عليك تغيير عنوان IP إلى عنوان IP الفعلي لكي يتم الاتصال.
- عند إنشاء الاتصال، سننشئ قاعدة بيانات باستخدام localvpcsqldb التالية.
CREATE DATABASE localvpcsqldb;
- بعد اكتمال العملية، اكتب exit للخروج من عملية الاتصال. اكتب exit مرة أخرى لإغلاق الجهاز الظاهري.
6- المهمة رقم 4 تفعيل PSC على مثيل CloudSQL
لنستخدم أوامر gcloud لتفعيل خيار PSC للسماح بالاتصال. أكمِل عملية الضبط هذه في مشروع قاعدة البيانات.
- انتقِل إلى عرض Cloud Shell.
- نفِّذ الأمر التالي في Cloud Shell.
- استبدِل
YOUR_DB_PROJECT_HERE
بمعرّف مشروع قاعدة البيانات. - استبدِل
YOUR_CONSUMER_PROJECT_HERE
بمعرّف مشروع المستهلك.
project_id=YOUR_DB_PROJECT_HERE
allowed_project=YOUR_CONSUMER_PROJECT_HERE
gcloud beta sql instances patch psc-psa-sql-db \
--project=$project_id \
--enable-private-service-connect \
--allowed-psc-projects=$allowed_project
- سيؤدي ذلك إلى تعديل قاعدة البيانات الحالية من خلال إرفاق ملف PSC. سيستغرق ذلك بعض الوقت، أي أكثر من 10 دقائق.
إذا ظهرت لك رسالة خطأ متعلّقة بوقت الانتظار، من المفترض أن يعرض لك أيضًا الأمر لمواصلة الاطّلاع على مستوى التقدّم. مثل "يمكنك مواصلة انتظار اكتمال العملية من خلال تشغيل gcloud beta sql operations wait –project "
يُرجى العلم أنّه يمكنك نشر قاعدة بيانات جديدة مع تفعيل PSA وPSC من البداية.
التحقّق من قاعدة البيانات
- بعد اكتمال العملية، انتقِل إلى SQL في وحدة التحكّم، واختَر مثيل قاعدة البيانات psc-psa-sql-db.
- على يمين الصفحة، وسِّع القائمة المنسدلة لخيارات SQL واختَر Connections (عمليات الربط).
- ضمن علامة التبويب "الملخّص"، يمكنك الاطّلاع على معلومات عن عملية الاتصال.
- انسخ عنوان مرفق الخدمة واحفظه في مكان ما على نظامك.
- ستحتاج إلى هذا الإجراء لإكمال المهمة التالية 5، الخطوة 8.
7- المهمة رقم 5 إعداد بيئة مشروع المستهلك (Terraform)
في مشروع المستهلك، سننشئ شبكة VPC مخصّصة تتضمّن قواعد جدار الحماية والشبكة الفرعية. افتح وحدة تحكّم السحابة الإلكترونية واختَر المشروع الذي ستستخدمه.
- في أعلى وحدة التحكّم على يسار رمز Google Cloud، انقر على القائمة المنسدلة ثم اختَر علامة التبويب الكل.
- من المشاريع المدرَجة، اختَر رقم تعريف مشروع المستهلك للمتابعة.
- افتح Cloud Shell في أعلى وحدة التحكّم على يسار الصفحة، وتأكَّد من ظهور رقم تعريف مشروع المستهلك في Cloud Shell، وأكِّد أي طلبات للسماح بالوصول.
- أنشئ مجلدًا باسم terraform-consumer-psc وانتقِل إليه.
mkdir terraform-consumer-psc && cd terraform-consumer-psc
- أنشئ ملفّات main.tf وvariable.tf وpsc.tf.
touch main.tf variable.tf psc.tf
- انتقِل إلى عرض محرِّر Cloud Shell لرقم تعريف مشروع المستهلك. اختَر المحرِّر، وتأكَّد من السماح بأي طلبات ضرورية حتى تتمكّن الواجهة من التحميل.
- بعد التحميل، انتقِل إلى ملف > فتح مجلد وانتقِل إلى /home/your-user-name/terraform-consumer-psc وانقر على حسنًا لفتح المجلد في المحرِّر.
- اختَر ملف variable.tf وأضِف ما يلي. استبدِل النص
your-consumer-project-id-here
بـ معرّف مشروع المستهلك الفعلي بين علامتَي اقتباس. استبدِل النصyour-psc-attachment-id-here
بعنوان مرفق psc بين علامتَي اقتباس. هذا هو رقم التعريف الذي نسخته في المهمة 4، القسم 5-7.
variable "project_id" { type = string default = "your-consumer-project-id-here" } variable "psc_attachment_id" { type = string default = "your-psc-attachment-id-here" } variable "network_id" { type = string default = "psc-endpoint-vpc" } variable "region_id" { type = string default = "us-east1" }
- بعد ذلك، افتح الملف main.tf. سنضيف بعض رموز terraform لتنفيذ إجراءات مختلفة كما هو موضّح أدناه.
تفعيل واجهات برمجة التطبيقات |
|
إنشاء شبكة VPC |
|
إنشاء بوابة NAT |
|
إضافة قواعد جدار الحماية |
|
- انسخ ما يلي والصقه في ملف main .tf.
resource "google_project_service" "default" { for_each = toset([ "compute.googleapis.com", "cloudresourcemanager.googleapis.com" ]) service = each.value disable_on_destroy = false } resource "google_compute_network" "default" { project = var.project_id name = var.network_id auto_create_subnetworks = false mtu = 1460 routing_mode = "GLOBAL" } resource "google_compute_subnetwork" "vm_subnet_pc" { name = "vm-net" ip_cidr_range = "192.168.80.0/24" region = var.region_id network = google_compute_network.default.name project = var.project_id } resource "google_compute_subnetwork" "psc_subnet_ip" { name = "psc-subnet" ip_cidr_range = "192.168.100.0/24" region = var.region_id network = google_compute_network.default.name project = var.project_id } resource "google_compute_router" "default" { name = "outbound-nat" region = var.region_id network = google_compute_network.default.id bgp { asn = 64514 } } resource "google_compute_router_nat" "default" { name = "outbound-nat-gw" router = google_compute_router.default.name region = google_compute_router.default.region nat_ip_allocate_option = "AUTO_ONLY" source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES" log_config { enable = true filter = "ERRORS_ONLY" } } resource "google_compute_firewall" "allow_icmp" { name = "allow-icmp-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } source_ranges = ["0.0.0.0/0"] } resource "google_compute_firewall" "allow_ssh" { name = "allow-ssh-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "tcp" ports = ["22"] } source_ranges = ["0.0.0.0/0"] target_tags = ["allow-ssh"] } resource "google_compute_firewall" "allow_internal" { name = "allow-internal-${google_compute_network.default.name}" network = google_compute_network.default.id project = var.project_id allow { protocol = "icmp" } allow { protocol = "tcp" ports = ["0-65535"] } allow { protocol = "udp" ports = ["0-65535"] } source_ranges = ["192.168.0.0/16"] }
- ارجع إلى وحدة تحكّم Cloud Shell وتأكَّد من أنّك في الدليل terraform-consumer-psc
cd terraform-consumer-psc
في مشروع المستهلِك ونفِّذ الأوامر التالية.
terraform init
تبدأ عملية إعداد دليل العمل. تعمل هذه الخطوة على تنزيل موفّري الخدمات المطلوبين للإعداد المحدّد.
terraform plan
تُنشئ خطة تنفيذ توضّح الإجراءات التي ستتّخذها Terraform لنشر البنية الأساسية.
- الآن لإنشاء الموارد، يمكنك تنفيذ الأمر
terraform apply
ثم كتابةyes
لتشغيله.
8. المهمة 6 إنشاء نقطة نهاية PSC لإرفاق قاعدة بيانات SQL في مشروع المستهلك واختبار الجهاز الظاهري (Terraform)
أكمِل عملية الضبط هذه في مشروع المستهلك.
- ارجع إلى محرِّر Cloud Shell، وافتح الدليل terraform-consumer-psc واختَر الملف
psc.tf
. أضِف رمز Terraform التالي إلى الملف. يؤدي ذلك إلى إنشاء عنوان IP داخلي ثابت ونقطة نهاية PSC وجهاز افتراضي تجريبي تم تثبيت Maria DB عليه.
resource "google_compute_address" "default" { name = "psc-ip-1" region = var.region_id address_type = "INTERNAL" subnetwork = google_compute_subnetwork.psc_subnet_ip.name address = "192.168.100.100" } resource "google_compute_forwarding_rule" "default" { name = "psc-sql-endpoint" region = var.region_id network = google_compute_network.default.name ip_address = google_compute_address.default.self_link load_balancing_scheme = "" target = var.psc_attachment_id } resource "google_compute_instance" "sql_test_vm" { name = "remote-sql-test-vm" machine_type = "e2-medium" zone = "${var.region_id}-b" project = var.project_id boot_disk { initialize_params { image = "debian-cloud/debian-11" } } network_interface { subnetwork = google_compute_subnetwork.vm_subnet_pc.name } # No external IP address network_performance_config { total_egress_bandwidth_tier = "DEFAULT" } tags = ["allow-icmp", "allow-ssh", "allow-internal", "allow-health-check"] # Install MariaDB at startup metadata_startup_script = <<EOF #!/bin/bash apt-get update apt-get install -y mariadb-server systemctl enable mariadb EOF }
- ارجع إلى وحدة تحكّم Cloud Shell وتأكَّد من أنّك في الدليل terraform-consumer-psc
cd terraform-consumer-psc
في مشروع المستهلِك ونفِّذ الأوامر التالية.
terraform plan
تُنشئ خطة تنفيذ توضّح الإجراءات التي ستتّخذها Terraform لنشر البنية الأساسية.
- الآن لإنشاء الموارد، نفِّذ الأمر
terraform apply
واكتبyes
لتشغيله.
9. المهمة 7 التحقّق من إمكانية الاتصال بنقطة النهاية من جهاز افتراضي عبر عنوان IP لوحدة التحكّم في حدود الجلسة
أكمِل ذلك في مشروع المستهلك
- انتقِل إلى مثيل الجهاز الافتراضي. اختَر remote-sql-test-vm.
- اختَر SSH للاتصال بالجهاز الافتراضي.
- يمكنك الاتصال بقاعدة البيانات من خلال نقطة النهاية باستخدام ما يلي:
mysql --host=192.168.100.100 --user=testsql --password=cloudsql24
- عند إنشاء اتصال، يجب إنشاء قاعدة بيانات باستخدام psc-sql-db التالية.
CREATE DATABASE remotepscpsasqldb;
- بعد اكتمال العملية، اكتب exit للخروج من عملية الاتصال. اكتب exit مرة أخرى لإغلاق الجهاز الظاهري.
10. المهمة 8 التحقّق من إدخال قاعدة البيانات
أكمِل عملية إثبات الملكية هذه في مشروع قاعدة البيانات.
- في أعلى وحدة التحكّم على يسار رمز Google Cloud، انقر على القائمة المنسدلة ثم اختَر علامة التبويب الكل.
- من المشاريع المدرَجة، اختَر رقم تعريف مشروع قاعدة البيانات للمتابعة.
- انتقِل إلى SQL، واختَر قاعدة البيانات psc-psa-sql-db، وسِّع خيارات SQL واختَر قواعد البيانات. من المفترض أن تظهر لك قاعدة البيانات التي أنشأتها للتو باسم remotepscpsasqldb من جهاز المستهلك الافتراضي للمشروع وكذلك localvpcsqldb من جهاز db الافتراضي للمشروع**
.
**
11. تنظيف
أكمِل ذلك في مشروع "المستهلك"
- اختَر رقم تعريف مشروع المستهلك.
- انتقِل إلى Cloud Shell وتأكَّد من ظهور رقم تعريف مشروع المستهلك.
- انتقِل إلى الدليل terraform-consumer-psc
cd terraform-consumer-psc
ونفِّذ الأمر التاليterraform destroy
واكتبyes
، وسيتمّت إزالة جميع الموارد التي أنشأتها في مشروع المستهلك باستخدام Terraform.
إكمال ذلك في مشروع قاعدة البيانات
- اختَر معرّف مشروع قاعدة البيانات.
- انتقِل إلى Cloud Shell وتأكَّد من ظهور رقم تعريف مشروع قاعدة البيانات.
- انتقِل إلى الدليل terraform-db-psc
cd terraform-db-psc
ونفِّذ الأمر التاليterraform destroy
واكتبyes
ستتم إزالة معظم الموارد التي أنشأتها في مشروعك على قاعدة البيانات باستخدام Terraform. قد لا يتم حذف شبكة الخدمة ويظهر خطأ. - بعد ذلك، احذف الملفات التالية من مجلد terraform-db-psc.
rm -r terraform.tfstate terraform.tfstate.backup
- بعد ذلك، انتقِل إلى شبكات VPC في وحدة التحكّم.
- اختَر قاعدة بيانات-شبكة VPC، ثمّ اختَر الوصول إلى الخدمات الخاصة، ضمن نطاقات IP المخصّصة للخدمات، ثمّ اختَر psa-range-database-net، ثمّ اختَر الإصدار.
- بعد ذلك، اختَر VPC NETWORK PEERING (ربط شبكة VPC)، ثم اختَر servicenetworking-googleapis-com، ثم اختَر حذف.
- بعد ذلك، اختَر حذف شبكة VPC
.
12. تهانينا
مبروك، لقد نجحت في ضبط إعدادات مثيل Cloud SQL مع إرفاق PSA وPSC وإنشاء نقطة نهاية Private Service Connect في VPC أخرى.
مزيد من المعلومات
يمكنك الاطّلاع على مزيد من المعلومات عن Private Service Connect وCloud SQL.
دورة تعليمية أخرى ذات صلة: https://codelabs.developers.google.com/codelabs/cloudsql-psc-terraform