Lưu các yêu cầu HTTP vào vùng đệm với Cloud Tasks

1. Giới thiệu

c6ac6ed05292f13e.png

Cloud Tasks là một dịch vụ xếp hàng được quản lý toàn diện, dùng để quản lý việc thực thi, điều phối và phân phối số lượng lớn công việc.

Cloud Tasks cho phép bạn tách riêng các phần công việc, gọi là tác vụ, có thể được thực hiện độc lập (ví dụ: tác vụ cập nhật mục nhập cơ sở dữ liệu), bên ngoài luồng ứng dụng chính của bạn và gửi chúng đi xử lý không đồng bộ bằng các trình xử lý mà bạn tạo.

Tác vụ đã giảm tải được thêm vào hàng đợi, tác vụ này sẽ duy trì tác vụ cho đến khi được thực thi thành công hoặc gặp lỗi. Dựa trên cấu hình, hàng đợi cũng có thể đóng vai trò là công cụ kiểm soát luồng điều phối. Bạn sẽ tạo và định cấu hình hàng đợi này sau đó do dịch vụ Cloud Tasks quản lý. Sau khi thêm tác vụ, hàng đợi sẽ điều phối tác vụ đó đi và đảm bảo worker xử lý chúng một cách đáng tin cậy.

d59ffe8d34138c88.png

Dưới đây là một số tính năng chính của Cloud Tasks:

  • Mục tiêu HTTP: Thêm các nhiệm vụ nhắm đến bất kỳ dịch vụ HTTP nào đang chạy trên Compute Engine, Google Kubernetes Engine, Cloud Run, Cloud Functions hoặc các hệ thống tại cơ sở hạ tầng riêng theo cách bảo mật bằng phương thức xác thực OAuth/OIDC theo tiêu chuẩn ngành.
  • Loại bỏ việc trùng lặp: Những việc cần làm đã thêm nhiều lần sẽ chỉ được gửi đi một lần.
  • Phân phối được đảm bảo: Chúng tôi đảm bảo việc phân phối công việc ít nhất một lần và hầu hết công việc sẽ được giao đúng một lần.
  • Kiểm soát tốc độ và thử lại: Kiểm soát quá trình thực thi bằng cách thiết lập tốc độ gửi tác vụ, số lần thử tối đa và khoảng thời gian tối thiểu để chờ giữa các lần thử.
  • Lập lịch trong tương lai: Kiểm soát thời gian thực hiện một tác vụ.

Trong lớp học lập trình này, trước tiên, bạn sẽ tìm hiểu cách tạo và sử dụng hàng đợi Cloud Tasks thông thường cho các tác vụ mục tiêu HTTP. Sau đó, bạn sẽ tìm hiểu cách sử dụng tính năng ghi đè URI HTTP ở cấp hàng đợi và BufferTask API mới để dễ dàng lưu các yêu cầu HTTP qua Cloud Tasks.

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

  • Cách tạo tác vụ mục tiêu HTTP.
  • Cách tạo tác vụ mục tiêu HTTP bằng cơ chế ghi đè URI HTTP ở cấp độ hàng đợi mới.
  • Cách thay đổi các tác vụ đang chờ xử lý bằng cơ chế ghi đè URI HTTP ở cấp độ hàng đợi mới.
  • Cách dễ dàng lưu các yêu cầu HTTP vào vùng đệm bằng BufferTask API mới.

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 Google 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 Google Workspace, bạn phải tạo một tài khoản.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng. Bạn luôn có thể cập nhật ứng dụng.
  • Mã dự án là duy nhất trong tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường bạn không quan tâm đến sản phẩm đó là gì. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham khảo Mã dự án của mình (thường được xác định là PROJECT_ID). Nếu không thích mã đã tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Ngoài ra, bạn có thể thử cách riêng của mình để xem có thể sử dụng hay không. Bạn không thể thay đổi mã này sau bước này và mã vẫn giữ nguyên trong thời gian dự án.
  • Đối với thông tin của bạn, có giá trị thứ ba, Project Number (Số dự án), mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu này.
  1. Tiếp theo, bạn sẽ phải bật tính năng thanh toán trong Cloud Console để sử dụng API/tài nguyên trên đám mây. Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Để tắt các tài nguyên nhằm tránh phát sinh việc thanh toán ngoài hướng dẫn này, bạn có thể xoá các tài nguyên bạn đã tạo hoặc xoá dự án. 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.

