建立及管理工作流程

您可以在 Google Cloud 控制台中建立及管理工作流程,也可以在終端機或 Cloud Shell 中使用 Google Cloud CLI。您也可以透過 Workflows API 管理工作流程。

事前準備

貴機構定義的安全性限制,可能會導致您無法完成下列步驟。如需疑難排解資訊,請參閱「在受限的 Google Cloud 環境中開發應用程式」。

控制台

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Workflows API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Workflows API.

    Enable the API

  8. gcloud

    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the Workflows API.

      Enable the API

    5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    6. Make sure that billing is enabled for your Google Cloud project.

    7. Enable the Workflows API.

      Enable the API

    8. REST

      如要使用 Workflows API 管理工作流程,建議您使用 Google 提供的用戶端程式庫呼叫 workflows.googleapis.com 服務。詳情請參閱 Workflows API

建立服務帳戶

服務帳戶代表工作流程的身分,並決定工作流程擁有的權限和可存取的資源。 Google Cloud 如果沒有服務帳戶,請建立一個,然後授予該帳戶管理工作流程建立記錄所需的角色。

如果您在建立工作流程時未指定服務帳戶,工作流程會使用預設的 Compute Engine 服務帳戶做為身分。詳情請參閱「授予工作流程權限,以便存取 Google Cloud 資源」。

強烈建議您使用僅具備必要權限的服務帳戶,存取所需資源。

請注意,如要建立資源並附加服務帳戶,您必須具備建立該資源的權限,以及模擬要附加至資源的服務帳戶。詳情請參閱服務帳戶權限

控制台

  1. 前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面。

    前往「Service Accounts」(服務帳戶)

  2. 選取專案,然後按一下「建立服務帳戶」

  3. 在 [Service account name] (服務帳戶名稱) 欄位中輸入一個名稱。

    名稱長度必須介於 6 至 30 個字元之間,可以使用小寫英數字元和破折號。建立服務帳戶後,就無法變更名稱。

  4. 按一下「建立並繼續」

  5. 按一下「選擇角色」

  6. 選取下列角色,並視需要按一下「新增其他角色」

    1. 如要建立、更新及執行工作流程,請依序選取「工作流程」>「工作流程編輯器」
    2. 如要將記錄檔傳送至 Cloud Logging,請依序選取「Logging」(記錄) >「Logs Writer」(記錄寫入者)
  7. 按一下「Done」(完成),即完成建立服務帳戶。

gcloud

  1. 建立服務帳戶。

    gcloud iam service-accounts create SERVICE_ACCOUNT
  2. 指派角色,將權限授予服務帳戶。

    1. 如要建立、更新及執行工作流程,請指派 roles/workflows.editor 角色:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/workflows.editor"
    2. 如要將記錄檔傳送至 Cloud Logging,請指派 roles/logging.logWriter 角色:

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/logging.logWriter"

    更改下列內容:

    • SERVICE_ACCOUNT:服務帳戶的名稱。長度必須介於 6 至 30 個字元之間,可以使用小寫英數字元和破折號。建立服務帳戶後,就無法變更名稱。

    • PROJECT_ID:專案 ID。

REST

您可以使用 serviceAccounts.create 方法建立服務帳戶。詳情請參閱「建立服務帳戶」。

如要以程式輔助方式授予多個角色,請使用 setIamPolicy 方法,修改及設定資源的允許政策。詳情請參閱「以程式輔助方式授予或撤銷多個角色」。

建立工作流程

工作流程定義是由一系列步驟組成,這些步驟使用 Workflows 語法描述,且可採用 YAML 或 JSON 格式編寫。定義工作流程後,請部署工作流程,以便執行。部署步驟也會驗證來源檔案是否可執行。如果來源檔案不含有效的工作流程定義,就會失敗。

編輯 YAML 檔案時容易出錯。您可以使用偏好的 IDE 或原始碼編輯器建立工作流程,並設定自動完成和語法驗證,減少錯誤。

