1. Tổng quan

Với Cloud Functions, bạn có thể viết các hàm đơn giản, một mục đích được gắn vào các sự kiện phát ra từ cơ sở hạ tầng và dịch vụ đám mây của bạn. Cloud Function của bạn sẽ được kích hoạt khi một sự kiện đang được theo dõi được kích hoạt. Mã của bạn sẽ thực thi trong một môi trường được quản lý hoàn toàn. Bạn không cần phải cung cấp bất kỳ cơ sở hạ tầng nào hoặc lo lắng về việc quản lý bất kỳ máy chủ nào.
Hiện tại, bạn có thể viết Cloud Functions bằng Javascript, Python hoặc Go. Trong trường hợp Javascript, các hàm này sẽ thực thi trong môi trường Node.js trên Google Cloud Platform. Bạn có thể lấy Cloud Function và chạy nó trong bất kỳ thời gian chạy Node.js tiêu chuẩn nào, giúp việc di chuyển và kiểm thử cục bộ trở nên dễ dàng.
Kết nối và mở rộng các dịch vụ đám mây
Cloud Functions cung cấp một lớp logic kết nối cho phép bạn viết mã để kết nối và mở rộng các dịch vụ đám mây. Lắng nghe và phản hồi một tệp được tải lên Cloud Storage, một thay đổi về nhật ký hoặc một tin nhắn đến trên một chủ đề Cloud Pub/Sub. Cloud Functions tăng cường các dịch vụ đám mây hiện có và cho phép bạn giải quyết ngày càng nhiều trường hợp sử dụng bằng logic lập trình tuỳ ý. Cloud Functions có quyền truy cập vào thông tin xác thực Tài khoản dịch vụ của Google và do đó được xác thực liền mạch với phần lớn các dịch vụ của Google Cloud Platform, chẳng hạn như Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API, cũng như nhiều dịch vụ khác.

Sự kiện và điều kiện kích hoạt
Sự kiện trên đám mây là những sự kiện xảy ra trong môi trường đám mây của bạn.Đây có thể là những sự kiện như thay đổi đối với dữ liệu trong cơ sở dữ liệu, tệp được thêm vào hệ thống lưu trữ hoặc một phiên bản máy ảo mới được tạo.
Sự kiện xảy ra bất kể bạn có chọn phản hồi hay không. Bạn tạo một phản hồi cho sự kiện bằng điều kiện kích hoạt. Điều kiện kích hoạt là một khai báo cho biết bạn quan tâm đến một sự kiện hoặc một nhóm sự kiện nhất định. Việc liên kết một hàm với một điều kiện kích hoạt cho phép bạn ghi lại và hành động dựa trên các sự kiện. Để biết thêm thông tin về cách tạo điều kiện kích hoạt và liên kết điều kiện đó với các hàm, hãy xem bài viết Sự kiện và điều kiện kích hoạt.
Không máy chủ
Cloud Functions giúp bạn không phải quản lý máy chủ, định cấu hình phần mềm, cập nhật khung và vá hệ điều hành. Google quản lý hoàn toàn phần mềm và cơ sở hạ tầng để bạn chỉ cần thêm mã. Ngoài ra, việc cung cấp tài nguyên sẽ diễn ra tự động để phản hồi các sự kiện. Điều này có nghĩa là một hàm có thể mở rộng quy mô từ một vài lệnh gọi mỗi ngày lên đến hàng triệu lệnh gọi mà bạn không cần làm gì cả.
Trường hợp sử dụng
Các khối lượng công việc không đồng bộ như ETL đơn giản hoặc các quy trình tự động hoá trên đám mây như kích hoạt bản dựng ứng dụng hiện không còn cần máy chủ riêng và nhà phát triển để thiết lập. Bạn chỉ cần triển khai một Cloud Function được liên kết với sự kiện mà bạn muốn là xong.
Tính chất theo yêu cầu, chi tiết của Cloud Functions cũng khiến nó trở thành lựa chọn hoàn hảo cho các API và webhook có dung lượng nhẹ. Ngoài ra, việc tự động cung cấp các điểm cuối HTTP khi bạn triển khai một Hàm HTTP có nghĩa là bạn không cần phải định cấu hình phức tạp như khi sử dụng một số dịch vụ khác.
Lớp học thực hành này hướng dẫn bạn cách tạo, triển khai và kiểm thử một hàm trên đám mây bằng bảng điều khiển Google Cloud. Bạn sẽ :
- Tạo một hàm trên đám mây
- Triển khai và kiểm thử hàm
- Xem nhật ký
2. 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 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 G Suite, bạn phải tạo một tài khoản.)
Hãy nhớ mã dự án, một tên duy nhất trên tất cả các dự án trên Google Cloud (tên ở trên đã được sử dụng và sẽ không hoạt động đối với bạn, xin lỗi!). Sau này trong lớp học lập trình này, chúng ta sẽ gọi nó là PROJECT_ID.
- 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 của Google 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ó. Hãy nhớ làm theo mọi hướng dẫn trong phần "Dọn dẹp" để biết cách 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. 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.
Google Cloud Shell
Mặc dù bạn có thể vận hành Google Cloud và Cloud Functions từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, chúng ta sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên đám mây.
Máy ảo dựa trên Debian này được trang bị tất cả các công cụ phát triển mà bạn cần. Nền tảng này cung cấp một thư mục chính có dung lượng 5 GB và chạy trong Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Điều này có nghĩa là bạn chỉ cần một trình duyệt (có, trình duyệt này hoạt động trên Chromebook) cho lớp học lập trình này.
- Để kích hoạt Cloud Shell từ Bảng điều khiển Cloud, bạn chỉ cần nhấp vào Kích hoạt Cloud Shell
(mất vài phút để cung cấp và kết nối với môi trường).
Sau khi kết nối với Cloud Shell, bạn sẽ thấy rằng mình đã được xác thực và dự án đã được đặt thành PROJECT_ID.
gcloud auth list
Đầu ra của lệnh
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Đầu ra của lệnh
[core] project = <PROJECT_ID>
Nếu vì lý do nào đó mà dự án chưa được thiết lập, bạn chỉ cần đưa ra lệnh sau:
gcloud config set project <PROJECT_ID>
Bạn đang tìm PROJECT_ID? Kiểm tra mã nhận dạng bạn đã dùng trong các bước thiết lập hoặc tìm mã nhận dạng đó trong trang tổng quan của Cloud Console:
Cloud Shell cũng đặt một số biến môi trường theo mặc định, có thể hữu ích khi bạn chạy các lệnh trong tương lai.
echo $GOOGLE_CLOUD_PROJECT
Đầu ra của lệnh
<PROJECT_ID>
- Cuối cùng, hãy đặt cấu hình dự án và vùng mặc định.
gcloud config set compute/zone us-central1-f
Bạn có thể chọn nhiều múi giờ khác nhau. Để biết thêm thông tin, hãy xem phần Khu vực và vùng.
3. Tạo một hàm
Trong bước này, bạn sẽ tạo một hàm trên đám mây bằng bảng điều khiển.
- Trong bảng điều khiển, hãy nhấp vào Trình đơn điều hướng > Cloud Functions.

