1. Giới thiệu
Trong lớp học lập trình này, bạn sẽ thực hiện một kết nối theo hướng nam đến Cloud SQL được triển khai bằng Private Service Connect dưới vai trò Nhà cung cấp dịch vụ.
Private Service Connect là một tính năng của mạng Google Cloud, cho phép người dùng truy cập riêng tư vào các dịch vụ được quản lý từ bên trong mạng VPC của họ. Tương tự, tính năng này cho phép nhà sản xuất dịch vụ được quản lý lưu trữ các dịch vụ này trong mạng VPC riêng của họ và cung cấp kết nối riêng tư cho người tiêu dùng. Ví dụ: khi sử dụng Private Service Connect để truy cập vào Looker, bạn là người sử dụng dịch vụ và Google là nhà cung cấp dịch vụ, như minh hoạ trong Hình 1.

Quyền truy cập Southbound (còn gọi là PSC đảo ngược) cho phép Người tiêu dùng tạo một Dịch vụ đã xuất bản dưới dạng Nhà sản xuất để cho phép Looker truy cập vào các điểm cuối tại chỗ, trong VPC, vào các dịch vụ được quản lý và Internet. Bạn có thể triển khai các kết nối chiều nam ở bất kỳ khu vực nào, bất kể bạn triển khai PSC của Looker ở đâu, như minh hoạ trong Hình 2.

Kiến thức bạn sẽ học được
- Tạo dịch vụ của nhà cung cấp phiên bản Cloud SQL Private Service Connect
- Tạo một điểm cuối Private Service Connect trong Looker với tư cách là người dùng dịch vụ
Bạn cần có
- Dự án trên Google Cloud có quyền của chủ sở hữu
- Phiên bản PSC Looker hiện có

2. Sản phẩm bạn sẽ tạo ra
Bạn sẽ thiết lập một phiên bản Cloud SQL PSC được triển khai dưới dạng Nhà cung cấp dịch vụ liên kết với Looker PSC dưới dạng Người tiêu dùng dịch vụ.
Các thao tác sau đây xác thực quyền truy cập vào dịch vụ Producer:
- Tạo một điểm cuối PSC trong Looker được liên kết với Producer Service Attachment
- Sử dụng Looker Console để tạo mối kết nối cơ sở dữ liệu với Cloud SQL PSC
- Kiểm tra khả năng kết nối với Cloud SQL PSC bằng cách xác thực và truy cập vào một lược đồ được xác định trước
3. Cấu trúc liên kết lớp học lập trình

4. Thiết lập và yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
- Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.



- Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự mà các API của Google không sử dụng. Bạn luôn có thể cập nhật thông tin này.
- Mã dự án là mã duy nhất trên tất cả các dự án trên Google Cloud và không thể thay đổi (bạn không thể thay đổi mã này sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là
PROJECT_ID). Nếu không thích mã nhận dạng được tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Hoặc bạn có thể thử tên người dùng của riêng mình để xem tên đó có được chấp nhận hay không. Bạn không thể thay đổi tên này sau bước này và tên này sẽ tồn tại trong suốt thời gian của dự án. - Để bạn nắm được thông tin, có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 giá trị này trong tài liệu.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên Cloud. Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí ngoài phạm vi hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí trị giá 300 USD.
Khởi động Cloud Shell
Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.
Trên Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện mọi thao tác trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt bất cứ thứ gì.
5. Trước khi bắt đầu
Bật API
Trong Cloud Shell, hãy đảm bảo rằng bạn đã thiết lập mã dự án:
gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
project=[YOUR-PROJECT-ID]
region=[YOUR-REGION]
echo $project
echo $region
Bật tất cả các dịch vụ cần thiết:
gcloud services enable compute.googleapis.com
6. Xác định Dự án Looker PSC
Để tạo một phiên bản PSC Cloud SQL, bạn cần xác định các dự án psc được phép. Do đó, bạn phải cung cấp dự án đối tượng thuê PSC Looker tại thời điểm tạo phiên bản Cloud SQL hoặc cập nhật nếu đang sử dụng một phiên bản hiện có.
Xác định Dự án PSC của Looker bằng gcloud
Trong Cloud Shell, hãy cập nhật [INSTANCE_NAME] bằng tên thực thể PSC của Looker để lấy mã dự án PSC của Looker:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json | grep -i lookerServiceAttachmentUri
Trong đầu ra Ví dụ, t7ec792caf2a609d1-tp là dự án Looker PSC:
gcloud looker instances describe looker-psc-instance --region=us-central1 --format=json | grep -i lookerServiceAttachmentUri
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
Xác định Dự án Looker PSC bằng Cloud Console
Trong Cloud Console, hãy chuyển đến:
Looker → Thực thể Looker PSC