控制台

  1. 前往 Google Cloud 控制台的「Workflows」頁面。

    前往「Workflows」頁面

  2. 按一下「建立」

  3. 輸入工作流程名稱,例如 myFirstWorkflow。名稱可包含字母、數字、底線和連字號,開頭必須是英文字母,結尾則須為數字或英文字母。

  4. (選用) 新增工作流程說明。

  5. 在「Region」(區域) 清單中,選取要部署工作流程的適當位置,例如「us-central1」

  6. 在「Service account」(服務帳戶) 清單中,選取工作流程將用來存取其他 Google Cloud 服務的服務帳戶。詳情請參閱本文中的「建立服務帳戶」。

  7. 視需要執行下列任一操作:

    1. 指定要套用至工作流程定義的呼叫記錄層級。在「通話記錄層級」清單中, 選取下列其中一個選項:

      • 未指定:未指定記錄層級。這是預設值。 執行作業記錄檔層級的優先順序會高於任何工作流程記錄檔層級,除非未指定執行作業記錄檔層級 (預設值),否則適用工作流程記錄檔層級。
      • 僅限錯誤:記錄所有已擷取的例外狀況;或因例外狀況而停止通話時。
      • 所有呼叫:記錄對子工作流程或程式庫函式的所有呼叫及其結果。
      • 沒有記錄:不記錄任何通話。
    2. 指定要套用至工作流程定義的執行記錄等級。在「執行記錄」清單中,選取下列其中一個選項:

      • 基本:啟用基本執行記錄。這是預設值。
      • 詳細:啟用詳細的執行記錄,包括任何範圍內的變數值和預期疊代次數。
    3. 指定工作流程應使用的 Cloud Key Management Service 金鑰,以進行資料加密:選取「客戶自行管理的加密金鑰 (CMEK)」。詳情請參閱「使用客戶管理式加密金鑰」。

    4. 指定工作流程在執行階段可存取的環境變數。詳情請參閱「使用環境變數」。

    5. 新增標籤:標籤是鍵/值組合,可協助您整理Google Cloud 執行個體。詳情請參閱「什麼是標籤?」工作流程標籤會沿用至工作流程的執行作業。如要查看執行標籤,請使用 workflows.executions.list 方法列出及篩選工作流程執行作業

    6. 排定工作流程:依序選取「新增觸發條件」>「Cloud Scheduler」。詳情請參閱「使用 Cloud Scheduler 排定工作流程」。

    7. 透過事件或 Pub/Sub 訊息觸發工作流程:選取「新增觸發條件」>「Eventarc」。詳情請參閱「使用事件或 Pub/Sub 訊息觸發工作流程」。

  8. 點選「下一步」

  9. 在工作流程編輯器中,輸入工作流程的定義。請參閱範例工作流程

  10. 按一下 [Deploy] (部署)

