Bắt đầu với Cloud Functions

1. Tổng quan

Cloud-Functions.png

Với Cloud Functions, bạn có thể viết các hàm đơn giản, mục đích duy nhất được đính kèm vào các sự kiện được tạo ra từ dịch vụ và cơ sở hạ tầng đám mây của bạn. Chức năng đám mây của bạn được kích hoạt khi một sự kiện đang xem đượ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. Không cần cung cấp bất kỳ cơ sở hạ tầng nào hay không cần lo lắng về việc quản lý bất kỳ máy chủ nào.

Cloud Functions hiện có thể được viết bằng JavaScript, Python hoặc Go. Đối với JavaScript, các phương thức 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 trong bất kỳ thời gian chạy Node.js chuẩn nào để giúp dễ dàng di chuyển cả tính di động và kiểm thử cục bộ.

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 liên kết cho phép bạn viết mã để kết nối và mở rộng các dịch vụ đám mây. Nghe và phản hồi tệp đã tải lên Cloud Storage, thay đổi trong nhật ký hoặc tin nhắn đến về một chủ đề trên Cloud Pub/Sub. Cloud Functions bổ sung cho 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 đăng nhập Tài khoản dịch vụ Google và do đó được xác thực liền mạch với phần lớn dịch vụ của Google Cloud Platform như Datastore, Cloud Spanner, Cloud Translation API, Cloud Vision API cũng như nhiều dịch vụ khác.

907ffb96feada611.pngS

Sự kiện và điều kiện kích hoạt

Sự kiện trên đám mây là những hoạt động diễn ra trong môi trường đám mây của bạn.Những sự kiện này có thể xảy ra với những 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 đang được tạo.

Các sự kiện xảy ra cho dù bạn có chọn phản hồi các sự kiện đó hay không. Bạn tạo phản hồi cho sự kiện bằng trình kích hoạt. Điều kiện kích hoạt là nội dung khai báo rằng 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 điều kiện kích hoạt cho phép bạn nắm bắt và xử lý các sự kiện. Để biết thêm thông tin về cách tạo và liên kết điều kiện kích hoạt với hàm của bạn, hãy xem phần Sự kiện và điều kiện kích hoạt.

Không máy chủ

Chức năng đám mây loại bỏ công việc 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. Phần mềm và cơ sở hạ tầng được Google quản lý hoàn toàn nên bạn chỉ cần thêm mã. Ngoài ra, việc cấp phép tài nguyên diễn ra tự động để phản hồi các sự kiện. Tức 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 cho đến hàng triệu lệnh gọi mà bạn không phải làm gì cả.

Trường hợp sử dụng

Giờ đây, các tải công việc không đồng bộ (như ETL nhẹ) hoặc quy trình tự động hoá trên đám mây (như kích hoạt bản dựng ứng dụng) không còn cần máy chủ của riêng họ và nhà phát triển phải kết nối nữa. Bạn chỉ cần triển khai Chức năng đám mây được liên kết với sự kiện bạn muốn và thế là xong.

Bản chất chi tiết, theo yêu cầu của Cloud Functions cũng khiến Cloud Functions trở thành lựa chọn hoàn hảo cho các API và webhook nhẹ. Ngoài ra, việc tự động cấp phép các điểm cuối HTTP khi bạn triển khai Hàm HTTP có nghĩa là bạn không cần phải thiết lập cấu hình phức tạp như đã áp dụng đối với một số dịch vụ khác.

Phòng thí nghiệm thực tế này hướng dẫn bạn cách tạo, triển khai và thử nghiệm một chức năng trên đám mây bằng bảng điều khiển Google Cloud. Bạn sẽ :

  • Tạo một hàm đá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 tiến độ riêng

  1. Đăng nhập vào Cloud Console rồi tạo dự án mới hoặc sử dụng lại 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.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

Xin lưu ý rằng mã dự án là một tên riêng biệt trong tất cả dự án Google Cloud (tên ở trên đã được sử dụng nên sẽ không phù hợp với bạn!). Lớp này sẽ được đề cập sau trong lớp học lập trình này là PROJECT_ID.

  1. Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên của Google Cloud.

Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Hãy nhớ làm theo mọi hướng dẫn trong phần "Dọn dẹp" sẽ tư vấn cho bạn cách tắt tài nguyên để bạn không phải chịu thanh toán ngoài 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í 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 trong Đám mây.