Khởi động Cloud Shell

Mặc dù bạn có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trong Đám mây.

Trong Google Cloud Console, hãy nhấp vào biểu tượng Cloud Shell ở thanh công cụ trên cùng bên phải:

55efc1aaa7a4d3ad.pngS

Sẽ chỉ mất một chút thời gian để cấp phép và kết nối với môi trường. Sau khi hoàn tất, bạn sẽ thấy như sau:

7ffe5cbb04455448.pngS

Máy ảo này chứa tất cả các công cụ phát triển mà bạn cần. Phiên bản này cung cấp thư mục gốc có dung lượng ổn định 5 GB và chạy trên 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. Bạn có thể thực hiện mọi công việc trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt gì cả.

3. Tạo hàng đợi thông thường cho các tác vụ mục tiêu HTTP

Trong bước đầu tiên này, bạn sẽ tìm hiểu cách tạo hàng đợi Cloud Tasks thông thường và thêm tác vụ HTTP vào hàng đợi đó để nhắm mục tiêu dịch vụ Cloud Run.

d4f09a342c8eab.png

Tác vụ mục tiêu HTTP là gì?

Các tác vụ đích HTTP có thể nhắm đến mọi dịch vụ HTTP đang chạy trên Compute Engine, Google Kubernetes Engine, Cloud Run, Cloud Functions hoặc các hệ thống tại cơ sở hạ tầng riêng theo cách bảo mật bằng cách sử dụng phương thức xác thực OAuth/OIDC theo tiêu chuẩn ngành.

Triển khai dịch vụ Cloud Run

Trước tiên, hãy đảm bảo bạn đã bật các API bắt buộc:

gcloud services enable \
  cloudtasks.googleapis.com \
  run.googleapis.com

Triển khai dịch vụ Cloud Run sẽ đóng vai trò là mục tiêu của các tác vụ HTTP:

SERVICE1=hello1
REGION=us-central1

gcloud run deploy $SERVICE1 \
  --allow-unauthenticated \
  --image=gcr.io/cloudrun/hello \
  --region=$REGION

Tạo hàng đợi Cloud Tasks

Tạo hàng đợi Cloud Tasks thông thường:

QUEUE1=http-queue
LOCATION=us-central1

gcloud tasks queues create $QUEUE1 --location=$LOCATION

Tạm dừng hàng đợi để bạn có thể quan sát các tác vụ HTTP khi chúng được tạo:

gcloud tasks queues pause $QUEUE1 --location=$LOCATION

4. Tạo và kiểm thử tác vụ HTTP

Ở bước này, bạn sẽ tạo một tác vụ HTTP để nhắm mục tiêu hàng đợi mà bạn đã tạo trước đó.

Tạo tác vụ HTTP

Bạn có thể tạo các tác vụ HTTP bằng cách sử dụng gcloud:

gcloud tasks create-http-task \
    --queue=$QUEUE1 \
    --location=$LOCATION \
    --url=$SERVICE1_URL \
    --method=GET

Không bắt buộc: Bạn cũng có thể tạo tác vụ HTTP bằng thư viện ứng dụng. Ví dụ: bạn có thể xem Program.cs cho mẫu C#, trong đó yêu cầu HTTP được gói vào TaskTaskRequest trước khi được gửi đến Cloud Tasks bằng CloudTasksClient:

var taskRequest = new CreateTaskRequest
{
    Parent = new QueueName(projectId, location, queue).ToString(),
    Task = new Task
    {
        HttpRequest = new HttpRequest
        {
            HttpMethod = HttpMethod.Get,
            Url = url
        }
    }
};

var client = CloudTasksClient.Create();
var response = client.CreateTask(taskRequest);

Bạn có thể chạy tác vụ như sau để tạo và thêm tác vụ vào hàng đợi:

dotnet run $PROJECT_ID $LOCATION $QUEUE1 $SERVICE1_URL

Kiểm thử tác vụ HTTP

Tại thời điểm này, tác vụ được tạo nhưng chưa được thực thi vì hàng đợi đang tạm dừng. Bạn có thể xác minh điều này bằng cách liệt kê các hàng đợi:

