Trong bài viết này tôi sẽ chia sẻ cho các bạn tổng quan về cloud functions
1. Google Cloud Functions là gì?
Google Cloud Functions là môi trường thực thi không có máy chủ.
Bạn viết các hàm đơn giản, có mục đích duy nhất đượ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, vì vậy Cloud Functions có thể được chạy với nhiều loại trigger type như:
Bạn có thể viết Hàm đám mây bằng một số ngôn ngữ lập trình được hỗ trợ:
Node.js
Runtime | Generation | Environment | Runtime ID | Runtime image |
---|---|---|---|---|
Node.js 20 | 1st gen, 2nd gen | Ubuntu 22.04 | nodejs20 | gcr.io/gae-runtimes/buildpacks/nodejs20/run |
Node.js 18 | 1st gen, 2nd gen | Ubuntu 22.04 | nodejs18 | gcr.io/gae-runtimes/buildpacks/nodejs18/run |
Node.js 16 | 1st gen, 2nd gen | Ubuntu 18.04 | nodejs16 | gcr.io/gae-runtimes/buildpacks/nodejs16/run |
Node.js 14 | 1st gen, 2nd gen | Ubuntu 18.04 | nodejs14 | gcr.io/gae-runtimes/buildpacks/nodejs14/run |
Node.js 12 | 1st gen, 2nd gen | Ubuntu 18.04 | nodejs12 | gcr.io/gae-runtimes/buildpacks/nodejs12s/run |
Node.js 10 | 1st gen, 2nd gen | Ubuntu 18.04 | nodejs10 | gcr.io/gae-runtimes/buildpacks/nodejs10/run |
Node.js 8 | 1st gen, 2nd gen | Ubuntu 18.04 | nodejs8 | gcr.io/gae-runtimes/buildpacks/nodejs8/run |
Node.js 6 | 1st gen, 2nd gen | Ubuntu 18.04 | nodejs6 | gcr.io/gae-runtimes/buildpacks/nodejs6/run |
Python
Runtime | Generation | Environment | Runtime ID | Runtime image |
---|---|---|---|---|
Python 3.12 | 1st gen, 2nd gen | Ubuntu 22.04 | python312 | gcr.io/gae-runtimes/buildpacks/python312/run |
Python 3.11 | 1st gen, 2nd gen | Ubuntu 22.04 | python311 | gcr.io/gae-runtimes/buildpacks/python311/run |
Python 3.10 | 1st gen, 2nd gen | Ubuntu 22.04 | python310 | gcr.io/gae-runtimes/buildpacks/python310/run |
Python 3.9 | 1st gen, 2nd gen | Ubuntu 18.04 | python39 | gcr.io/gae-runtimes/buildpacks/python39/run |
Python 3.8 | 1st gen, 2nd gen | Ubuntu 18.04 | python38 | gcr.io/gae-runtimes/buildpacks/python38/run |
Python 3.7 | 1st gen | Ubuntu 18.04 | python37 | gcr.io/gae-runtimes/buildpacks/python37/run |
Go
Runtime | Generation | Environment | Runtime ID | Runtime image |
---|---|---|---|---|
Go 1.22 | 2nd gen | Ubuntu 22.04 | go122 | gcr.io/gae-runtimes/buildpacks/go122/run |
Go 1.21 | 1st gen, 2nd gen | Ubuntu 22.04 | go121 | gcr.io/gae-runtimes/buildpacks/go121/run |
Go 1.20 | 1st gen, 2nd gen | Ubuntu 22.04 | go120 | gcr.io/gae-runtimes/buildpacks/go120/run |
Go 1.19 | 1st gen, 2nd gen | Ubuntu 22.04 | go119 | gcr.io/gae-runtimes/buildpacks/go119/run |
Go 1.18 | 1st gen, 2nd gen | Ubuntu 22.04 | go118 | gcr.io/gae-runtimes/buildpacks/go118/run |
Go 1.16 | 1st gen, 2nd gen | Ubuntu 18.04 | go116 | gcr.io/gae-runtimes/buildpacks/go116/run |
Go 1.13 | 1st gen, 2nd gen | Ubuntu 18.04 | go113 | gcr.io/gae-runtimes/buildpacks/go113/run |
Go 1.12 | 1st gen, 2nd gen | Ubuntu 18.04 | go112 | gcr.io/gae-runtimes/buildpacks/go112/run |
Go 1.11 | 1st gen, 2nd gen | Ubuntu 18.04 | go111 | gcr.io/gae-runtimes/buildpacks/go111/run |
Lưu ý: Chính sách phát hành của Go nêu rõ rằng mỗi bản phát hành chính của Go đều được hỗ trợ cho đến khi có hai bản phát hành chính mới hơn. Những ngày quan trọng có thể không có sẵn cho đến khi các phiên bản Go mới hơn được cung cấp công khai.
Java
Runtime | Generation | Environment | Runtime ID | Runtime image |
---|---|---|---|---|
Java 21 | 2nd gen | Ubuntu 22.04 | java21 | gcr.io/gae-runtimes/buildpacks/java21/run |
Java 17 | 1st gen, 2nd gen | Ubuntu 22.04 | java17 | gcr.io/gae-runtimes/buildpacks/java17/run |
Java 11 | 1st gen, 2nd gen | Ubuntu 18.04 | java11 | gcr.io/gae-runtimes/buildpacks/java11/run |
Ruby
Runtime | Generation | Environment | Runtime ID | Runtime image |
---|---|---|---|---|
Ruby 3.2 | 1st gen, 2nd gen | Ubuntu 22.04 | ruby32 | gcr.io/gae-runtimes/buildpacks/ruby32/run |
Ruby 3.0 | 1st gen, 2nd gen | Ubuntu 18.04 | ruby30 | gcr.io/gae-runtimes/buildpacks/ruby30/run |
Ruby 2.7 | 1st gen, 2nd gen | Ubuntu 18.04 | ruby27 | gcr.io/gae-runtimes/buildpacks/ruby27/run |
Ruby 2.6 | 1st gen, 2nd gen | Ubuntu 18.04 | ruby26 | gcr.io/gae-runtimes/buildpacks/ruby26/run |
PHP
Runtime | Environment | Generation | Runtime ID | Runtime image |
---|---|---|---|---|
PHP 8.3 | 2nd gen | Ubuntu 22.04 | php83 | gcr.io/gae-runtimes/buildpacks/php83/run |
PHP 8.2 | 1st gen, 2nd gen | Ubuntu 22.04 | php82 | gcr.io/gae-runtimes/buildpacks/php82/run |
PHP 8.1 | 1st gen, 2nd gen | Ubuntu 18.04 | php81 | gcr.io/gae-runtimes/buildpacks/php81/run |
PHP 7.4 | 1st gen, 2nd gen | Ubuntu 18.04 | php74 | gcr.io/gae-runtimes/buildpacks/php74/run |
.NET Core
Runtime | Generation | Environment | Runtime ID | Runtime image |
---|---|---|---|---|
.NET Core 8 | 2nd gen | Ubuntu 22.04 | dotnet8 | gcr.io/gae-runtimes/buildpacks/dotnet8/run |
.NET Core 6 | 1st gen, 2nd gen | Ubuntu 22.04 | dotnet6 | gcr.io/gae-runtimes/buildpacks/dotnet6/run |
.NET Core 3 | 1st gen, 2nd gen | Ubuntu 18.04 | dotnet3 | gcr.io/gae-runtimes/buildpacks/dotnet3/run |
Cloud Functions cung cấp hai phiên bản sản phẩm: Cloud Functions (1st gen), phiên bản gốc và Cloud Functions (2nd gen), phiên bản mới được xây dựng trên Cloud Run và Eventarc để cung cấp bộ tính năng nâng cao. Xem so sánh phiên bản Cloud Functions để biết thêm thông tin dưới đây:
Bảng so sánh
chức năng | Cloud Functions (1st gen) | Cloud Functions (2nd gen) |
---|---|---|
Image registry | Container Registry or Artifact Registry | Artifact Registry only |
Request timeout | 9 phút | 60 phút với HTTP-triggered functions và 9 phút với event-triggered functions |
Instance size | 8GB RAM với 2 vCPU | 16GiB RAM với 4 vCPU |
Concurrency | 1 concurrent request per function instance | Up to 1000 concurrent requests per function instance |
Traffic splitting | Not supported | Supported |
Event types | Hỗ trợ trực tiếp cho các sự kiện từ 7 nguồn | Hỗ trợ cho mọi loại sự kiện được Eventarc hỗ trợ, bao gồm hơn 90 nguồn sự kiện thông qua Nhật ký kiểm tra đám mây |
CloudEvents | Supported only in Ruby, .NET, and PHP runtimes | Supported in all language runtimes |
Security Updates | When function is deployed or redeployed Automatic updates | When function is deployed or redeployed |
2. Connect and extend cloud services
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 khi tải tệp lên Cloud Storage, thay đổi nhật ký hoặc tin nhắn đến về chủ đề Pub/Sub. Chức năng đám mây 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 số lượng trường hợp sử dụng ngày càng tăng bằng logic lập trình tùy ý. 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, bao gồm Cloud Vision cũng như nhiều dịch vụ khác. Ngoài ra, Cloud Functions còn được nhiều thư viện máy khách Google Cloud hỗ trợ, giúp đơn giản hóa hơn nữa các hoạt động tích hợp này.
3. Events and triggers
Sự kiện đám mây là những điều xảy ra trong môi trường đám mây của bạn. Đây có thể là những việc như thay đổ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 phiên bản máy ảo mới được tạo.
Các sự kiện xảy ra cho dù bạn có chọn phản hồi chúng hay không. Bạn tạo phản hồi cho một sự kiện bằng trình kích hoạt. Trình kích hoạt là một tuyên bố rằng bạn quan tâm đến một sự kiện hoặc tập hợp sự kiện nhất định. Việc liên kết một hàm với một trình kích hoạt cho phép bạn nắm bắt và hành động theo các sự kiện. Để biết thêm thông tin về cách tạo trình kích hoạt và liên kết chúng với các chức năng của bạn, hãy xem Trình kích hoạt chức năng đám mây.
4. Use cases
Use case | Description |
---|---|
Data processing / ETL | Lắng nghe và phản hồi các sự kiện trên Cloud Storage, chẳng hạn như khi tệp được tạo, thay đổi hoặc xóa. Xử lý hình ảnh, thực hiện chuyển mã video, xác thực và chuyển đổi dữ liệu cũng như gọi bất kỳ dịch vụ nào trên internet từ Chức năng đám mây của bạn. |
Webhooks | Thông qua trình kích hoạt HTTP đơn giản, hãy phản hồi các sự kiện bắt nguồn từ hệ thống của bên thứ 3 như GitHub, Slack, Stripe hoặc từ bất kỳ nơi nào có thể gửi yêu cầu HTTP. |
Lightweight APIs | Soạn thảo các ứng dụng từ các phần logic nhẹ, được ghép nối lỏng lẻo, có thể xây dựng nhanh chóng và mở rộng quy mô ngay lập tức. Các hàm của bạn có thể được điều khiển theo sự kiện hoặc được gọi trực tiếp qua HTTP/S. |
Mobile backend | Sử dụng nền tảng di động của Google dành cho nhà phát triển ứng dụng, Firebase và viết chương trình phụ trợ di động của bạn trong Cloud Functions. Lắng nghe và phản hồi các sự kiện từ Firebase Analytics, Cơ sở dữ liệu thời gian thực, Xác thực và Lưu trữ. |
IoT | Hãy tưởng tượng hàng chục hoặc hàng trăm nghìn thiết bị truyền dữ liệu vào Pub/Sub, từ đó khởi chạy Chức năng đám mây để xử lý, chuyển đổi và lưu trữ dữ liệu. Cloud Functions cho phép bạn thực hiện điều đó theo cách hoàn toàn không có máy chủ. |
One Reply to “Google cloud platform – Cloud Functions (p1)”