gcloud

  1. 請確認工作流程的原始碼已儲存為 YAML 或 JSON 檔案,例如 MY_WORKFLOW.YAMLMY_WORKFLOW.JSON。請參閱範例工作流程

  2. 開啟終端機。

  3. 您可以使用 gcloud workflows deploy 指令建立及部署工作流程:

    gcloud workflows deploy WORKFLOW_NAME \
        --location=LOCATION \
        --call-log-level=CALL_LOGGING_LEVEL \
        --description="DESCRIPTION" \
        --execution-history-level="EXECUTION_HISTORY_LEVEL" \
        --labels="LABEL_KEY=LABEL_VALUE" \
        --set-env-vars="ENV_KEY=ENV_VALUE" \
        --kms-key=ENCRYPT_KEY \
        --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE

    更改下列內容:

    • WORKFLOW_NAME:工作流程名稱,例如 myFirstWorkflow。名稱可包含字母、數字、底線和連字號,開頭必須是英文字母,結尾則須為數字或英文字母。

    • LOCATION:用於部署工作流程的區域,例如 us-central1

    • CALL_LOGGING_LEVEL:選用。執行作業期間套用的呼叫記錄層級。可以是下列任一值:

      • none:未指定記錄層級。這是預設選項。執行作業記錄檔層級的優先順序高於任何工作流程記錄檔層級,除非未指定執行作業記錄檔層級 (預設值),否則適用工作流程記錄檔層級。
      • log-errors-only:記錄所有偵測到的例外狀況;或因例外狀況而停止通話時。
      • log-all-calls:記錄對子工作流程或程式庫函式的所有呼叫及其結果。
      • log-none:不會記錄通話。
    • DESCRIPTION:選用。工作流程說明。

    • EXECUTION_HISTORY_LEVEL:選用。執行期間要套用的執行記錄層級。可以是下列任一值:

      • none:未指定執行記錄等級。這是預設值。如果未指定執行的執行記錄層級,系統會根據套用至工作流程的層級決定。如果層級不同,系統會針對這項執行作業,以執行作業層級套用的設定覆寫工作流程層級套用的設定。
      • execution-history-basic:啟用基本執行記錄。
      • execution-history-detailed:啟用詳細的執行記錄,包括任何範圍內的變數值和預期疊代次數。
    • LABEL_KEY=LABEL_VALUE:選用。 標籤鍵/值組合清單,可協助您整理Google Cloud 執行個體,例如 name=wrench。詳情請參閱「什麼是標籤?」 工作流程標籤會沿用至工作流程的執行作業。如要查看執行標籤,請使用 workflows.executions.list 方法列出及篩選工作流程執行作業

    • ENV_KEY=ENV_VALUE:選用。環境變數鍵/值組合清單,例如 MONTH=January。詳情請參閱「使用環境變數」。

    • ENCRYPT_KEY:選用。工作流程應使用的 Cloud KMS 金鑰,用於資料加密,格式為 projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME。詳情請參閱「使用客戶管理的加密金鑰」。

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: 選用。工作流程將用來存取其他Google Cloud 服務的服務帳戶。詳情請參閱本文的「建立服務帳戶」。

    • YAML_OR_JSON_SOURCE_FILE:工作流程定義的來源檔案。例如:myFirstWorkflow.yaml

REST

如要建立具有指定名稱的新工作流程,請使用 projects.locations.workflows.create 方法,並使用 workflowId 查詢參數指定工作流程的 ID。

使用任何要求資料之前,請先替換以下項目:

  • WORKFLOW_NAME:工作流程的名稱,例如 myFirstWorkflow。名稱可包含字母、數字、底線和連字號,開頭必須是英文字母,結尾則須為數字或英文字母。
  • DESCRIPTION:選用。工作流程說明。不得超過 1000 個 Unicode 字元。
  • LABEL_KEYLABEL_VALUE:選用。標籤鍵/值組合對應表,可協助您整理 Google Cloud 執行個體。舉例來說: {"name": "wrench", "mass": "1kg", "count": "3"} 如要瞭解詳情,請參閱「什麼是標籤?」工作流程標籤會由工作流程的執行作業繼承。如要查看執行標籤,請使用 workflows.executions.list 方法列出及篩選工作流程執行作業
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com:選用。工作流程將用來存取其他 Google Cloud 服務的服務帳戶。專案 ID 是您的 Google Cloud 專案 ID。詳情請參閱本文的「 建立服務帳戶」一節。
  • ENCRYPT_KEY:選用。工作流程應使用的 Cloud KMS 金鑰,用於加密資料,格式為 projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME。詳情請參閱「使用客戶管理式加密金鑰」。
  • CALL_LOGGING_LEVEL:選用。 執行作業時套用的呼叫記錄層級。預設值為未指定任何記錄層級,而是適用工作流程記錄層級。詳情請參閱「將記錄傳送至 Logging」。下列其中一項:
    • CALL_LOG_LEVEL_UNSPECIFIED:未指定記錄層級,因此改為套用工作流程記錄層級。這是預設選項。如未啟用,則適用執行作業記錄檔層級,且優先順序會高於工作流程記錄檔層級。
    • LOG_ERRORS_ONLY:記錄所有偵測到的例外狀況;或因例外狀況而停止通話時。
    • LOG_ALL_CALLS:記錄對子工作流程或程式庫函式的所有呼叫及其結果。
    • LOG_NONE:不記錄通話。
  • EXECUTION_HISTORY_LEVEL: 選用。執行期間套用的執行記錄等級。詳情請參閱「查看執行步驟記錄」。下列其中一項:
    • EXECUTION_HISTORY_LEVEL_UNSPECIFIED:未指定執行記錄等級。這是預設選項。如果未指定執行作業的執行記錄等級,系統會根據套用至工作流程的等級決定。如果層級不同,則套用至執行層級的設定會覆寫套用至工作流程層級的設定。
    • EXECUTION_HISTORY_BASIC:啟用基本執行記錄。
    • EXECUTION_HISTORY_ADVANCED:啟用詳細的執行記錄,包括任何範圍內的變數值和預期疊代次數。
  • ENV_KEYENV_VALUE:選用。環境變數鍵/值組合的地圖,例如 { "month": "January", "day": "Monday"}。詳情請參閱「使用環境變數」。
  • SOURCE_CODE:工作流程定義。您必須逸出 YAML 中的換行符。例如: main:\n params:\n - input\n steps:\n - returnOutput:\n return: Hello

    您必須逸出 JSON 中的引號。例如: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}

  • LOCATION:要部署工作流程的區域,例如 us-central1