gcloud tasks queues list --location=$LOCATION

Bạn sẽ thấy hàng đợi ở trạng thái PAUSED:

QUEUE_NAME  STATE
http-queue  PAUSED

Tiếp tục hàng đợi:

gcloud tasks queues resume $QUEUE --location=$LOCATION

Kiểm tra nhật ký của dịch vụ Cloud Run:

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 1

Bạn sẽ thấy rằng dịch vụ Cloud Run đã nhận được yêu cầu HTTP GET từ Cloud Tasks:

httpRequest:
  latency: 0.227597158s
  protocol: HTTP/1.1
  remoteIp: 35.243.23.192
  requestMethod: GET
  requestSize: '415'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.32.53
  status: 200
  userAgent: Google-Cloud-Tasks

5. Tạo hàng đợi có cấu hình định tuyến

Trong bước này, bạn sẽ tìm hiểu cách tạo hàng đợi Cloud Tasks bằng cấu hình định tuyến để thêm chế độ ghi đè URI HTTP bằng tính năng Cấu hình định tuyến tác vụ ở cấp hàng đợi. Sau đó, bạn sẽ thêm các tác vụ HTTP vào dịch vụ đó để nhắm mục tiêu dịch vụ Cloud Run đầu tiên và quan sát thấy rằng cấu hình định tuyến sẽ ghi đè URI để định tuyến các tác vụ đến dịch vụ Cloud Run thứ hai.

5d1ec61a933f77.pngS

Cấu hình định tuyến tác vụ ở cấp hàng đợi là gì?

Cấu hình định tuyến tác vụ ở cấp hàng đợi sẽ thay đổi định tuyến tác vụ HTTP cho toàn bộ hàng đợi đối với tất cả các tác vụ mới và đang chờ xử lý. Điều này cho phép tạo tác vụ dễ dàng hơn vì không cần đặt mục tiêu HTTP ở cấp tác vụ, đồng thời thay đổi nhiều quyền kiểm soát hơn cho nhà cung cấp dịch vụ vì họ có thể thiết lập mục tiêu của tất cả tác vụ trong hàng đợi (ví dụ: định tuyến lưu lượng truy cập đến một phần phụ trợ khác nếu phần phụ trợ ban đầu không hoạt động).

Bạn có thể đặt cấu hình sau đây ở cấp hàng đợi:

  • Tiêu đề: Tiêu đề ở cấp hàng đợi khi được chỉ định ở cấp hàng đợi, sẽ chèn và cập nhật tiêu đề cho tất cả tác vụ trong hàng đợi.
  • Phương thức HTTP: Phương thức HTTP khi được chỉ định ở cấp hàng đợi, sẽ ghi đè phương thức HTTP cho tất cả các tác vụ trong hàng đợi.
  • URI mục tiêu: Máy chủ lưu trữ, đường dẫn, truy vấn, cổng, giao thức (HTTP hoặc HTTPS) có thể bị ghi đè riêng.
  • Uỷ quyền: Cấu hình OIDC/OAuth khi được chỉ định ở cấp hàng đợi sẽ ghi đè cấu hình OIDC/OAuth cấp tác vụ.

Triển khai dịch vụ Cloud Run thứ hai

Triển khai dịch vụ Cloud Run thứ hai sẽ đóng vai trò là mục tiêu của việc ghi đè URI HTTP sau này:

SERVICE2=hello2
REGION=us-central1

gcloud run deploy $SERVICE2 \
  --allow-unauthenticated \
  --image=gcr.io/cloudrun/hello \
  --region=$REGION

Lưu máy chủ lưu trữ URL dịch vụ để sử dụng sau này:

SERVICE2_URL=$(gcloud run services describe $SERVICE2 --region $REGION --format 'value(status.url)')
SERVICE2_HOST=$(echo $SERVICE2_URL | sed 's,http[s]*://,,g')

Tạo hàng đợi Cloud Tasks bằng cấu hình định tuyến

Tạo hàng đợi có cấu hình định tuyến bằng cơ chế ghi đè URI HTTP lên dịch vụ Cloud Run thứ hai.

QUEUE2=http-queue-uri-override

gcloud beta tasks queues create $QUEUE2 \
  --http-uri-override=host:$SERVICE2_HOST \
  --location=$LOCATION

