Bắt đầu sử dụng các hàm Cloud Run (HTTP)

1. Giới thiệu

Tổng quan

Các hàm trong Cloud Run là một cách mới để triển khai khối lượng công việc bằng cách sử dụng các mô hình sự kiện và chữ ký hàm quen thuộc của GCF. Thay vì sử dụng các cấu hình triển khai và quy trình xây dựng cố định 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.

Nhờ các chức năng trong Cloud Run, chúng tôi cung cấp trải nghiệm người dùng đơn giản khi triển khai nguồn Cloud Run, giúp nhà phát triển kiểm soát hoàn toàn tải công việc của mình bằng cấu hình Cloud Run.

Lớp học lập trình này sử dụng các mẫunodejs 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ệ 2 bằng ngôn ngữ mà bạn chọn:

Kiến thức bạn sẽ học được

  • Cách triển khai chức năng Cloud Run được kích hoạt bằng một yêu cầu HTTP

2. Đặt 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 gcloud CLI. 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 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

Trước khi có thể bắt đầu sử dụng lớp học lập trình này, bạn sẽ cần bật một số API. Lớp học lập trình này yêu cầu 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, tạo một thư mục cho mã nguồn và cd vào thư mục đó.

mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_

Sau đó, hãy tạo một tệp package.json với nội dung sau:

{
    "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
    }
}

Tiếp theo, hãy tạo một tệp index.js với 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 gói bản dựng để biến đổi mã nguồn hàm thành hình ảnh vùng chứa sẵn sàng cho việc sản xuất.

Xin lưu ý những điều sau:

  • cờ –nguồn 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ờ –hàm (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 được gọi
  • (không bắt buộc) –no-cho phép-chưa được xác thực để ngăn chức năng của bạn không được gọi công khai

5. Kiểm thử hàm

Khi triển khai xong, 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 danh tính hoặc mã nhận dạng của một nguyên tắc có vai trò Trình gọi lệnh Cloud Run, 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!

Bạn nên tham khảo tài liệu về các hàm của Cloud Run

Nội dung đã đề cập

  • Cách triển khai chức năng Cloud Run được kích hoạt bằng một yêu cầu HTTP

7. Dọn dẹp

Để tránh các khoản phí vô tình (ví dụ: nếu các dịch vụ Cloud Run vô tình bị gọi nhiều lần hơn mức phân bổ lệnh gọi Cloud Run hằng tháng của bạn ở cấp miễn phí), bạn có thể xoá Cloud Run hoặc xoá dự án bạn đã tạo ở Bước 2.

Để xoá hàm Cloud Run, hãy truy cập vào Cloud Run Cloud Console 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 mà bạn đã tạo ở Bước 2 rồi chọn Xoá. Nếu xoá dự án, bạn sẽ phải thay đổi các dự án trong Cloud SDK của mình. Bạn có thể xem danh sách tất cả dự án hiện có bằng cách chạy gcloud projects list.