View a markdown version of this page

執行自訂代理程式 - AWS DevOps 代理程式

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

執行自訂代理程式

您可以隨需執行自訂代理程式,或設定觸發以自動執行代理程式。

隨需執行自訂代理程式

您可以立即從客服人員詳細資訊頁面或透過聊天執行自訂客服人員。

若要從詳細資訊頁面執行自訂代理程式:

  1. 導覽至 DevOps Agent Web 應用程式中的客服人員頁面。

  2. 選擇您要執行的自訂代理程式。

  3. 選擇立即執行,以使用其設定的指示執行代理程式。

若要提供特定執行的其他內容,請選擇立即執行旁的下拉箭頭,輸入描述代理程式在此調用中應關注的提示,然後選擇使用提示執行。提示會與系統提示一起傳遞給客服人員,做為其他內容。

執行開始後,新的調用會出現在歷史記錄索引標籤中,狀態為「待定開始」。選擇調用以即時檢視其軌跡。

若要使用聊天執行自訂代理程式:

要求聊天依名稱執行代理程式。例如:

Run my weekly-investigation-report agent.
Run certificate-checker and focus on certificates expiring in the next 7 days.

當您在聊天訊息中提供其他內容時,聊天會將其傳遞為該執行的提示。如果您未提供其他內容,代理程式只會使用其設定的系統提示來執行 。

自訂代理程式一次只能執行一個調用。如果代理程式已在執行中,您必須等待目前的調用完成、逾時或取消,才能啟動另一個。

設定 觸發條件

觸發條件會根據定義的條件自動執行自訂代理程式。 AWS DevOps 代理程式支援兩種類型的觸發:

  • 排程觸發 – 使用 EventBridge 相容的 Cron 或 Rate 運算式,以週期性間隔執行代理程式。

  • 事件觸發 – 當 Webhook 事件從連線整合抵達時執行代理程式,並將事件承載做為內容傳遞。

這兩種類型的觸發都是從自訂代理程式的觸發標籤建立的。若要開啟它,請導覽至 DevOps Agent Web 應用程式的客服人員頁面,選擇自訂客服人員,然後選擇觸發標籤。

建立排程觸發條件

排程表達式使用 EventBridge 相容的 Cron 或 Rate 語法。表達式必須是下列其中一種格式:

  • 速率表達式 – 以固定間隔執行。格式:rate(value unit)。範例:

    • rate(1 hour) – 每小時

    • rate(30 minutes) – 每 30 分鐘

    • rate(7 days) – 每 7 天

  • Cron 表達式 – 依特定排程執行。格式:cron(minutes hours day-of-month month day-of-week year)。範例:

    • cron(0 9 ? * MON-FRI *) – 每週日上午 9:00 UTC

    • cron(0 0 1 * ? *) – 每月第一天午夜 UTC

    • cron(0 */6 ? * * *) – 每 6 小時

對於 cron 表達式,每月某day-of-month或day-of-week必須是 ?(問號)。如需排程表達式語法的詳細資訊,請參閱《Amazon EventBridge 排程器使用者指南》中的排程類型。

若要建立排程觸發條件:

  1. 選擇 + (建立) 按鈕。

  2. 針對觸發類型,選擇排程。

  3. 輸入排程表達式。當表達式有效時,會出現綠色確認訊息。

  4. (選用) 若要為每個排程執行提供額外的內容,請在使用者提示 (選用) 欄位中輸入提示。提示會與其系統提示一起傳遞給客服人員。

  5. 選擇建立。

建立後,觸發條件會出現在清單中,顯示其表達式、建立日期和下一個排定的執行時間。

建立事件觸發程序

事件觸發會在 Webhook 事件從連線整合抵達時執行自訂代理程式。事件承載會傳遞給代理程式,做為該執行的內容。

先決條件:

在建立事件觸發之前,您必須與客服人員空間中的作用中 Webhook 進行連線整合。與作用中 Webhook 的任何整合都可以做為事件來源。如需設定整合的詳細資訊,請參閱透過 Webhook 叫用 DevOps 代理程式。

若要建立事件觸發:

  1. 選擇 + (建立) 按鈕。

  2. 針對觸發類型,選擇事件。

  3. 針對事件來源,選擇其 Webhook 事件應執行代理程式的整合。只會列出與作用中 Webhook 的整合。

  4. (選用) 對於篩選條件表達式,輸入 JMESPath 表達式來篩選和選擇性轉換事件承載。

  5. 選擇建立。

如果未列出事件來源,則代理程式空間中沒有已啟用 Webhook 的整合,或者您的角色缺少 ListAssociations和 ListWebhooks許可。

篩選條件表達式:

您可以選擇指定 JMESPath 篩選條件表達式,以控制哪些事件啟動代理程式,以及代理程式接收的內容。篩選條件表達式會根據原始事件承載根進行評估。

  • 語法 – JMESPath 規格

  • 長度上限 – 4,096 個字元

  • 驗證 – 建立觸發時,會拒絕無效的表達式

篩選條件表達式可同時做為條件,也可以做為投影:

  • 當結果不是 null、false、空字串、空陣列或空物件時,觸發會執行。

  • 當結果為布林值 true(例如,類似 的述詞severity == 'critical') 時,代理程式會收到原始事件承載做為內容。

  • 當結果是任何其他真實值 (例如,類似 的投影{sev: severity}) 時,代理程式會收到投影結果做為內容。

AWS DevOps 代理程式會將此內容截斷為 10,000 個字元。

如果您將篩選條件表達式保留空白,代理程式會在該來源的每個事件上執行,並接收原始事件承載做為內容。

注意

評估為空物件或空陣列的投影會視為不相符,且代理程式不會執行。若要傳遞可能空白的值,請將它包裝在物件常值中。例如 {payload: details}。

範例篩選條件表達式:

  • severity == 'critical' – 述詞:只有在嚴重性等於關鍵時才會執行代理程式,並將原始事件承載做為內容傳遞。

  • {sev: severity} – 投影: 在每個事件上執行代理程式,傳遞僅包含嚴重性欄位的物件做為內容。由於多選雜湊一律包含其金鑰,因此結果永遠不會空白,也不會篩選。

由於每個來源的承載形狀不同,可用的欄位取決於整合。當事件到達但未執行觸發時, AWS DevOps 代理程式會發出通知,說明原因。例如,通知可能指出篩選條件表達式不匹配任何內容。該通知也會列出該承載中存在的最上層欄位。如需詳細資訊,請參閱已取代的日誌和指標。

以程式設計方式建立觸發條件

您也可以使用 AWS SDKs。呼叫devops-agent用戶端CreateTrigger的操作,這需要 aidevops:CreateTrigger許可。將觸發類型設定為 ,TIME_BASED並提供包含排程表達式和選用使用者提示的排程條件。

或者,您可以將排程型觸發程序建模為 AWS CloudFormation 中的AWS::DevOpsAgent::Trigger資源。觸發會參考其執行的自訂代理程式,因此請先建立代理程式。如需 AWS::DevOpsAgent::Trigger 資源類型的詳細資訊,請參閱 管理資產。

管理觸發條件

Triggers 索引標籤會顯示為自訂代理程式設定的所有觸發。排程觸發程序會顯示其排程表達式。事件觸發程序會顯示其事件來源,如果已設定,則會顯示其篩選條件表達式。這兩種類型都會顯示建立日期。

如果移除來源整合或其 Webhook,則事件觸發會保持列出,但顯示來源不再可用,而且不會執行。

暫停觸發:

若要暫時停止觸發程序調用代理程式而不將其刪除,請關閉觸發程序旁的切換開關。觸發狀態會變更為已暫停,在重新啟用之前不會再執行。重新開啟切換以繼續。

刪除觸發條件:

若要永久移除觸發條件,請選擇您要移除的觸發條件旁的刪除圖示 (垃圾桶)。在出現的對話方塊中確認刪除。刪除的觸發無法復原。

取消調用

您可以從調用軌跡檢視或透過聊天取消執行中的調用。

若要從軌跡檢視取消執行中的調用:

  1. 從歷史記錄索引標籤中,選擇執行中的調用。

  2. 選擇軌跡檢視頂端的取消。

若要使用聊天取消執行中的調用:

Cancel the running invocation of weekly-health-report.

呼叫狀態會變更為「已取消」。在取消之前完成的任何工作都會保留在軌跡中。發生取消時正在進行的工具呼叫仍可能完成。

工具呼叫結果

在調用期間,自訂代理程式會叫用 MCP 工具來收集資料、執行動作和產生輸出。每個工具呼叫及其結果都會記錄在調用軌跡中。

工具呼叫結果可提供客服人員在調用期間所做動作的透明度:

  • 成功工具呼叫 – 工具傳回代理程式用來繼續其工作的資料。例如, query_cloudwatch_logs會傳回日誌項目,或use_aws傳回 API 回應。

  • 失敗的工具呼叫 – 工具傳回錯誤。代理程式可能會重試、嘗試替代方法,或在其輸出中報告失敗。

您可以在調用軌跡中檢查個別工具呼叫及其結果,以了解客服人員的行為、驗證其是否存取正確的資源,以及對非預期的結果進行疑難排解。如需檢視軌跡的詳細資訊,請參閱檢視調用軌跡。