Lưu ý rằng cơ chế ghi đè URI đề cập đến dịch vụ Cloud Run thứ hai. Mọi tác vụ HTTP được thêm vào hàng đợi đều sẽ bị ghi đè máy chủ URI gốc. Bạn có thể xem cấu hình hàng đợi:

gcloud beta tasks queues describe $QUEUE2 --location=$LOCATION

Bạn sẽ thấy httpTargeturiOverride trỏ đến máy chủ lưu trữ của dịch vụ thứ hai:

httpTarget:
  uriOverride:
    host: hello2-idcwffc3yq-uc.a.run.app
    pathOverride: {}
    queryOverride: {}
...

Tạm dừng hàng đợi để bạn có thể quan sát các tác vụ HTTP khi chúng được tạo:

gcloud tasks queues pause $QUEUE2 --location=$LOCATION

6. Tạo và kiểm thử một tác vụ HTTP cho hàng đợi bằng cấu hình định tuyến

Ở bước này, bạn sẽ tạo một tác vụ HTTP để nhắm mục tiêu dịch vụ đầu tiên và quan sát thấy rằng URI của dịch vụ này bị hàng đợi ghi đè để trỏ đến dịch vụ thứ hai.

Tạo tác vụ HTTP

Tạo một tác vụ HTTP bằng URL của dịch vụ đầu tiên:

gcloud tasks create-http-task \
    --queue=$QUEUE2 \
    --location=$LOCATION \
    --url=$SERVICE1_URL \
    --method=GET

Kiểm thử tác vụ HTTP

Tiếp tục hàng đợi:

gcloud tasks queues resume $QUEUE2 --location=$LOCATION

Bạn sẽ thấy rằng dịch vụ thứ hai (không phải dịch vụ đầu tiên) Cloud Run nhận được yêu cầu HTTP GET từ Cloud Tasks do cơ chế ghi đè:

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE2" --limit 1
---
httpRequest:
  latency: 0.228982142s
  protocol: HTTP/1.1
  remoteIp: 35.187.132.84
  requestMethod: GET
  requestSize: '426'
  requestUrl: https://hello2-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.34.53
  status: 200
  userAgent: Google-Cloud-Tasks

7. Thay đổi những việc cần làm đang chờ xử lý bằng cấu hình định tuyến

Bạn cũng có thể sử dụng cấu hình định tuyến để thay đổi URI HTTP của tất cả các tác vụ đang chờ xử lý trong hàng đợi. Điều này rất hữu ích nếu dịch vụ phụ trợ bị lỗi và bạn muốn nhanh chóng định tuyến đến một dịch vụ khác. Hãy cùng xem cách hoạt động của quy trình này trong bước này.

Tạm dừng lại hàng đợi:

gcloud tasks queues pause $QUEUE2 --location=$LOCATION

Tạo một tác vụ HTTP với google.com là URL của tác vụ:

gcloud tasks create-http-task \
    --queue=$QUEUE2 \
    --location=$LOCATION \
    --url=https://www.google.com \
    --method=GET

Công việc ở trạng thái đang chờ xử lý vì hàng đợi bị tạm dừng.

Bây giờ, hãy cập nhật chế độ ghi đè URI HTTP để trỏ đến dịch vụ đầu tiên. Thao tác này sẽ ghi đè máy chủ lưu trữ của công việc đang chờ xử lý từ google.com thành máy chủ lưu trữ của dịch vụ đầu tiên:

SERVICE1_URL=$(gcloud run services describe $SERVICE1 --region $REGION --format 'value(status.url)')
SERVICE1_HOST=$(echo $SERVICE1_URL | sed 's,http[s]*://,,g')

gcloud beta tasks queues update $QUEUE2 \
  --http-uri-override=host:$SERVICE1_HOST \
  --location=$LOCATION

Tiếp tục hàng đợi:

gcloud tasks queues resume $QUEUE2 --location=$LOCATION

Bạn sẽ thấy rằng dịch vụ Cloud Run đầu tiên đã nhận được yêu cầu HTTP GET từ Cloud Tasks do ghi đè (thay vì google.com):

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 1
---
httpRequest:
  latency: 0.228982142s
  protocol: HTTP/1.1
  remoteIp: 35.187.132.84
  requestMethod: GET
  requestSize: '426'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.34.53
  status: 200
  userAgent: Google-Cloud-Tasks

