建立及管理工作流程

您可以在 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

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. Install the Google Cloud CLI.

  3. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  4. To initialize the gcloud CLI, run the following command:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  7. Enable the Workflows API:

    gcloud services enable workflows.googleapis.com
  8. Install the Google Cloud CLI.

  9. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  10. To initialize the gcloud CLI, run the following command:

    gcloud init
  11. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  13. Enable the Workflows API:

    gcloud services enable workflows.googleapis.com

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. 選取下列角色,按一下「Add another role」

    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. 指定要套用至工作流程定義的呼叫記錄層級。在「Call log level」清單中,選取下列任一項目:

      • 未指定:未指定記錄層級。這是預設值。 執行記錄檔層級的優先順序高於任何工作流程記錄檔層級,除非未指定執行記錄檔層級 (預設值);在這種情況下,系統會套用工作流程記錄檔層級。
      • 僅記錄錯誤:記錄所有已偵測到的例外狀況;或當呼叫因例外狀況而停止時。
      • 所有呼叫:記錄對子工作流程或程式庫函式的所有呼叫,以及這些呼叫的結果。
      • 無記錄:不記錄通話。
    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. 點按「Next」

  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:選用。工作流程應以 projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME 格式使用 Cloud KMS 金鑰來加密資料。詳情請參閱「使用客戶管理的加密金鑰」。

    • 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:選用。工作流程的說明。不得超過 1,000 個萬國碼字元。
  • 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. 在「Properties」清單中,選取要用來篩選工作流程的選項。

    您可以選取單一資源,或使用邏輯運算子 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. 按一下要更新的工作流程名稱。請注意,您無法變更工作流程名稱。

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

  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. 如要新增其他角色,請按一下「Add another role」

    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:選用。工作流程的說明。不得超過 1,000 個萬國碼字元。
  • 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,表示作業仍在進行中。

後續步驟