1. Giới thiệu
Tổng quan
Hàm Cloud Run là một cách mới để triển khai tải bằng cách sử dụng chữ ký hàm và các mô hình tạo sự kiện GCF quen thuộc. Thay vì sử dụng quy trình xây dựng và cấu hình triển khai theo ý kiến của chúng tôi, các hàm Cloud Run cho phép bạn kiểm soát trực tiếp Dịch vụ cơ bản được tạo trên Cloud Run.
Với các hàm Cloud Run, chúng tôi cung cấp UX đơn giản của tính năng triển khai nguồn Cloud Run, giúp nhà phát triển kiểm soát hoàn toàn các tải công việc của họ bằng cách sử dụng cấu hình Cloud Run.
Lớp học lập trình này sử dụng các mẫu nodejs trong các ví dụ bên dưới. Tuy nhiên, bạn có thể sử dụng mã mẫu Cloud Functions thế hệ thứ 2 bằng ngôn ngữ mà bạn chọn:
- Các mẫu hàm Python
- Mẫu hàm Node.js
- Các mẫu hàm Go
- Mẫu hàm Java
- Mẫu hàm PHP
- Các mẫu hàm Ruby
- Các mẫu hàm.NET
Kiến thức bạn sẽ học được
- Cách triển khai một hàm Cloud Run được kích hoạt bằng yêu cầu HTTP
2. Đặt các biến môi trường và bật API
Nâng cấp gcloud CLI
Trước tiên, bạn cần cài đặt một phiên bản gần đây của giao diện dòng lệnh gcloud. Bạn có thể cập nhật CLI bằng cách chạy lệnh sau:
gcloud components update
Thiết lập các biến môi trường
Bạn có thể thiết lập các biến môi trường sẽ được dùng trong suốt lớp học lập trình này.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
Bật API
Để có thể bắt đầu sử dụng lớp học lập trình này, bạn cần bật một số API. Lớp học lập trình này yêu cầu bạn sử dụng các API sau. Bạn có thể bật các API đó bằng cách chạy lệnh sau:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
storage.googleapis.com \
artifactregistry.googleapis.com
3. Tạo một hàm HTTP
Trước tiên, hãy tạo một thư mục cho mã nguồn và chuyển đến thư mục đó.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Sau đó, hãy tạo một tệp package.json có nội dung sau:
{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
Tiếp theo, hãy tạo tệp index.js có nội dung sau:
const functions = require("@google-cloud/functions-framework");
functions.http("helloHttp", (req, res) => {
res.send(`Hello ${req.query.name || req.body.name || "World"}!`);
});
4. Triển khai hàm
Giờ đây, bạn có thể triển khai hàm Cloud Run bằng cách chạy lệnh sau:
gcloud beta run deploy $SERVICE_NAME \
--source . \
--function helloHttp \
--region us-central1 \
--no-allow-unauthenticated
Lệnh này sử dụng buildpack để chuyển đổi mã nguồn hàm của bạn thành một hình ảnh vùng chứa sẵn sàng cho hoạt động sản xuất.
Xin lưu ý những điều sau:
- cờ –source được dùng để yêu cầu Cloud Run tạo hàm thành một dịch vụ dựa trên vùng chứa có thể chạy
- cờ –function (mới) được dùng để đặt điểm truy cập của dịch vụ mới thành chữ ký hàm mà bạn muốn gọi
- (không bắt buộc) –no-allow-unauthenticated để ngăn hàm của bạn có thể được gọi công khai
5. Kiểm thử hàm
Khi quá trình triển khai hoàn tất, bạn sẽ thấy URL của dịch vụ. Để gọi hàm này, bạn cần gửi một yêu cầu đã xác thực bằng mã thông báo nhận dạng của bạn hoặc mã thông báo nhận dạng của một nguyên tắc có vai trò Cloud Run Invoker, như minh hoạ dưới đây:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. Xin chúc mừng!
Chúc mừng bạn đã hoàn thành lớp học lập trình này!
Bạn nên xem tài liệu về các hàm Cloud Run
Nội dung đã đề cập
- Cách triển khai một hàm Cloud Run được kích hoạt bằng yêu cầu HTTP
7. Dọn dẹp
Để tránh bị tính phí ngoài ý muốn (ví dụ: nếu các dịch vụ Cloud Run được gọi nhiều lần hơn hạn mức gọi Cloud Run hằng tháng của bạn trong cấp miễn phí), bạn có thể xoá Cloud Run hoặc xoá dự án mà bạn đã tạo ở Bước 2.
Để xoá hàm Cloud Run, hãy truy cập Cloud Console của Cloud Run tại https://console.cloud.google.com/run rồi xoá dịch vụ crf-http-codelab.
Nếu chọn xoá toàn bộ dự án, bạn có thể truy cập vào https://console.cloud.google.com/cloud-resource-manager, chọn dự án bạn đã tạo ở Bước 2 rồi chọn Xoá. Nếu xoá dự án, bạn sẽ cần thay đổi dự án trong Cloud SDK. Bạn có thể xem danh sách tất cả các dự án có sẵn bằng cách chạy gcloud projects list.