Máy ảo dựa trên Debian này được tải tất cả các công cụ phát triển mà bạn cần. Dịch vụ này cung cấp thư mục gốc 5 GB ổn định và chạy trong Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Tức là tất cả những gì bạn cần để thực hiện lớp học lập trình này là một trình duyệt (vâng, trình duyệt này hoạt động trên Chromebook).

  1. Để kích hoạt Cloud Shell trong Cloud Console, bạn chỉ cần nhấp vào Kích hoạt Cloud Shell fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q (chỉ mất vài phút để cấp phép và kết nối với môi trường).

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Ảnh chụp màn hình lúc 10:13.43 chiều 14/6/2017.png

Sau khi kết nối với Cloud Shell, bạn sẽ thấy mình đã được xác thực và dự án đã được đặt thành PROJECT_ID.

gcloud auth list

Kết quả lệnh

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Kết quả lệnh

[core]
project = <PROJECT_ID>

Nếu vì lý do nào đó mà dự án không được thiết lập, chỉ cần phát hành lệnh sau:

gcloud config set project <PROJECT_ID>

Bạn đang tìm PROJECT_ID? Hãy xem mã nhận dạng bạn đã sử dụng ở các bước thiết lập hoặc tra cứu trong trang tổng quan Cloud Console:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell cũng đặt một số biến môi trường theo mặc định. Điều này có thể hữu ích khi bạn chạy các lệnh sau này.

echo $GOOGLE_CLOUD_PROJECT

Kết quả lệnh

<PROJECT_ID>
  1. Cuối cùng, đặ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 vùng khác nhau. Để biết thêm thông tin, hãy xem Khu vực và Vùng.

3. Tạo hàm

Ở 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 > Chức năng đám mây.

fe64222954f5f372.png

  • Nhấp vào "TẠO CHỨC NĂNG" :

7adca9640ca2e5a6.pngS

  • Đặt tên cho hàm là GCFunction và giữ lại 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 cùng dòng, thời gian chạy mặc định và mã mẫu mặc định.

795f1fsc0f039bb.png.

  • Khi vẫn ở trong phần "tạo hàm" trong hộp thoại, hãy nhấp vào "Tạo" ở dưới cùng để triển khai hàm này:

b68c3647b771e6f9.png

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.

Khi hàm đang được triển khai, biểu tượng bên cạnh là một vòng quay nhỏ. Khi được triển khai, vòng quay sẽ là một dấu kiểm màu xanh lục. Nếu có vấn đề, bạn sẽ được thông báo bằng một biểu tượng màu đỏ và một đường liên kết đến nhật ký để tìm hiểu xem đã xảy ra lỗi gì (có thể là một vấn đề trong mã của bạn).

3ec684b1b4906657.pngS

Vậy là xong! Hàm của bạn hiện đã hoạt động và sẵn sàng kích hoạt qua HTTP.

4. Kiểm thử hàm

Trên trang Tổng quan về hàm đám mây, hãy hiển thị trình đơn cho hàm của bạn rồi nhấp vào Chức năng kiểm tra :

74e310ee6663bb3c.png.

Trong trường Kích hoạt sự kiện, hãy nhập văn bản sau vào giữa các dấu ngoặc {} 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 (Thành công): Hello World!

Trong trường Logs (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 để nhật ký xuất hiện.

a876def9cbf24a45.png

5. Xem nhật ký chức năng

Nhấp vào mũi tên màu xanh dương để quay lại trang Tổng quan về Chức năng đám mây :

8917a2bfa4fb9502.pngS

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

e97e6ec1fc17dfd7.png

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

d91a00cf4457fa84.png

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 qua nhãn hoặc văn bản dạng tự do.

Ứng dụng của bạn đã được triển khai, kiểm thử và bạn đã xem được nhật ký.

6. Tài nguyên dọn dẹp

Vâng, bạn thực sự không cần dọn dẹp các tài nguyên vì đây là điện toán không máy chủ : chia tỷ lệ về 0 có nghĩa là cũng chia tỷ lệ 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ệnh gọi Hàm đám mây đầu tiên mỗi tháng đều miễn phí. Hãy truy cập vào trang giá để biết thêm chi tiết.

Nếu muốn xoá hàm này, bạn chỉ cần chuyển đến trang tổng quan, chọn hàm rồi nhấp vào XOÁ :

4fe11e1b41b32ba2.png.

7. Các bước tiếp theo

Cloud Functions còn nhiều tính năng khác nữa dành cho bạn! Hãy tham khảo các lớp học lập trình khác, trang sản phẩm cũng như tài liệu của lớp học lập trình đó.

Bạn cũng nên xem các tài liệu sau :