JSON 要求主體:

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

如要傳送要求,請展開以下其中一個選項:

如果成功,回應主體會包含新建立的 Operation 例項:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "create",
    "apiVersion": "v1"
  },
  "done": false
}

如果 "done" 的值為 false,表示作業仍在進行中。

列出工作流程

您可以列出工作流程,或使用篩選器擷取特定工作流程。

主控台

  1. 前往 Google Cloud 控制台的「Workflows」頁面。

    前往「Workflows」頁面

    這個頁面會列出所有位置的工作流程,並包含名稱、區域和最新修訂版本等詳細資料。

  2. 如要篩選工作流程,請按照下列步驟操作:

    1. 按一下「篩選器」或「篩選器工作流程」欄位。
    2. 在「屬性」清單中,選取要用來篩選工作流程的選項。

    您可以選取單一屬性,或使用邏輯運算子 OR 新增更多屬性。

  3. 如要排序工作流程,請點選任何支援的欄標題旁邊的「排序」

gcloud

使用 gcloud workflows list 指令列出工作流程:

gcloud workflows list --location=LOCATION

LOCATION 替換為工作流程位置的 ID 或完整識別碼。

這項指令會列出指定位置的工作流程,並包含工作流程的 NAMESTATEREVISION_IDUPDATE_TIME 等詳細資料。

REST

如要列出特定專案和位置中的工作流程,請使用 projects.locations.workflows.list 方法。

或者,如要擷取單一工作流程的詳細資料,請使用 projects.locations.workflows.get 方法。

使用任何要求資料之前,請先替換以下項目:

  • PROJECT_ID:您的 Google Cloud專案 ID。
  • LOCATION:工作流程部署的區域,例如 us-central1

如要傳送要求,請展開以下其中一個選項:

如果成功,回應主體會包含 Workflow 的例項,且回應內容應類似於下列範例:

