核准工作

核准工作可讓您設定以核准為基礎的整合。您也可以控管整合流程。

您可以使用「核准」工作,將核准要求電子郵件傳送給一或多位整合使用者。電子郵件中會附上整合項目的連結,使用者可以手動核准或拒絕要求。

在整合作業執行期間,當控制權到達「核准」工作時,執行作業會停止,且「核准」工作之後的所有工作都會暫停。只有在使用者透過 Google Cloud 控制台或使用 API 核准或拒絕核准要求時,整合才會繼續執行。

核准工作可用於下列用途:

  • 根據使用者核准或拒絕,暫停及分支整合。
  • 在指定時間內暫停整合。
  • 做為中斷點,用於偵錯整合。

比較核准工作、暫停工作和計時器工作

這三項工作 (核准、暫停和計時器) 的功能類似,都是暫停及繼續執行整合。不過,兩者之間仍有細微差異。下表說明這三項工作的差異。

審核工作 暫停工作 計時器工作
當使用者在「整合」UI 中或使用 API 核准或拒絕要求時,系統會繼續執行。 支援手動和自動恢復整合。如果沒有手動介入撤銷暫停,整合會在暫停時間限制到期後自動恢復執行。 僅支援自動恢復整合。暫停時間限制到期後,系統會自動恢復執行整合。
可透過「整合」UI 或呼叫 suspensions.resolve 方法,繼續執行整合作業。請參閱「使用 API 核准或拒絕」。 可以呼叫 suspensions.lift 方法來繼續整合。 僅支援自動恢復整合。
整合功能暫停 (停權) 時,使用者會收到通知。 整合功能暫停 (停用) 時,使用者不會收到任何通知。 整合功能暫停 (停用) 時,使用者不會收到任何通知。
支援輸出變數 (布林值),可讓您在繼續執行整合前執行條件檢查。不過,輸出變數的值只能是 true 或 false。 支援輸出變數 (字串),可讓您在繼續執行整合前執行條件檢查。您可以為輸出變數設定任何值。 不支援任何輸出變數。

設定核准任務

如要設定「Approval」(核准) 工作,請按照下列步驟操作:

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

    前往 Application Integration

  2. 在導覽選單中,按一下「Integrations」(整合)。

    「Integrations」(整合) 頁面隨即顯示,列出 Google Cloud 雲端專案中所有可用的整合項目。

  3. 選取現有整合項目,或按一下「Create integration」(建立整合項目) 建立新的整合項目。

    如要建立新的整合:

    1. 在「Create Integration」(建立整合項目) 窗格中,輸入名稱和說明。
    2. 選取整合項目的區域。
    3. 選取整合作業的服務帳戶。您隨時可以透過整合工具列中的「 整合摘要」窗格,變更或更新整合項目的服務帳戶詳細資料。
    4. 點選「建立」。新建立的整合作業會在整合服務編輯器中開啟。

  4. 在整合編輯器導覽列中,按一下「Tasks」(工作),查看可用工作和連接器清單。
  5. 在整合服務編輯器中,按一下並放置「Approval」(核准) 任務元素。
  6. 在設計工具中,按一下「Approval」(核准) 任務元素,即可查看「Approval」(核准) 任務設定窗格。
  7. 使用工作的設定屬性設定顯示的欄位,詳情請參閱下表。

    系統會自動儲存對屬性所做的所有變更。

設定屬性

下表說明「Approval」(核准) 工作的設定屬性。

屬性 資料類型 說明
Recipients 字串陣列 工作暫停時,系統會傳送通知至這些電子郵件地址。輸入多個電子郵件地址,並以半形逗號分隔。
Custom notification message String 工作暫停時,電子郵件通知中要包含的自訂訊息。值可以是常值或變數。如果自訂訊息位於變數中,請按一下 VAR 並選取變數。
Reminder frequency (in hours) 整數 提醒通知的頻率。

如果停權狀態尚未解決,您可以傳送電子郵件提醒通知,要求授權使用者解決停權問題。

Time until expiration (in hours) 整數 停權時間範圍。

如果未在期限內解決停權問題,系統預設會拒絕停權。

On expiration Boolean 停權到期後要採取的動作。

您可以選擇拒絕或解除停權。根據預設,系統會拒絕停權。

isApproved (Approval) Boolean 輸出變數,含有解決後的停權狀態。

如果暫停要求獲准,isApproved 變數會設為 True;如果暫停要求遭拒,則會設為 False。

使用 API 回應核准要求

如要核准或拒絕待處理的核准要求,但不使用 Google Cloud 控制台,請呼叫 projects.locations.integrations.executions.suspensions.resolve 方法。

如要核准或拒絕要求,您必須具備 integrations.suspensions.resolve 權限。如要列出停權項目,您也必須具備 integrations.suspensions.list 權限。Application Integration 核准者 (roles/integrations.suspensionResolver) 角色和 Application Integration 管理員 (roles/integrations.integrationAdmin) 角色都具備這兩項權限。

如果整合作業使用「執行身分」服務帳戶,請將服務帳戶使用者 (roles/iam.serviceAccountUser) 角色授予該服務帳戶。這項規定將在授予服務帳戶使用者所述的推出作業進行時生效。

  1. 如要找出待處理的要求,請使用 projects.locations.integrations.executions.suspensions.list 方法列出執行作業的暫停狀態:
    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME/executions/EXECUTION_ID/suspensions"
    

    在回應中,找出 taskId 為核准任務 ID 且 state 為 PENDING 的暫停。回應也包含來自「暫停」工作和同一執行作業中其他「核准」工作的暫停。請記下停權的 name,其結尾為停權 ID。

  2. 如要核准或拒絕要求,請呼叫 suspensions.resolve 方法:
    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        -d '{
          "suspension": {
            "eventExecutionInfoId": "EXECUTION_ID",
            "integration": "INTEGRATION_NAME",
            "taskId": "TASK_ID",
            "state": "STATE"
          }
        }' \
        "https://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME/executions/EXECUTION_ID/suspensions/SUSPENSION_ID:resolve"
    

更改下列內容:

  • PROJECT_ID: Google Cloud 專案的 ID。
  • LOCATION:整合項目的區域。
  • INTEGRATION_NAME:整合項目的名稱。
  • EXECUTION_ID:暫停執行的 ID。
  • TASK_ID:核准工作的 ID (停權的 taskId)。
  • SUSPENSION_ID:停權 ID,取自停權的 name。
  • STATE:解決狀態。使用 LIFTED 核准要求 (將 isApproved 設為 true),或使用 REJECTED 拒絕要求 (將 isApproved 設為 false)。

錯誤處理策略

工作錯誤處理策略會指定工作因暫時性錯誤而失敗時,應採取的動作。如要瞭解如何使用錯誤處理策略,以及各種錯誤處理策略,請參閱「錯誤處理策略」。

配額與限制

如要瞭解配額和限制,請參閱「配額與限制」。

後續步驟