- Nhấp vào "TẠO HÀM" :

- Đặt tên cho hàm của bạn là
GCFunctionvà giữ nguyên các giá trị mặc định khác : phân bổ bộ nhớ, HTTP làm điều kiện kích hoạt, trình chỉnh sửa nội tuyến, thời gian chạy mặc định và mã mẫu mặc định.

- Trong hộp thoại "create function" (tạo hàm), ở dưới cùng, hãy nhấp vào "Create" (Tạo) để triển khai hàm:

Sau khi bạn nhấp vào Tạo, bảng điều khiển sẽ chuyển hướng đến trang Tổng quan về Cloud Functions.
Trong khi hàm đang được triển khai, biểu tượng bên cạnh hàm là một biểu tượng quay nhỏ. Khi được triển khai, biểu tượng xoay sẽ là dấu kiểm màu xanh lục. Nếu có vấn đề, bạn sẽ nhận được thông báo kèm theo biểu tượng màu đỏ và đường liên kết đến nhật ký để biết vấn đề đã xảy ra (thường là vấn đề trong mã của bạn).

Vậy là xong! Hàm của bạn hiện đang hoạt động và sẵn sàng được kích hoạt thông qua HTTP.
4. Kiểm thử hàm
Trong trang Tổng quan về Cloud Functions, hãy hiển thị trình đơn cho chức năng của bạn rồi nhấp vào Kiểm thử chức năng :

Trong trường Sự kiện kích hoạt, hãy nhập văn bản sau đây giữa các dấu ngoặc nhọn {} rồi nhấp vào Kiểm thử hàm.
Trong trường Output (Đầu ra), bạn sẽ thấy thông báo Success: Hello World! (Thành công: Hello World!)
Trong trường Nhật ký, mã trạng thái 200 cho biết thành công. Xin lưu ý rằng có thể mất một phút thì nhật ký mới xuất hiện.

5. Xem nhật ký hàm
Nhấp vào mũi tên màu xanh dương để quay lại trang Tổng quan về Cloud Functions :

Hiện trình đơn cho hàm của bạn, rồi nhấp vào Xem nhật ký :

Dưới đây là ví dụ về nhật ký :

Xin lưu ý rằng bạn có thể lọc nhật ký theo chức năng, theo mức độ nghiêm trọng và tìm kiếm thông qua nhãn hoặc một số văn bản tuỳ ý.
Ứng dụng của bạn đã được triển khai, kiểm thử và bạn có thể xem nhật ký.
6. Dọn dẹp tài nguyên
Bạn không thực sự cần dọn dẹp tài nguyên vì đây là điện toán phi máy chủ : việc mở rộng quy mô về 0 cũng có nghĩa là giảm chi phí về 0. Vì vậy, nếu hàm của bạn không nhận được lưu lượng truy cập, thì sẽ không phát sinh chi phí. Ngoài ra, 2 triệu lượt gọi Cloud Functions đầu tiên mỗi tháng là miễn phí. Hãy xem trang thông tin về giá để biết thêm chi tiết.
Nếu bạn muốn xoá hàm, chỉ cần chuyển đến trang tổng quan, chọn hàm đó rồi nhấp vào XOÁ :

7. Bước tiếp theo
Cloud Functions còn nhiều điều thú vị khác dành cho bạn! Hãy tham khảo các lớp học lập trình khác và trang sản phẩm cũng như tài liệu của trang này.
Bạn cũng nên xem những thông tin sau :
- Gọi Cloud Functions (các điều kiện kích hoạt có sẵn để gọi hàm)
- Giám sát Cloud Functions (nhật ký, báo cáo lỗi và nhiều thông tin khác)
- ... hoặc nhiều lớp học lập trình khác trong danh mục Serverless