7. Tạo phiên bản Cloud SQL của Nhà sản xuất
Trong phần sau, bạn sẽ tạo một thực thể PSC Cloud SQL được dùng cho mục đích kiểm thử, được triển khai bằng mật khẩu xác định trước, chỉ định dự án PSC Looker trong danh sách dự án psc được phép.
Tạo PSC Cloud SQL
Trong Cloud Shell, hãy tạo một thực thể và bật Private Service Connect, cập nhật [INSTANCE_PROJECT] bằng mã dự án PSC Looker của bạn.
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=[INSTANCE_PROJECT] \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
Ví dụ:
gcloud sql instances create cloud-sql-psc-demo \
--project=$project \
--region=$region \
--enable-private-service-connect \
--allowed-psc-projects=t7ec792caf2a609d1-tp \
--availability-type=regional \
--no-assign-ip \
--cpu=2 --memory=4GB \
--database-version=MYSQL_8_0 \
--enable-bin-log \
--root-password=password123
Lấy Cloud SQL Service Attachment
Sau khi tạo một thực thể Cloud SQL có bật Private Service Connect, hãy lấy URI đính kèm dịch vụ được dùng trong một bước sau để tạo điểm cuối Private Service Connect trong Looker.
Trong Cloud Shell, hãy thực hiện các bước sau:
gcloud sql instances describe [INSTANCE_NAME] --project=$project | grep -i pscServiceAttachmentLink
Ví dụ về đầu ra tạo ra URI đính kèm dịch vụ:
projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
gcloud sql instances describe cloud-sql-psc-demo --project=$project | grep -i pscServiceAttachmentLink:
pscServiceAttachmentLink: projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155
Trong Cloud Console, bạn có thể lấy Cloud SQL PSC Service Attachment:
Trong Cloud Console, hãy chuyển đến:
SQL → Phiên bản SQL → Kết nối

