將 HTTP 目標工作新增至 Cloud Tasks 工作佇列

Cloud Tasks 可讓您將非同步工作調度至 HTTP 目標,同時控管執行速率和重試行為。在本快速入門導覽課程中,您將使用 Cloud Tasks API 建立佇列,並在該佇列中新增 HTTP 目標任務。

事前準備

  1. 安裝 Google Cloud CLI。

  2. 設定 gcloud CLI,使用您的聯合身分。

    詳情請參閱「 使用聯合身分登入 gcloud CLI」。

  3. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  4. 建立或選取 Google Cloud 專案。

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
    • 建立專案:如要建立專案,您需要專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色。
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      將 PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      將 PROJECT_ID 替換為 Google Cloud 專案名稱。

  5. 確認 Google Cloud 專案已啟用計費功能。

  6. 啟用 Cloud Tasks API (如果尚未啟用):

    啟用 API 所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過服務使用情形管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    gcloud services enable cloudtasks.googleapis.com
  7. 為使用者帳戶建立本機驗證憑證:

    gcloud auth application-default login

    如果系統傳回驗證錯誤,請確認您已 使用聯合身分登入 gcloud CLI。

  8. 將角色授予使用者帳戶。針對下列各個 IAM 角色執行下列指令一次:roles/cloudtasks.admin, roles/logging.viewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    更改下列內容:

建立 Cloud Tasks 佇列

使用 gcloud tasks queues create 指令建立佇列。

  1. 在終端機中,建立記錄所有作業的佇列。

    gcloud tasks queues create QUEUE_NAME \
        --log-sampling-ratio=1.0 \
        --location=REGION
    

    更改下列內容:

    • QUEUE_NAME:Cloud Tasks 佇列的名稱
    • REGION:部署服務或應用程式的支援區域
  2. 等待佇列初始化,然後確認佇列是否已順利建立。

    gcloud tasks queues describe QUEUE_NAME \
        --location=REGION
    

    畫面會顯示如下的輸出內容:

     name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_NAME
     rateLimits:
       maxBurstSize: 100
       maxConcurrentDispatches: 1000
       maxDispatchesPerSecond: 500.0
     retryConfig:
       maxAttempts: 100
       maxBackoff: 3600s
       maxDoublings: 16
       minBackoff: 0.100s
     state: RUNNING
    

將任務新增至 Cloud Tasks 工作佇列

使用 gcloud tasks create-http-task 指令建立指定 HTTP 端點的工作,並將工作新增至佇列。

  1. 建立任務,將任務新增至您建立的佇列,並將任務傳送至 HTTP 端點。

    gcloud tasks create-http-task \
        --queue=QUEUE_NAME \
        --url=URL_PATH \
        --method=GET \
        --location=REGION \
        --project=PROJECT_ID
    

    將 URL_PATH 替換為要求傳送的完整網址路徑。路徑開頭必須為 http:// 或 https://,例如:https://www.example.com。

  2. 請讀取記錄,確認工作是否執行成功。

    gcloud logging read 'resource.type="cloud_tasks_queue" resource.labels.queue_id="QUEUE_NAME" severity>=DEFAULT' --limit=3
    

    記錄應如下所示:

    jsonPayload:
    '@type': type.googleapis.com/google.cloud.tasks.logging.v1.TaskActivityLog
    task: projects/PROJECT_ID/locations/REGION/queues/QUEUE_NAME/tasks/TASK_ID
    taskCreationLog:
       scheduleTime: '2024-07-04T19:00:27.801837Z'
       status: OK
       targetAddress: GET https://www.example.com/
       targetType: HTTP
    ...
    

清除所用資源

為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。

刪除 Google Cloud 專案:

gcloud projects delete PROJECT_ID

或者,您也可以刪除 Cloud Tasks 佇列:

gcloud tasks queues delete QUEUE_NAME \
    --location=REGION

後續步驟