{
  "workflows": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
      "state": "ACTIVE",
      "revisionId": "000001-0ce",
      "createTime": "2023-12-08T13:56:59.306770745Z",
      "updateTime": "2023-12-08T13:56:59.547021939Z",
      "revisionCreateTime": "2023-12-08T13:56:59.340161044Z",
      "serviceAccount": "projects/PROJECT_ID/serviceAccounts/PROJECT_NUMBER-compute@developer.gserviceaccount.com",
      "sourceContents": "main:\n    params: [input]\n [...] return: '${wikiResult.body[1]}'\n"
    },
    {
      object (Workflow)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

更新工作流程

您可以更新現有工作流程。您必須指定要更新的工作流程名稱和來源。請注意,工作流程的名稱或位置無法變更。

更新工作流程不會影響執行中的作業。只有日後執行的工作流程會使用更新後的設定。

每次更新工作流程時,系統都會更新其 versionIDversionID 由兩個部分組成,並以連字號分隔:

  • 數字 (從 1 開始),每次更新工作流程時都會遞增。

  • 隨機英數字元字串,長度為三個字元。

舉例來說,000001-27f 表示工作流程的初始版本,000002-d52 則表示工作流程已更新一次。

控制台

  1. 前往 Google Cloud 控制台的「Workflows」頁面。

    前往「Workflows」頁面

  2. 按一下要更新的工作流程名稱。請注意,您無法變更工作流程名稱。

    系統隨即會顯示「Workflow details」(工作流程詳細資料) 頁面。

  3. 您可以透過下列方式編輯工作流程:

    • 如要編輯來源,請按照下列步驟操作:

      1. 按一下「來源」分頁標籤。
      2. 按一下 [編輯]
      3. 如要儲存變更,請按一下「儲存」。更新後的工作流程已部署完畢。
    • 如要更新說明、工作流程用於驗證的服務帳戶、呼叫記錄層級、環境變數、標籤或加密金鑰,請按照下列步驟操作:

      1. 按一下 [Details] (詳細資料) 分頁標籤。
      2. 按一下適當的 圖示。
      3. 如要更新通話記錄層級,請選取下列其中一個選項:
        • 未指定:未指定記錄層級。這是預設值。 執行作業記錄檔層級的優先順序會高於任何工作流程記錄檔層級,除非未指定執行作業記錄檔層級 (預設值),否則適用工作流程記錄檔層級。
        • 僅限錯誤:記錄所有已擷取的例外狀況;或因例外狀況而停止通話時。
        • 所有呼叫:記錄對子工作流程或程式庫函式的所有呼叫及其結果。
        • 沒有記錄:不記錄任何通話。
      4. 如要更新執行記錄等級,請選取下列其中一個選項:
        • 基本:啟用基本執行記錄。這是預設值。
        • 詳細:啟用詳細的執行記錄,包括任何範圍內的變數值和預期疊代次數。
      5. 更新現有標籤或新增標籤後,新標籤最多可能需要 10 分鐘才會生效。工作流程標籤會由工作流程的執行作業繼承。如要查看執行作業標籤,請使用 workflows.executions.list 方法列出及篩選工作流程執行作業
      6. 如要儲存變更,請按一下「儲存」。更新後的工作流程已部署完畢。
    • 如要同時編輯先前的欄位,或新增/更新觸發條件,請按照下列步驟操作:

      1. 按一下「編輯」圖示
      2. 如要編輯來源,請按「Next」(下一步)
      3. 如要儲存變更並部署更新後的工作流程,請按一下「部署」
  4. 如要更新服務帳戶的角色,請按一下「權限」分頁標籤。

    1. 主體是使用者、群組、網域或服務帳戶。如要更新現有主體:

      1. 找出包含主體的資料列。
      2. 按一下該列中的「編輯主體」
      3. 按一下「新增其他角色」或「刪除角色」
    2. 如要新增角色,請在「Select a role」(選取角色) 清單中選取適當的角色。

    3. 如要新增其他角色,請按一下「新增其他角色」

    4. 按一下 [儲存]

gcloud

  1. 開啟終端機。

  2. 找出要更新的工作流程名稱。如果您不知道工作流程名稱,可以輸入下列指令,列出所有工作流程:

    gcloud workflows list
  3. 找出儲存工作流程來源的 YAML 或 JSON 檔案,例如 WORKFLOW_NAME.YAMLWORKFLOW_NAME.JSON

  4. 您可以使用 gcloud workflows deploy 指令更新現有工作流程,變更其來源、說明、標籤、環境變數、呼叫記錄層級、加密金鑰或相關聯的服務帳戶。

    您必須指定要更新的工作流程名稱及其來源,但其餘旗標為選用。如要移除客戶管理的加密金鑰,請使用 --clear-kms-key 旗標。

    gcloud workflows deploy WORKFLOW_NAME \
        --call-log-level=CALL_LOGGING_LEVEL \
        --description="DESCRIPTION" \
        --execution-history-level="EXECUTION_HISTORY_LEVEL" \
        --labels="LABEL_KEY=LABEL_VALUE" \
        --set-env-vars="ENV_KEY=ENV_VALUE" \
        --kms-key=ENCRYPT_KEY \
        --service-account=SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com \
        --source=YAML_OR_JSON_SOURCE_FILE

    更改下列內容:

    • WORKFLOW_NAME:必填。工作流程名稱。

    • CALL_LOGGING_LEVEL:選用。執行作業期間套用的呼叫記錄層級。可以是下列任一值:

      • none:未指定記錄層級。這是預設選項。執行作業記錄檔層級的優先順序高於任何工作流程記錄檔層級,除非未指定執行作業記錄檔層級 (預設值),否則適用工作流程記錄檔層級。
      • log-errors-only:記錄所有偵測到的例外狀況;或因例外狀況而停止通話時。
      • log-all-calls:記錄對子工作流程或程式庫函式的所有呼叫及其結果。
      • log-none:不會記錄通話。
    • DESCRIPTION:選用。工作流程說明。

    • EXECUTION_HISTORY_LEVEL:選用。執行期間要套用的執行記錄層級。可以是下列任一值:

      • none:未指定執行記錄等級。這是預設值。如果未指定執行的執行記錄層級,系統會根據套用至工作流程的層級決定。如果層級不同,系統會針對這項執行作業,以執行作業層級套用的設定覆寫工作流程層級套用的設定。
      • execution-history-basic:啟用基本執行記錄。
      • execution-history-detailed:啟用詳細的執行記錄,包括任何範圍內的變數值和預期疊代次數。
    • LABEL_KEY=LABEL_VALUE:選用。 標籤鍵/值組合清單,可協助您整理Google Cloud 執行個體,例如 name=wrench。詳情請參閱「什麼是標籤?」 工作流程標籤會沿用至工作流程的執行作業。如要查看執行標籤,請使用 workflows.executions.list 方法列出及篩選工作流程執行作業

    • ENV_KEY=ENV_VALUE:選用。環境變數鍵/值組合清單,例如 MONTH=January。詳情請參閱「使用環境變數」。

    • ENCRYPT_KEY:選用。工作流程應使用的 Cloud KMS 金鑰,用於資料加密,格式為 projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME。詳情請參閱「使用客戶管理的加密金鑰」。

    • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: 選用。工作流程將用來存取其他Google Cloud 服務的服務帳戶。如要更新服務帳戶的角色,請參閱「授予工作流程權限,以便存取 Google Cloud 資源」和「管理專案、資料夾和機構的存取權」。

    • YAML_OR_JSON_SOURCE_FILE:必填。工作流程的來源檔案,格式為 YAML 或 JSON。例如: myFirstWorkflow.yaml

REST

如要更新現有工作流程,請使用 projects.locations.workflows.patch 方法,並視需要使用 updateMask 查詢參數指定要更新的欄位清單。

使用任何要求資料之前,請先替換以下項目:

  • WORKFLOW_NAME:工作流程的名稱,例如 myFirstWorkflow
  • DESCRIPTION:選用。工作流程說明。不得超過 1000 個 Unicode 字元。
  • LABEL_KEYLABEL_VALUE:選用。標籤鍵/值組合對應表,可協助您整理 Google Cloud 執行個體。舉例來說: {"name": "wrench", "mass": "1kg", "count": "3"} 如要瞭解詳情,請參閱「什麼是標籤?」工作流程標籤會由工作流程的執行作業繼承。如要查看執行標籤,請使用 workflows.executions.list 方法列出及篩選工作流程執行作業
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com:選用。工作流程將用來存取其他 Google Cloud 服務的服務帳戶。專案 ID 是您的 Google Cloud 專案 ID。詳情請參閱本文的「 建立服務帳戶」一節。
  • ENCRYPT_KEY:選用。工作流程應使用的 Cloud KMS 金鑰,用於加密資料,格式為 projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME。詳情請參閱「使用客戶管理式加密金鑰」。
  • CALL_LOGGING_LEVEL:選用。 執行作業時套用的呼叫記錄層級。預設值為未指定任何記錄層級,而是適用工作流程記錄層級。詳情請參閱「將記錄傳送至 Logging」。下列其中一項:
    • CALL_LOG_LEVEL_UNSPECIFIED:未指定記錄層級,因此改為套用工作流程記錄層級。這是預設選項。如未啟用,則適用執行作業記錄檔層級,且優先順序會高於工作流程記錄檔層級。
    • LOG_ERRORS_ONLY:記錄所有偵測到的例外狀況;或因例外狀況而停止通話時。
    • LOG_ALL_CALLS:記錄對子工作流程或程式庫函式的所有呼叫及其結果。
    • LOG_NONE:不記錄通話。
  • EXECUTION_HISTORY_LEVEL: 選用。執行期間套用的執行記錄等級。詳情請參閱「查看執行步驟記錄」。下列其中一項:
    • EXECUTION_HISTORY_LEVEL_UNSPECIFIED:未指定執行記錄等級。這是預設選項。如果未指定執行作業的執行記錄等級,系統會根據套用至工作流程的等級決定。如果層級不同,系統會套用執行層級的設定,覆寫工作流程層級的設定。
    • EXECUTION_HISTORY_BASIC:啟用基本執行記錄。
    • EXECUTION_HISTORY_ADVANCED:啟用詳細的執行記錄,包括任何範圍內的變數值和預期疊代次數。
  • ENV_KEYENV_VALUE:選用。環境變數鍵/值組合的地圖,例如 { "month": "January", "day": "Monday"}。詳情請參閱「使用環境變數」。
  • SOURCE_CODE:縮小的工作流程定義。例如: {\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}
  • LOCATION:工作流程部署的區域,例如 us-central1
  • UPDATE_FIELDS:選用。以半形逗號分隔的欄位清單,列出要更新的欄位。如未提供,系統會更新整個工作流程。 例如 description,callLogLevel

JSON 要求主體:

{
  "name": "WORKFLOW_NAME",
  "description": "DESCRIPTION",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "cryptoKeyName": "ENCRYPT_KEY",
  "callLogLevel": "CALL_LOGGING_LEVEL",
  "executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
  "userEnvVars": {"ENV_KEY":"ENV_VALUE"},
  "sourceContents": "SOURCE_CODE"
}

如要傳送要求,請展開以下其中一個選項:

如果成功,回應主體會包含新建立的 Operation 例項:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "update",
    "apiVersion": "v1"
  },
  "done": false
}

