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

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:

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.