8. Tạo hàng đợi cho BufferTask API

Thông thường, bạn tạo việc cần làm bằng cách sử dụng API Tasks trong thư viện ứng dụng gcloud hoặc Tasks. Điều này sẽ tạo gánh nặng cho ứng dụng trong việc gói các yêu cầu HTTP vào Tasks bằng cách sử dụng thư viện ứng dụng, đồng thời cũng tạo ra sự phụ thuộc giữa các ứng dụng và thư viện ứng dụng Tasks.

Trong bước này, bạn sẽ tìm hiểu cách tận dụng tính năng ghi đè URI HTTP ở cấp độ hàng đợi và BufferTask API mới để tạo các tác vụ mục tiêu HTTP dễ dàng hơn đơn giản bằng cách gửi yêu cầu HTTP. Giờ đây, mọi ứng dụng có thể gửi yêu cầu HTTP đều có thể tạo các tác vụ mục tiêu HTTP.

b1606516297fc4b6.png

API BufferTask là gì?

CreateTask API là cách cũ để tạo Công việc và yêu cầu ứng dụng gửi đối tượng Tác vụ đến API sau khi thiết lập tất cả các trường bắt buộc.

BufferTask API là một tính năng mới cho phép người dùng tạo Tác vụ HTTP mà không cần cung cấp bất kỳ Cấu hình tác vụ nào (URL HTTP, tiêu đề, uỷ quyền), cho phép bạn chỉ cần gửi thông báo hoặc nội dung yêu cầu đến Buffer API.

Điều này cho phép tích hợp dễ dàng hơn với các dịch vụ vì giờ đây, bạn có thể triển khai Cloud Tasks cho dịch vụ của mình mà không cần thay đổi mã ở phía máy khách. Mọi yêu cầu HTTP tuỳ ý gửi đến API BufferTask sẽ được gói dưới dạng đối tượng Tác vụ và phân phối đến đích đến được đặt ở cấp hàng đợi.

Để sử dụng API BufferTask, hàng đợi cần phải đặt cấu hình URI mục tiêu, hay nói cách khác, tính năng Cấu hình định tuyến cấp hàng đợi là điều kiện tiên quyết để sử dụng API BufferTask.

Tạo hàng đợi Cloud Tasks bằng cấu hình định tuyến

Tạo hàng đợi có cấu hình định tuyến trỏ đến dịch vụ đầu tiên mà chúng ta đã triển khai ở bước trước:

SERVICE1=hello1
SERVICE1_URL=$(gcloud run services describe $SERVICE1 --region $REGION --format 'value(status.url)')
SERVICE1_HOST=$(echo $SERVICE1_URL | sed 's,http[s]*://,,g')
QUEUE3=http-queue-uri-override-buffer

gcloud beta tasks queues create $QUEUE3 \
  --http-uri-override=host:$SERVICE1_HOST \
  --location=$LOCATION

Tạm dừng hàng đợi để bạn có thể quan sát các tác vụ HTTP khi chúng được tạo:

gcloud tasks queues pause $QUEUE3 --location=$LOCATION

9. Các yêu cầu HTTP vùng đệm với API BufferTask

Ở bước này, bạn sẽ lưu các yêu cầu HTTP GET hoặc POST đơn giản bằng BufferTask API. Trong phần này, Cloud Tasks sẽ gói những yêu cầu HTTP này vào các tác vụ HTTP bằng chế độ cài đặt cấu hình định tuyến mặc định của hàng đợi.

Trước tiên, hãy đăng nhập để nhận mã truy cập và đặt một số biến:

gcloud auth application-default login
ACCESS_TOKEN=$(gcloud auth application-default print-access-token)
PROJECT_ID=$(gcloud config get-value project)
TASKS_QUEUES_API="https://cloudtasks.googleapis.com/v2beta3/projects/$PROJECT_ID/locations/$LOCATION/queues"

Tạo tác vụ HTTP

Tạo một tác vụ HTTP bằng BufferTask API. Hãy lưu ý rằng đây là một yêu cầu HTTP GET đơn giản mà không cần tạo Tác vụ:

curl -X GET "$TASKS_QUEUES_API/$QUEUE3/tasks:buffer" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Tạo một tác vụ HTTP khác bằng yêu cầu POST qua HTTP và nội dung:

curl -X POST "$TASKS_QUEUES_API/$QUEUE3/tasks:buffer" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d "{'message': 'Hello World'}"

Không bắt buộc: Bạn cũng có thể tạo tác vụ HTTP bằng thư viện ứng dụng. Ví dụ: bạn có thể xem Program.cs cho mẫu C#, trong đó yêu cầu HTTP GET được gửi trực tiếp đến BufferTask API mà không cần phải gói vào Task hay cần có thư viện ứng dụng khách cho Cloud Tasks:

var BufferTaskApiUrl = $"https://cloudtasks.googleapis.com/v2beta3/projects/{ProjectId}/locations/{Location}/queues/{Queue}/tasks:buffer";

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Add("Authorization", $"Bearer {AccessToken}");
    var response = await client.GetAsync(BufferTaskApiUrl);
    var content = await response.Content.ReadAsStringAsync();
    Console.WriteLine($"Response: {content}");
}

Bạn có thể chạy như sau:

dotnet run $PROJECT_ID $LOCATION $QUEUE3 $ACCESS_TOKEN

BufferTask API đảm nhận việc tạo Tác vụ từ các yêu cầu HTTP và thêm URL từ chế độ cài đặt cấu hình định tuyến của hàng đợi cho URI.

Kiểm thử tác vụ HTTP

Tiếp tục hàng đợi:

gcloud tasks queues resume $QUEUE3 --location=$LOCATION

Bạn sẽ thấy rằng dịch vụ Cloud Run đã nhận được các yêu cầu HTTP GET và POST từ Cloud Tasks:

gcloud logging read "resource.type=cloud_run_revision AND resource.labels.service_name=$SERVICE1" --limit 4
---
httpRequest:
  latency: 0.002279292s
  protocol: HTTP/1.1
  remoteIp: 35.243.23.42
  requestMethod: POST
  requestSize: '777'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5450'
  serverIp: 216.239.32.53
  status: 200
  userAgent: Google-Cloud-Tasks
...
httpRequest:
  latency: 0.228982142s
  protocol: HTTP/1.1
  remoteIp: 35.187.132.84
  requestMethod: GET
  requestSize: '426'
  requestUrl: https://hello1-idcwffc3yq-uc.a.run.app/
  responseSize: '5510'
  serverIp: 216.239.34.53
  status: 200
  userAgent: Google-Cloud-Tasks

10. Xin chúc mừng

Xin chúc mừng, bạn đã hoàn thành lớp học lập trình!

Tiếp theo, bạn có thể thử dùng Cloud Tasks làm vùng đệm giữa Pub/Sub và Cloud Run để xem ví dụ thực tế về cách các tính năng mới này của Cloud Tasks có thể giúp bạn dễ dàng tạo hàng đợi bộ đệm giữa các dịch vụ.

Dọn dẹp (Không bắt buộc)

Để tránh phát sinh chi phí, bạn nên dọn dẹp tài nguyên.

Nếu không cần dự án, bạn chỉ cần xoá dự án đó theo cách sau:

gcloud projects delete $PROJECT_ID

Nếu cần dự án, bạn có thể xoá từng tài nguyên.

Xoá các dịch vụ Cloud Run:

gcloud run services delete $SERVICE1 --region $REGION
gcloud run services delete $SERVICE2 --region $REGION

Xoá hàng đợi của Cloud Tasks:

gcloud tasks queues delete $QUEUE1 --location=$LOCATION
gcloud tasks queues delete $QUEUE2 --location=$LOCATION
gcloud tasks queues delete $QUEUE3 --location=$LOCATION

Nội dung đã đề cập

  • Cách tạo tác vụ mục tiêu HTTP.
  • Cách tạo tác vụ mục tiêu HTTP bằng cơ chế ghi đè URI HTTP ở cấp độ hàng đợi mới.
  • Cách thay đổi các tác vụ đang chờ xử lý bằng cơ chế ghi đè URI HTTP ở cấp độ hàng đợi mới.
  • Cách dễ dàng lưu các yêu cầu HTTP vào vùng đệm bằng BufferTask API mới.