1. Giới thiệu
Lần cập nhật gần đây nhất: 2021-05-11
Cloud SQL là gì?
Cloud SQL là một dịch vụ cơ sở dữ liệu được quản lý hoàn toàn, giúp bạn dễ dàng thiết lập, duy trì, quản lý và quản trị cơ sở dữ liệu quan hệ trên Google Cloud Platform.
Cloud Functions là gì?
Cloud Functions là một giải pháp điện toán đơn giản để nhà phát triển tạo các hàm độc lập, có mục đích duy nhất nhằm phản hồi các sự kiện trên đám mây mà không cần quản lý máy chủ hoặc môi trường thời gian chạy.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ viết một Cloud Function bằng Python. Hàm:
- Kết nối với một phiên bản Cơ sở dữ liệu Cloud SQL.
- Gửi câu lệnh chèn đến một bảng trong cơ sở dữ liệu.
Kiến thức bạn sẽ học được
- Cách truy cập vào giao diện người dùng web Cloud Functions trong Google Cloud Console.
- Cách tạo một Cloud Function.
- Cách kiểm thử một Cloud Function.
- Cách kết nối với một phiên bản cơ sở dữ liệu Cloud SQL (MySQL hoặc PostgreSQL) bằng Python.
- Cách ghi vào cơ sở dữ liệu Cloud SQL bằng Python.
2. Yêu cầu
- Một trình duyệt, chẳng hạn như Chrome hoặc Firefox.
- Một dự án trên Google Cloud Platform có chứa phiên bản Cloud SQL của bạn.
- Nếu chưa có, bạn có thể làm theo các bước trong phần Hướng dẫn nhanh cho MySQL hoặc PostgreSQL. Thực hiện tất cả các bước, ngoại trừ bước dọn dẹp.
- Phiên bản của bạn chứa một cơ sở dữ liệu MySQL hoặc PostgreSQL có một bảng.
- Tên kết nối của phiên bản, tên cơ sở dữ liệu và bảng, tên người dùng cơ sở dữ liệu và mật khẩu của người dùng.
- Một Tài khoản dịch vụ có vai trò Ứng dụng Cloud SQL.
3. Chuẩn bị mã và tạo hàm
Chuẩn bị mã
Mã Cloud Function để kết nối với cơ sở dữ liệu Cloud SQL nằm ngay tại đây. Một số giá trị biến phụ thuộc vào việc cơ sở dữ liệu Cloud SQL của bạn là MySQL hay PostgreSQL, cũng như phụ thuộc vào thông tin cơ sở dữ liệu của riêng bạn.
Giao diện người dùng Cloud Functions trong Cloud Console có một trình chỉnh sửa văn bản. Bạn có thể sao chép/dán và chỉnh sửa mã tại đó hoặc chỉnh sửa mã trước trên thiết bị, rồi sao chép/dán mã vào giao diện người dùng.
requirements.txt
# This file tells Python which modules it needs to import
SQLAlchemy==1.3.12
# If your database is MySQL, uncomment the following line:
#PyMySQL==0.9.3
# If your database is PostgreSQL, uncomment the following line:
#pg8000==1.13.2
main.py
# This file contains all the code used in the codelab.
import sqlalchemy
# Depending on which database you are using, you'll set some variables differently.
# In this code we are inserting only one field with one value.
# Feel free to change the insert statement as needed for your own table's requirements.
# Uncomment and set the following variables depending on your specific instance and database:
#connection_name = ""
#table_name = ""
#table_field = ""
#table_field_value = ""
#db_name = ""
#db_user = ""
#db_password = ""
# If your database is MySQL, uncomment the following two lines:
#driver_name = 'mysql+pymysql'
#query_string = dict({"unix_socket": "/cloudsql/{}".format(connection_name)})
# If your database is PostgreSQL, uncomment the following two lines:
#driver_name = 'postgres+pg8000'
#query_string = dict({"unix_sock": "/cloudsql/{}/.s.PGSQL.5432".format(connection_name)})
# If the type of your table_field value is a string, surround it with double quotes.
def insert(request):
request_json = request.get_json()
stmt = sqlalchemy.text('insert into {} ({}) values ({})'.format(table_name, table_field, table_field_value))
db = sqlalchemy.create_engine(
sqlalchemy.engine.url.URL(
drivername=driver_name,
username=db_user,
password=db_password,
database=db_name,
query=query_string,
),
pool_size=5,
max_overflow=2,
pool_timeout=30,
pool_recycle=1800
)
try:
with db.connect() as conn:
conn.execute(stmt)
except Exception as e:
return 'Error: {}'.format(str(e))
return 'ok'
Tạo hàm
- Trong trình duyệt, hãy truy cập vào Giao diện người dùng Bảng điều khiển Google Cloud Platform.
- Chọn Cloud Functions trong trình đơn Điều hướng.
- Nhấp vào TẠO HÀM trên thanh nút.
- Nhập tên cho hàm.
- Chọn điều kiện kích hoạt HTTP. (Ghi lại URL xuất hiện bên dưới mục kích hoạt. URL này sẽ có định dạng như sau: https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME)
- Trong phần Xác thực, hãy chọn Cho phép lệnh gọi chưa được xác thực để công khai hàm.
- Mở rộng Runtime, Build and Connections Settings (Cài đặt thời gian chạy, bản dựng và kết nối). Trong Runtime service account (Tài khoản dịch vụ thời gian chạy), hãy chọn một tài khoản dịch vụ có vai trò Cloud SQL Client (Ứng dụng Cloud SQL).
- Nhấp vào nút TIẾP THEO.
- Chọn Python 3.7 cho lựa chọn thời gian chạy.
- Chọn Trình chỉnh sửa nội tuyến cho lựa chọn mã nguồn.
- Trong cửa sổ trình soạn thảo mã, hãy xoá nội dung hiện có cho cả requirements.txt và main.py, rồi thay thế bằng các phiên bản đã chỉnh sửa của mã ở trên.
- Nhập insert làm tên của Điểm truy cập.
- Nhấp vào Deploy (Triển khai) và đợi trong khi hàm được tạo. Vòng quay sẽ dừng và dấu kiểm màu xanh lục sẽ xuất hiện trên trang tiếp theo khi chức năng này sẵn sàng sử dụng.
4. Kiểm thử hàm
- Trong trình duyệt, hãy truy cập vào Giao diện người dùng Bảng điều khiển Google Cloud Platform.
- Chọn Cloud Functions trong trình đơn Điều hướng.
- Nhấp vào tên của hàm mà bạn đã tạo trước đó.
- Chọn đường liên kết KIỂM THỬ ở giữa trang.
- Chọn KIỂM THỬ CHỨC NĂNG.
- Kết quả sẽ xuất hiện: ok (Nếu kiểm thử không thành công, bạn sẽ thấy dấu vết ngăn xếp để hỗ trợ gỡ lỗi.)
- Trong trình duyệt, hãy chuyển đến URL mà bạn đã lưu trước đó, khi tạo hàm. Nếu quên lưu URL, bạn có thể lấy URL đó từ đường liên kết KÍCH HOẠT.
- Kết quả ok cũng sẽ xuất hiện trong trình duyệt.
5. Dọn dẹp
Để tránh phát sinh phí cho tài khoản Google Cloud của bạn đối với các tài nguyên được dùng trong lớp học lập trình này, hãy làm theo các bước sau.
Xoá phiên bản Cloud SQL
- Chuyển đến trang Cloud SQL Instances (Các phiên bản Cloud SQL) trong Google Cloud Console.
- Chọn phiên bản bạn đã tạo để mở trang thông tin chi tiết về phiên bản.
- Trong thanh biểu tượng ở đầu trang, hãy nhấp vào Xoá.
- Trong cửa sổ Xoá phiên bản, hãy nhập tên phiên bản của bạn, rồi nhấp vào Xoá để xoá phiên bản đó. Bạn không thể sử dụng lại tên phiên bản trong khoảng 7 ngày sau khi xoá phiên bản.
Xoá Cloud Function
- Chuyển đến trang Cloud Functions trong Google Cloud Console.
- Chọn biểu tượng ba dấu chấm trong mục Hành động cho hàm của bạn rồi chọn Xoá.
- Xác nhận xoá bằng cách nhấp vào nút XOÁ.
6. Xin chúc mừng
Xin chúc mừng, bạn đã tạo thành công một Cloud Function hoạt động với Cloud SQL.
Cụ thể, bạn đã tạo một Cloud Function kết nối và ghi vào một phiên bản cơ sở dữ liệu Cloud SQL.
7. Tiếp theo là gì?
Hãy xem một số lớp học lập trình này...
- Kết nối với Cloud SQL: Compute Engine, IP riêng tư và Cloud SQL Proxy
- Giới thiệu về Thông tin chi tiết về Cloud SQL