如果 "done" 的值為 false,表示作業仍在進行中。

刪除工作流程

您可以刪除現有工作流程。刪除工作流程時,系統也會刪除工作流程的執行作業,並取消工作流程的所有有效執行作業。

控制台

  1. 前往 Google Cloud 控制台的「Workflows」頁面。

    前往「Workflows」頁面

  2. 按一下要刪除的工作流程名稱,然後按一下 「刪除」

  3. 系統會提示您確認刪除,請輸入工作流程名稱。

  4. 按一下「確認」。

gcloud

  1. 開啟終端機。

  2. 找出要刪除的工作流程名稱。如果您不知道工作流程名稱,可以輸入下列指令,列出所有工作流程:

    gcloud workflows list
  3. 使用 gcloud workflows delete 指令刪除工作流程:

    gcloud workflows delete WORKFLOW_NAME

    WORKFLOW_NAME 替換為工作流程的名稱。

REST

如要刪除指定名稱的工作流程,請使用 projects.locations.workflows.delete 方法。

使用任何要求資料之前,請先替換以下項目:

  • WORKFLOW_NAME:要刪除的工作流程名稱。
  • PROJECT_ID:您的 Google Cloud專案 ID。
  • LOCATION:工作流程部署的區域,例如 us-central1

如要傳送要求,請展開以下其中一個選項:

如果成功,回應主體會包含 Operation 的執行個體:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
    "createTime": "2023-12-05T14:06:06.338390918Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
    "verb": "delete",
    "apiVersion": "v1"
  },
  "done": false
}

如果 "done" 的值為 false,表示作業仍在進行中。

後續步驟