將 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

    如果系統���回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 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

後續步驟