8. Thiết lập kết nối điểm cuối PSC trong Looker
Trong phần sau, bạn sẽ liên kết Cloud SQL Producers Service Attachment với Looker Core PSC bằng cách sử dụng cờ –psc-service-attachment trong Cloud Shell cho một miền duy nhất.
Trong Cloud Shell, hãy tạo mối liên kết psc bằng cách cập nhật các tham số sau cho phù hợp với môi trường của bạn:
- INSTANCE_NAME: Tên của thực thể Looker (Google Cloud core).
- DOMAIN_1: sql.database1.com
- SERVICE_ATTACHMENT_1: URI được ghi lại khi mô tả phiên bản Cloud SQL PSC
- KHU VỰC: Vùng lưu trữ thực thể Looker (Google Cloud core) của bạn
Trong Cloud Shell, hãy thực hiện các bước sau:
gcloud looker instances update INSTANCE_NAME \
--psc-service-attachment domain=DOMAIN_1,attachment=SERVICE_ATTACHMENT_URI_1 \
--region=REGION
Ví dụ:
gcloud looker instances update looker-psc-instance \
--psc-service-attachment domain=sql.database1.com,attachment=projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155 \
--region=us-central1
Trong Cloud Shell, hãy xác thực rằng connectionStatus của serviceAttachments là "ACCEPTED". Đảm bảo bạn cập nhật INSTANCE_NAME Looker PSC:
gcloud looker instances describe [INSTANCE_NAME] --region=$region --format=json
Ví dụ:
gcloud looker instances describe looker-psc-instance --region=$region --format=json
Ví dụ:
user@cloudshell$ gcloud looker instances describe looker-psc-instance --region=$region --format=json
{
"adminSettings": {},
"createTime": "2024-08-23T00:00:45.339063195Z",
"customDomain": {
"domain": "looker.cosmopup.com",
"state": "AVAILABLE"
},
"encryptionConfig": {},
"lookerVersion": "24.14.18",
"name": "projects/project/locations/us-central1/instances/looker-psc-instance",
"platformEdition": "LOOKER_CORE_ENTERPRISE_ANNUAL",
"pscConfig": {
"allowedVpcs": [
"projects/project/global/networks/looker-psc-demo",
"projects/project/global/networks/looker-shared-vpc"
],
"lookerServiceAttachmentUri": "projects/t7ec792caf2a609d1-tp/regions/us-central1/serviceAttachments/looker-psc-f51982e2-ac0d-48b1-91bb-88656971c183",
"serviceAttachments": [
{
"connectionStatus": "ACCEPTED",
"localFqdn": "sql.database1.com",
"targetServiceAttachmentUri": "projects/o6222fa10e2a50865p-tp/regions/us-central1/serviceAttachments/a-39d809aaecae-psc-service-attachment-127fc34733744155"
}
]
},
"pscEnabled": true,
"state": "ACTIVE",
"updateTime": "2024-09-04T14:40:05.613026012Z"
}
Xác thực điểm cuối PSC trong Bảng điều khiển Cloud
Bạn có thể xác thực Kết nối PSC trong Bảng điều khiển Cloud
Trong Cloud Console, hãy chuyển đến:
Looker → Thực thể Looker → Chi tiết


9. Tích hợp Looker PSC với Cloud SQL PSC
Trong phần sau, bạn sẽ sử dụng Looker Console để tạo một kết nối Cơ sở dữ liệu đến phiên bản PSC Cloud SQL.
Chuyển đến QUẢN TRỊ → CƠ SỞ DỮ LIỆU → KẾT NỐI → Chọn THÊM KẾT NỐI
Điền thông tin chi tiết về kết nối theo ảnh chụp màn hình bên dưới, chọn KẾT NỐI

Kết nối hiện đã được định cấu hình

10. Xác thực khả năng kết nối Looker
Trong phần sau, bạn sẽ tìm hiểu cách xác thực khả năng kết nối Looker với thực thể Cloud SQL PSC bằng thao tác "kiểm thử" của Looker.
Chuyển đến mục Kết nối dữ liệu QUẢN TRỊ → CƠ SỞ DỮ LIỆU → KẾT NỐI → cloud-sql-psc-demo → Kiểm thử
Sau khi bạn chọn Test (Kiểm thử), Looker sẽ kết nối với cơ sở dữ liệu postgres như minh hoạ dưới đây:

Dọn dẹp
Xoá các thành phần trong phòng thí nghiệm khỏi một thiết bị đầu cuối Cloud Shell
gcloud sql instances delete cloud-sql-psc-demo -q
11. Xin chúc mừng
Xin chúc mừng! Bạn đã định cấu hình và xác thực thành công khả năng kết nối với Cloud SQL PSC bằng Looker Console dựa trên Private Service Connect.
Bạn đã tạo các phiên bản Cloud SQL PSC làm Dịch vụ của nhà cung cấp và điểm cuối Looker PSC cho phép kết nối với Dịch vụ của nhà cung cấp.
Cosmopup cho rằng các lớp học lập trình rất tuyệt!!

Tiếp theo là gì?
Hãy xem một số lớp học lập trình này...
- Sử dụng Private Service Connect để xuất bản và sử dụng các dịch vụ
- Kết nối với các dịch vụ tại chỗ qua Mạng kết hợp bằng Private Service Connect và bộ cân bằng tải TCP Proxy nội bộ
- Quyền truy cập vào tất cả các lớp học lập trình đã xuất bản về Private Service Connect