

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

# 設定適用於 AWS DevOps 代理程式的功能


AWS DevOps Agent 功能透過將代理程式連接到現有的工具和基礎設施來擴展代理程式的功能。設定這些功能以啟用全方位的事件調查、自動化回應工作流程，以及與 DevOps 生態系統的無縫整合。

下列功能可協助您將 DevOps 代理程式的有效性最大化：
+ **AWS EKS 存取設定** - 為公有和私有 EKS 環境啟用 Kubernetes 叢集、Pod 日誌和叢集事件的自我檢查
+ **Azure 整合** - 連接 Azure 訂閱和 Azure DevOps 組織，以調查 Azure 資源並將 Azure DevOps 部署與事件建立關聯
+ **CI/CD 管道整合** - 連接 GitHub 和 GitLab 管道，以將部署與事件建立關聯，並在調查期間追蹤程式碼變更
+ **MCP 伺服器連線** - 透過模型內容通訊協定連接外部可觀測性工具和自訂監控系統來擴展調查功能
+ **多帳戶 AWS 存取** - 設定次要 AWS 帳戶，以在事件回應期間調查整個組織的資源
+ **遙測來源整合** - 連接監控平台，例如 Datadog、Dynatrace、Grafana、New Relic 和 Splunk，以實現全面的可觀測性資料存取
+ **票證和聊天整合** - Connect ServiceNow、PagerDuty 和 Slack，以自動化事件回應工作流程並啟用團隊協作
+ **Webhook 組態** - 允許外部系統透過 HTTP 請求自動觸發 DevOps Agent 調查
+ **Amazon EventBridge 整合** - 透過將調查和緩解生命週期事件路由到 Amazon EventBridge 目標，將 AWS DevOps 代理程式併入事件驅動型應用程式

您可以根據團隊的特定需求和現有的工具堆疊，獨立設定每個功能。從對事件回應工作流程最關鍵的整合開始，然後視需要擴展至其他功能。

# 從公開預覽遷移到一般可用性


如果您在公開預覽期間使用 AWS DevOps 代理程式，您必須在 GA 發行之前更新您的 IAM 角色。本指南會逐步解說更新 帳戶中的監控角色和運算子角色。

## 正在變更的內容


1. [無法再存取預覽期間的隨需聊天歷史記錄](#on-demand-chat-history-from-public-preview)

1. [新的 受管政策取代預覽期間可用的政策](#new-managed-policies)

1. [Agent Spaces 可能有過時的 IAM Identity Center 應用程式存取範圍](#reconnect-iam-identity-center-if-applicable)

## 來自公開預覽的隨需聊天歷史記錄


GA 版本引進額外的安全措施，以強化聊天歷史記錄的存取控制。由於這些變更，來自公開預覽期間 (2026 年 3 月 30 日之前） 的隨需聊天歷史記錄將無法再存取。在公開預覽期間建立的調查日誌和調查結果不受影響。**此變更僅適用於隨需聊天對話。**

## 新的 受管政策


對於 GA， AWS 提供取代預覽時代政策的新受管政策：


| 角色類型 | 移除 | 加 | 
| --- | --- | --- | 
| 監控 | AIOpsAssistantPolicy 受管政策 | AIDevOpsAgentAccessPolicy 受管政策 | 
| 運算子 (IAM 和 IDC) | 內嵌政策 | AIDevOpsOperatorAppAccessPolicy 受管政策 | 

此外，運算子角色需要更新的信任政策，而 IDC 運算子角色需要新的內嵌政策。

### 先決條件

+ 存取已設定 DevOps 代理程式角色 AWS 的帳戶 （主要和所有次要帳戶）
+ 修改角色、政策和信任關係的 IAM 許可
+ 您的客服人員空間 ID、 AWS 帳戶 ID 和區域 (DevOps Agent 主控台中可見）

### 步驟 1：更新監控角色


更新主要帳戶中和每個次要帳戶中的監控角色。這些是在您的客服人員空間**的功能**索引標籤下設定的主要/次要來源角色 （範例主要/次要角色：`DevOpsAgentRole-AgentSpace-3xj2396z`)。

1. 在 DevOps Agent 主控台中，前往您的 Agent Space，然後選擇**功能**索引標籤。

1. 尋找主要/次要來源的監控角色 （例如 `DevOpsAgentRole-AgentSpace-3xj2396z`)，然後選擇**編輯**。

1. 在**許可政策**下，移除 `AIOpsAssistantPolicy` AWS 受管政策。

1. 選擇**新增許可**、**連接政策**，以及連接`AIDevOpsAgentAccessPolicy`受管政策。

1. 編輯內嵌政策，並以下列內容取代其內容，以取代您的帳戶 ID：

```
{
    "Version": "2012-10-17",		 	 	 		 	 	 
    "Statement": [
        {
            "Sid": "AllowCreateServiceLinkedRoles",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": [
                "arn:aws:iam::<account-id>:role/aws-service-role/resource-explorer-2.amazonaws.com/AWSServiceRoleForResourceExplorer"
            ]
        }
    ]
}
```

1. 監控角色的信任政策不需要變更。驗證是否符合下列各項：

```
{
    "Version": "2012-10-17",		 	 	 		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "aidevops.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "<account-id>"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:aidevops:<region>:<account-id>:agentspace/*"
                }
            }
        }
    ]
}
```
+ 為每個次要帳戶中的監控角色重複步驟 2-6。

### 步驟 2：更新運算子角色 (IAM)


1. 在 DevOps Agent 主控台中，選擇**存取**索引標籤並尋找運算子角色。

1. 在 IAM 主控台中，從運算子角色移除現有的內嵌政策。

1. 選擇**新增許可**、**連接政策**，以及連接`AIDevOpsOperatorAppAccessPolicy`受管政策。

1. 選擇**信任關係**索引標籤，然後選擇**編輯信任政策**。將信任政策取代為下列項目，取代您的帳戶 ID、區域和客服人員空間 ID：

```
{
    "Version": "2012-10-17",		 	 	 		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "aidevops.amazonaws.com"
            },
            "Action": ["sts:AssumeRole", "sts:TagSession"],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "<account-id>"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:aidevops:<region>:<account-id>:agentspace/<agentspace-id>"
                }
            }
        }
    ]
}
```

### 步驟 3：更新運算子角色 (IDC)


如果您使用 IAM Identity Center 搭配 DevOps Agent，請更新每個 IDC 運算子角色。

1. 在 IAM 主控台中，前往**角色**並搜尋 `WebappIDC`以尋找您的 DevOps 代理程式 IDC 角色 （例如 `DevOpsAgentRole-WebappIDC-<id>`)。

1. 對於每個 IDC 角色：

a. 移除現有的內嵌政策。

b. 選擇**新增許可**、**連接政策**，以及連接`AIDevOpsOperatorAppAccessPolicy`受管政策。

c. 選擇**信任關係**索引標籤，然後選擇**編輯信任政策**。將信任政策取代為下列項目，取代您的帳戶 ID、區域和客服人員空間 ID：

```
{
    "Version": "2012-10-17",		 	 	 		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "aidevops.amazonaws.com"
            },
            "Action": ["sts:AssumeRole", "sts:TagSession"],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "<account-id>"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:aidevops:<region>:<account-id>:agentspace/<agentspace-id>"
                }
            }
        },
        {
            "Sid": "TrustedIdentityPropagation",
            "Effect": "Allow",
            "Principal": {
                "Service": "aidevops.amazonaws.com"
            },
            "Action": "sts:SetContext",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "<account-id>"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:aidevops:<region>:<account-id>:agentspace/<agentspace-id>"
                },
                "ForAllValues:ArnEquals": {
                    "sts:RequestContextProviders": [
                        "arn:aws:iam::aws:contextProvider/IdentityCenter"
                    ]
                },
                "Null": {
                    "sts:RequestContextProviders": "false"
                }
            }
        }
    ]
}
```

d. 使用下列許可建立新的內嵌政策，以取代您的帳戶 ID：

```
{
    "Version": "2012-10-17",		 	 	 		 	 	 
    "Statement": [
        {
            "Sid": "AllowDevOpsAgentSSOAccess",
            "Effect": "Allow",
            "Action": [
                "sso:ListInstances",
                "sso:DescribeInstance"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowDevOpsAgentIDCUserAccess",
            "Effect": "Allow",
            "Action": "identitystore:DescribeUser",
            "Resource": [
                "arn:aws:identitystore::<account-id>:identitystore/*",
                "arn:aws:identitystore:::user/*"
            ]
        }
    ]
}
```

## 重新連線 IAM Identity Center （如適用）


在公開預覽期間建立的 代理程式空間，可能有已設定過時存取範圍的 IAM Identity Center 應用程式。對於 GA，正確的範圍為 **`aidevops:read_write`**。如果您的 IAM Identity Center 應用程式有先前的範圍 (**`awsaidevops:read_write`**)，您必須中斷連線並重新連線 IAM Identity Center。

### 如何檢查您的 IAM Identity Center 應用程式範圍


執行下列 AWS CLI 命令來檢查 IAM Identity Center 應用程式上的範圍。您可以在應用程式下的 IAM Identity Center 主控台中找到**應用程式** ARN。

```
aws sso-admin list-application-access-scopes \
  --application-arn arn:aws:sso::<account-id>:application/<instance-id>/<application-id>
```

輸出應會顯示正確的範圍 **`aidevops:read_write`**：

```
{
    "Scopes": [
        {
            "Scope": "aidevops:read_write"
        }
    ]
}
```

如果範圍顯示 **`awsaidevops:read_write`**，則會過期。請依照下列步驟進行更新。

### 如何重新連線 IAM Identity Center


 AWS 受管 IAM Identity Center 應用程式的存取範圍無法直接更新。您必須中斷連線並重新連線：

1. 在 AWS DevOps 代理程式主控台中，前往您的代理程式空間，然後選擇**存取**索引標籤。

1. 選擇 IAM Identity Center 組態旁的**中斷**連線。

1. 確認中斷連線。

1. 選擇**連線**以再次設定 IAM Identity Center。服務會以正確的範圍建立新的 IAM Identity Center 應用程式。

1. 在 IAM Identity Center 主控台中將使用者和群組重新指派給新應用程式。

**重要**  
中斷連線會移除與 IAM Identity Center 使用者帳戶相關聯的個別使用者聊天和成品歷史記錄。重新連線後，使用者將需要再次登入。

## 驗證


完成所有步驟後：

1. 返回 DevOps Agent 主控台，並確認 Agent Space **Access** 索引標籤上沒有出現許可錯誤。

1. 測試 運算子 Web 應用程式，以確認其正確載入和運作。

1. 如果您使用 IDC，請確認使用者可以驗證和存取運算子體驗。

## 疑難排解


**遷移後許可遭拒錯誤**
+ 確認 `AIOpsAssistantPolicy` 已移除`AIDevOpsAgentAccessPolicy`並連接至監控角色。
+ 確認舊的內嵌政策已移除`AIDevOpsOperatorAppAccessPolicy`並連接至運算子角色。
+ 檢查運算子信任政策是否包含 `sts:TagSession`。
+ 確認您已將所有預留位置值 (`<account-id>`、`<region>`、`<agentspace-id>`) 取代為實際值。

**次要帳戶無法運作**
+ 每個次要帳戶的監控角色都必須獨立更新。登入每個帳戶並重複步驟 1。

**IDC 身分驗證失敗**
+ 驗證 IDC 信任政策同時包含 `sts:AssumeRole`/`sts:TagSession` 陳述式和 `TrustedIdentityPropagation`陳述式。
+ 使用 `sso:ListInstances`、 `sso:DescribeInstance`和 確認內嵌政策`identitystore:DescribeUser`已建立。

**遷移後缺少隨需聊天歷史記錄**
+ 在 GA 發行之後，無法存取來自公開預覽期間的隨需聊天歷史記錄。這是由於 GA 中引入的增強型安全措施而預期的行為。來自公開預覽的調查日誌和調查結果不受影響。

# AWS EKS 存取設定


您可以針對公有和私有叢集執行唯讀`kubectl`命令，讓 AWS DevOps 代理程式調查 Amazon EKS 叢集中的問題。您可以將任意數量的 EKS 叢集連接到相同的代理程式空間。

連線後，代理程式可以協助診斷叢集中的操作問題：描述資源、擷取 Pod 日誌、檢查叢集事件、檢查節點運作狀態等。代理程式無法建立、修改或刪除叢集中的任何資源。

## 先決條件


在設定 EKS 存取之前，請確定 EKS 叢集的身分驗證模式包含 EKS API。您可以在 [Amazon EKS 主控台](https://console.aws.amazon.com/eks)的**存取**索引標籤上檢查此問題。如果模式不包含 EKS API，請在繼續之前選取執行的模式。

## 設定


對於您要為其建立存取項目的每個叢集，這些步驟需要從 [Amazon EKS 主控台](https://console.aws.amazon.com/eks)完成。您可以在 Agent Space （請參閱 [建立 代理程式空間](getting-started-with-aws-devops-agent-creating-an-agent-space.md)) 的功能 **> 雲端 > 主要來源 > 編輯**下找到您的 IAM 角色 ARN。

1. 前往**存取**索引標籤。如果身分驗證模式已顯示 EKS API，您可以新增存取項目。否則，請選取包含 EKS API 的模式。

1. 從存取索引標籤中，建立新的 IAM 存取項目。複製您的主要雲端來源 IAM 角色 ARN，並將其輸入為存取項目的 IAM 主體。按一下 **Next (下一步)**。

1. 選取 AWS Managed **AmazonAIOpsAssistantPolicy** 存取政策，然後選取存取範圍的**叢集**。（或者，如果您希望代理程式只存取特定命名空間，請選取所需的 **Kubernetes 命名空間**)。按一下**新增政策**，然後按一下**下一步**。

1. 檢閱變更並確認已選擇正確的存取項目政策和 IAM 角色，然後按一下**「建立」**來建立您的存取項目。

若要驗證 EKS 存取是否已正確設定，請導覽至運算子應用程式並開始新的調查，向客服人員詢問有關叢集的問題，例如「列出預設命名空間中的所有 Pod」或「顯示我叢集中的最近事件」。

## 疑難排解


如果代理程式無法連接您的叢集，請確認存取項目使用設定對話方塊中顯示的正確 IAM 角色 ARN，且已連接 **AmazonAIOpsAssistantPolicy** 存取政策。

# 連接 Azure


Azure 整合可讓 AWS DevOps 代理程式調查 Azure 環境中的資源，並將 Azure DevOps 管道部署與操作事件建立關聯。透過連接 Azure，代理程式可以獲得 Azure 基礎設施的可見性，並可以跨 AWS 和 Azure 資源執行根本原因分析。

Azure 整合包含兩個獨立功能：
+ **Azure 資源** – 可讓代理程式探索和調查 Azure 雲端資源，例如虛擬機器、Azure Kubernetes Service (AKS) 叢集、資料庫和網路元件。代理程式會使用 Azure Resource Graph 在事件調查期間查詢您的資源。
+ **Azure DevOps** – 讓代理程式存取 Azure DevOps 儲存庫和管道執行歷史記錄。代理程式可以將程式碼變更和部署與事件建立關聯，以協助識別潛在的根本原因。

每個功能都會在 AWS 帳戶層級註冊，然後可以與個別客服人員空間建立關聯。

## 註冊方法


AWS DevOps Agent 支援兩種連線至 Azure 的方法：
+ **管理員同意** – 簡化的以同意為基礎的流程，您可以在其中授權 Azure 租用戶中的 AWS DevOps Agent Entra 應用程式。在 主控台中，這會顯示為**管理員同意**選項。此方法需要使用具有在 Microsoft Entra ID 中執行管理員同意許可的帳戶登入。
+ **應用程式註冊** – 一種自我管理的方法，可讓您使用傳出聯合身分，使用聯合身分憑證建立自己的 Entra 應用程式。在 主控台中，這會顯示為**應用程式註冊**選項。當您需要對應用程式組態進行更多控制，或管理員同意許可不可用時，此方法很適合。

這兩種方法都提供相同的功能。您可以在同一個 AWS 帳戶中使用一種或兩種方法。

## 已知限制

+ **管理員同意：每個 Azure 租用戶一個 AWS 帳戶** – 每個 Azure 租用戶一次只能與一個 AWS 帳戶 AWS DevOps 建立關聯。若要將相同的租用戶與不同的 AWS 帳戶建立關聯，您必須先取消註冊現有的註冊。
+ **應用程式註冊：每個註冊的唯一應用程式** – 每個應用程式註冊都必須使用不同的應用程式 （用戶端 ID)。您無法使用相同的用戶端 ID 註冊多個組態。
+ **Azure DevOps：原始程式碼存取** – Azure DevOps 整合提供管道執行歷史記錄的存取，無論原始程式碼託管在何處。不過，若要存取實際來源碼，儲存庫必須透過支援的來源提供者 （例如 ) 分別連線[連接 GitHub](connecting-to-cicd-pipelines-connecting-github.md)。Bitbucket 中託管的原始程式碼無法透過 Azure DevOps 整合直接存取。

## 主題

+ [連接 Azure 資源](connecting-azure-connecting-azure-resources.md)
+ [連接 Azure DevOps](connecting-azure-connecting-azure-devops.md)

# 連接 Azure 資源


Azure 資源整合可讓 AWS DevOps 代理程式在事件調查期間探索和調查 Azure 訂閱中的資源。代理程式使用 Azure Resource Graph 進行資源探索，並可跨 Azure 環境存取指標、日誌和組態資料。

此整合遵循兩個步驟：在 AWS 帳戶層級註冊 Azure，然後將特定 Azure 訂閱與個別客服人員空間建立關聯。

## 先決條件


連接 Azure 資源之前，請確定您已：
+ 存取 AWS DevOps 代理程式主控台
+ 可存取目標訂閱的 Azure 帳戶
+ 針對管理員同意方法：具有在 Microsoft Entra ID 中執行管理員同意許可的帳戶
+ 對於應用程式註冊方法：具有設定聯合身分憑證許可的 Entra 應用程式，以及在 AWS 您的帳戶中啟用[傳出身分聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-federation.html) 

**注意：**您也可以從 代理程式空間內開始註冊。導覽至**次要來源**，按一下**新增**，然後選取 **Azure**。如果 Azure Cloud 尚未註冊，主控台會先引導您完成註冊。

## 透過管理員同意註冊 Azure 資源


管理員同意方法使用以同意為基礎的流程搭配 AWS DevOps 代理程式受管應用程式。

### 步驟 1：開始註冊


1. 登入 AWS 管理主控台並導覽至 AWS DevOps 代理程式主控台

1. 前往**功能提供者**頁面

1. 找到 **Azure 雲端**區段，然後按一下**註冊**

1. 選取**管理員同意**註冊方法

### 步驟 2：完成管理員同意


1. 檢閱請求的許可

1. 按一下以繼續 - 系統會將您重新導向至 Microsoft Entra 管理員同意頁面

1. 使用具有執行管理員同意許可的使用者主體帳戶登入

1. 檢閱並授予對 AWS DevOps Agent 應用程式的同意

### 步驟 3：完成使用者授權


1. 管理員同意後，系統會提示您輸入使用者授權，以驗證您的身分為授權租用戶的成員

1. 使用屬於相同 Azure 租用戶的帳戶登入

1. 授權之後，系統會將您重新導向回成功狀態的 AWS DevOps 代理程式主控台

### 步驟 4：指派角色


請參閱以下[指派 Azure 角色](#assigning-azure-roles)。選取成員時搜尋 **AWS DevOps 代理**程式。

## 透過應用程式註冊註冊 Azure 資源


應用程式註冊方法使用您自己的 Entra 應用程式搭配聯合身分憑證。

### 步驟 1：開始註冊


1. 在 AWS DevOps 代理程式主控台中，前往**功能提供者**頁面

1. 找到 **Azure 雲端**區段，然後按一下**註冊**

1. 選取**應用程式註冊**方法

### 步驟 2：建立和設定您的 Entra 應用程式


遵循主控台中顯示的指示，以：

1. 在 AWS 帳戶中啟用傳出聯合身分 （在 IAM 主控台中，前往**帳戶設定** → **傳出聯合身分**)

1. 在 Microsoft Entra ID 中建立 Entra 應用程式，或使用現有的應用程式

1. 在應用程式上設定聯合身分憑證

### 步驟 3：提供註冊詳細資訊


使用下列項目填寫註冊表單：
+ **租用戶 ID** – Azure 租用戶識別符
+ **租用戶名稱** – 租用戶的顯示名稱
+ **用戶端 ID** – 您建立之 Entra 應用程式的應用程式 （用戶端） ID
+ **對象** – 聯合登入資料的對象識別符

### 步驟 4：建立 IAM 角色


當您透過主控台提交註冊時，會自動建立 IAM 角色。它允許 AWS DevOps 代理程式擔任登入資料並叫用 `sts:GetWebIdentityToken`。

### 步驟 5：指派角色


請參閱以下[指派 Azure 角色](#assigning-azure-roles)。搜尋您在選取成員時建立的 Entra 應用程式。

### 步驟 6：完成註冊


1. 在 AWS DevOps 代理程式主控台中確認組態

1. 按一下**提交**以完成註冊

## 指派 Azure 角色


註冊後，授予應用程式對 Azure 訂閱的讀取存取權。管理員同意和應用程式註冊方法的此步驟相同。

1. 在 Azure 入口網站中，導覽至您的目標訂閱

1. 前往**存取控制 (IAM)**

1. 按一下**新增** > **新增角色指派**

1. 選取**讀取器**角色，然後按一下**下一步**

1. 按一下**選取成員**，搜尋應用程式 (**AWS DevOps Agent** for Admin Consent 或您自己的 Entra 應用程式用於應用程式註冊）

1. 選取應用程式，然後按一下**檢閱 \$1 指派**

1. （選用） 若要讓代理程式存取 Azure Kubernetes Service (AKS) 叢集，請完成下列 AKS 存取設定。

**安全需求：**服務主體必須僅指派**讀取**器角色 （以及選擇性地指派下列 AKS 唯讀角色）。Reader 角色可做為安全界限，將代理程式限制為唯讀操作，並限制間接提示注入攻擊的影響。指派具有寫入或動作許可的角色會大幅增加提示注入的爆量半徑，並可能導致 Azure 資源遭到入侵。 AWS DevOps 代理程式只會執行讀取操作。代理程式不會修改、建立或刪除 Azure 資源。

### AKS 存取設定 （選用）


#### 步驟 1：Azure Resource Manager (ARM) 層級存取


將 **Azure Kubernetes 服務叢集使用者角色**指派給應用程式。

在 Azure 入口網站中，前往**訂閱** → 選取訂閱 → **存取控制 (IAM)** → **新增角色指派** → 選取 **Azure Kubernetes 服務叢集使用者角色** → 指派給應用程式 (**AWS DevOps Agent** for Admin Consent 或您自己的 Entra 應用程式用於應用程式註冊）。

這涵蓋訂閱中的所有 AKS 叢集。若要限定特定叢集的範圍，請改為在資源群組或個別叢集層級指派 。

#### 步驟 2：Kubernetes API 存取


根據叢集的身分驗證組態選擇一個選項：

**選項 A：Kubernetes 的 Azure 角色型存取控制 (RBAC) （建議）**

1. 如果尚未啟用，請在叢集上啟用 Azure RBAC：Azure 入口網站 → AKS 叢集 → **設定** → **安全組態** → **身分驗證和授權** → 選取 **Azure RBAC**

1. 指派唯讀角色：Azure 入口網站 → **訂閱** → 選取訂閱 → **存取控制 (IAM)** → **新增角色指派** → 選取 **Azure Kubernetes Service RBAC 讀取器** → 指派給應用程式

這涵蓋訂閱中的所有 AKS 叢集。

**選項 B：Azure Active Directory (Azure AD) \$1 Kubernetes RBAC**

如果您的叢集已使用預設的 Azure AD 身分驗證組態，且您不想啟用 Azure RBAC，請使用此選項。這需要每個叢集`kubectl`的設定。

1. 將下列資訊清單儲存為 `devops-agent-reader.yaml`：

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: devops-agent-reader
rules:
  - apiGroups: [""]
    resources: ["namespaces", "pods", "pods/log", "services", "events", "nodes"]
    verbs: ["get", "list"]
  - apiGroups: ["apps"]
    resources: ["deployments", "replicasets", "statefulsets", "daemonsets"]
    verbs: ["get", "list"]
  - apiGroups: ["metrics.k8s.io"]
    resources: ["pods", "nodes"]
    verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: devops-agent-reader-binding
subjects:
  - kind: User
    name: "<SERVICE_PRINCIPAL_OBJECT_ID>"
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: devops-agent-reader
  apiGroup: rbac.authorization.k8s.io
```

1. `<SERVICE_PRINCIPAL_OBJECT_ID>` 以服務主體的物件 ID 取代 。若要尋找它：Azure Portal → Entra ID → 企業應用程式 → 搜尋應用程式名稱 (**AWS DevOps Agent** for Admin Consent 或您自己的 Entra 應用程式用於應用程式註冊）。

1. 套用至每個叢集：

```
az aks get-credentials --resource-group <rg> --name <cluster-name>
kubectl apply -f devops-agent-reader.yaml
```

**注意：**僅支援使用本機帳戶的叢集 （不含 Azure AD)。建議您在叢集上啟用 Azure AD 整合，以使用此功能。

### 最低權限自訂角色 （選用）


若要加強存取控制，您可以建立自訂 Azure 角色，範圍僅限於資源提供者 AWS DevOps 代理程式使用的 ，而非廣泛的讀取器角色：

```
{
  "Name": "AWS DevOps Agent - Azure Reader",
  "Description": "Least-privilege read-only access for AWS DevOps Agent incident investigations.",
  "Actions": [
    "Microsoft.AlertsManagement/*/read",
    "Microsoft.Compute/*/read",
    "Microsoft.ContainerRegistry/*/read",
    "Microsoft.ContainerService/*/read",
    "Microsoft.ContainerService/managedClusters/commandResults/read",
    "Microsoft.DocumentDB/*/read",
    "Microsoft.Insights/*/read",
    "Microsoft.KeyVault/vaults/read",
    "Microsoft.ManagedIdentity/*/read",
    "Microsoft.Monitor/*/read",
    "Microsoft.Network/*/read",
    "Microsoft.OperationalInsights/*/read",
    "Microsoft.ResourceGraph/resources/read",
    "Microsoft.ResourceHealth/*/read",
    "Microsoft.Resources/*/read",
    "Microsoft.Sql/*/read",
    "Microsoft.Storage/*/read",
    "Microsoft.Web/*/read"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{your-subscription-id}"
  ]
}
```

## 將訂閱與客服人員空間建立關聯


在帳戶層級註冊 Azure 之後，請將特定訂閱與您的 代理程式空間建立關聯：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在**次要來源**區段中，按一下**新增**

1. 選取 **Azure**

1. 提供您要關聯的 Azure 訂閱的訂閱 **ID** 

1. 按一下**新增**以完成關聯

您可以將多個訂閱與相同的代理程式空間建立關聯，讓代理程式在您的 Azure 環境中可見性。

## 管理 Azure 資源連線

+ **檢視連線訂閱** – 在**功能**索引標籤中，**次要來源**區段會列出所有連線的 Azure 訂閱。
+ **移除訂閱** – 若要中斷訂閱與客服人員空間的連線，請在**次要來源**清單中選取訂閱，然後按一下**移除**。這不會影響帳戶層級註冊。
+ **移除註冊** – 若要完全移除 Azure 雲端註冊，請前往**功能提供者**頁面並刪除註冊。必須先移除所有 Agent Space 關聯。

# 連接 Azure DevOps


Azure DevOps 整合可讓 AWS DevOps Agent 存取 Azure DevOps 組織中的儲存庫和管道執行歷史記錄。代理程式可以將程式碼變更和部署與操作事件建立關聯，以協助識別潛在的根本原因。

**注意：**Azure DevOps 管道可以使用來自 Azure Repos、GitHub 或 Bitbucket 的原始程式碼。無論來源提供者為何，Azure DevOps 整合都可以存取管道執行歷史記錄。不過，若要在調查期間存取實際的原始程式碼，儲存庫必須透過支援的整合分別連線，例如 [連接 GitHub](connecting-to-cicd-pipelines-connecting-github.md)。Bitbucket 中的原始程式碼無法透過此整合直接存取。

此整合遵循兩個步驟：在 AWS 帳戶層級註冊 Azure DevOps，然後將特定專案與個別客服人員空間建立關聯。

## 先決條件


連接 Azure DevOps 之前，請確定您擁有：
+ 存取 AWS DevOps 代理程式主控台
+ 至少有一個專案包含儲存庫和管道歷史記錄的 Azure DevOps 組織
+ 將使用者新增至 Azure DevOps 組織的許可
+ 針對管理員同意方法：具有在 Microsoft Entra ID 中執行管理員同意許可的帳戶
+ 對於應用程式註冊方法：具有設定聯合身分憑證許可的 Entra 應用程式，以及在 AWS 您的帳戶中啟用[傳出身分聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-federation.html) 

**注意：**您也可以從 代理程式空間內開始註冊。導覽至**管道**區段，按一下**新增**，然後選取 **Azure DevOps**。如果 Azure DevOps 尚未註冊，主控台會先引導您完成註冊。

## 透過管理員同意註冊 Azure DevOps


管理員同意方法使用以同意為基礎的流程搭配 AWS DevOps 代理程式受管應用程式。

### 步驟 1：開始註冊


1. 登入 AWS 管理主控台並導覽至 AWS DevOps 代理程式主控台

1. 前往**功能提供者**頁面

1. 找到 **Azure DevOps** 區段，然後按一下**註冊**

1. 出現提示時輸入您的 **Azure DevOps 組織名稱** 

### 步驟 2：完成管理員同意


1. 按一下以繼續 - 系統會將您重新導向至 Microsoft Entra 管理員同意頁面

1. 使用具有執行管理員同意許可的使用者主體帳戶登入

1. 檢閱並授予對 AWS DevOps Agent 應用程式的同意

### 步驟 3：完成使用者授權


1. 管理員同意後，系統會提示您輸入使用者授權，以驗證您的身分為授權租用戶的成員

1. 使用屬於相同 Azure 租用戶的帳戶登入

1. 授權之後，系統會將您重新導向回成功狀態的 AWS DevOps 代理程式主控台

### 步驟 4：在 Azure DevOps 中授予存取權


請參閱下方的[在 Azure DevOps 中授予存取權](#granting-access-in-azure-devops)。在新增使用者時搜尋 **AWS DevOps 代理**程式。

## 透過應用程式註冊註冊 Azure DevOps


應用程式註冊是在 Azure 資源和 Azure DevOps 之間共用。如果您已完成 Azure 資源的應用程式註冊，可以跳到[在 Azure DevOps 中授予存取權](#granting-access-in-azure-devops)。

### 步驟 1：啟動 ADO 應用程式註冊


1. 在 AWS DevOps 代理程式主控台中，前往**功能提供者**頁面

1. 找到 **Azure 雲端**區段，然後按一下**註冊**

1. 選取**應用程式註冊**方法

### 步驟 2：建立和設定您的 Entra 應用程式


遵循主控台中顯示的指示，以：

1. 在 AWS 帳戶中啟用傳出聯合身分 （在 IAM 主控台中，前往**帳戶設定** → **傳出聯合身分**)

1. 在 Microsoft Entra ID 中建立 Entra 應用程式，或使用現有的應用程式

1. 在應用程式上設定聯合身分憑證

### 步驟 3：提供註冊詳細資訊


使用下列項目填寫註冊表單：
+ **租用戶 ID** – Azure 租用戶識別符
+ **租用戶名稱** – 租用戶的顯示名稱
+ **用戶端 ID** – Entra 應用程式的應用程式 （用戶端） ID
+ **對象** – 聯合登入資料的對象識別符

### 步驟 4：建立 IAM 角色


當您透過主控台提交註冊時，會自動建立 IAM 角色。它允許 AWS DevOps 代理程式擔任登入資料並叫用 `sts:GetWebIdentityToken`。

### 步驟 5：完成註冊


1. 在 AWS DevOps 代理程式主控台中確認組態

1. 按一下**提交**以完成註冊

### 步驟 6：在 Azure DevOps 中授予存取權


請參閱下方的[在 Azure DevOps 中授予存取權](#granting-access-in-azure-devops)。在新增使用者時，搜尋您在應用程式註冊期間建立的 Entra 應用程式。

## 在 Azure DevOps 中授予存取權


註冊後，將應用程式存取權授予 Azure DevOps 組織。管理員同意和應用程式註冊方法的此步驟相同。

1. 在 Azure DevOps 中，前往**組織設定** > **使用者** > **新增使用者**

1. 搜尋應用程式 (**AWS DevOps Agent** for Admin Consent 或您自己的 Entra 應用程式用於應用程式註冊）

1. 將存取層級設定為**基本**

1. 在**新增至專案**下，選取您希望客服人員存取的專案

1. 在 **Azure DevOps 群組**下，選取**專案讀取器**

1. 按一下**新增**以完成

**安全需求：**僅指派 **Project Readers** 群組。唯讀存取可做為安全界限，將代理程式限制為唯讀操作，並限制間接提示注入攻擊的影響。指派具有寫入或動作許可的群組會大幅增加提示注入的爆量半徑，並可能導致 Azure DevOps 資源遭到入侵。

## 將專案與客服人員空間建立關聯


在帳戶層級註冊 Azure DevOps 之後，請將特定專案與您的 代理程式空間建立關聯：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在**管道**區段中，按一下**新增**

1. 從可用提供者清單中選取 **Azure DevOps** 

1. 從可用專案的下拉式清單中選取專案

1. 按一下**新增**以完成關聯

## 管理 Azure DevOps 連線

+ **檢視連線的專案** – 在**功能**索引標籤中，**管道**區段會列出所有連線的 Azure DevOps 專案。
+ **移除專案** – 若要中斷專案與客服人員空間的連線，請在**管道**區段中選取專案，然後按一下**移除**。
+ **移除註冊** – 若要完全移除 Azure DevOps 註冊，請前往**功能提供者**頁面並刪除註冊。必須先移除所有 Agent Space 關聯。

# 連線至 CI/CD 管道


CI/CD 管道整合可讓 AWS DevOps 代理程式監控部署，並在調查期間將程式碼變更與操作事件建立關聯。透過連接您的 CI/CD 供應商，代理程式可以追蹤部署事件並將其與 AWS 資源建立關聯，以協助識別事件回應期間的潛在根本原因。

AWS DevOps Agent 透過兩步驟程序支援與熱門 CI/CD 平台整合：

1. **帳戶層級註冊** – 在 AWS 帳戶層級註冊您的 CI/CD 供應商一次

1. **客服人員空間連線** – 根據您的組織需求，將特定專案或儲存庫連線至個別客服人員空間

此方法可讓您跨多個客服人員空間共用 CI/CD 提供者註冊，同時維持每個空間監控哪些專案的精細控制。

## 支援的 CI/CD 供應商


AWS DevOps Agent 支援下列 CI/CD 平台：
+ **GitHub** – 使用 AWS DevOps Agent GitHub 應用程式從 [GitHub.com](http://GitHub.com) 連接儲存庫。 GitHub 
+ **GitLab** – 從 [GitLab.com,](http://gitlab.com)受管 GitLab 執行個體或可公開存取的自我託管 GitLab 部署連接專案。

**主題**
+ [連接 GitHub](connecting-to-cicd-pipelines-connecting-github.md)
+ [連接 GitLab](connecting-to-cicd-pipelines-connecting-gitlab.md)

# 連接 GitHub


GitHub 整合可讓 AWS DevOps 代理程式在事件調查期間存取程式碼儲存庫並接收部署事件。此整合遵循兩個步驟：GitHub 的帳戶層級註冊，接著將特定儲存庫連線至個別 Agent Spaces。

AWS DevOps Agent 同時支援 GitHub.com (SaaS) 和 GitHub Enterprise Server （自我託管） 執行個體。

## 先決條件


連接 GitHub 之前，請確定您有：
+ 存取 AWS DevOps 代理程式管理員主控台
+ 具有管理員許可的 GitHub 使用者帳戶或組織
+ 在您的帳戶或組織中安裝 GitHub 應用程式的授權

對於 GitHub Enterprise Server，您也需要：
+ 透過 HTTPS 存取的 GitHub Enterprise Server 執行個體 (3.x 版或更新版本）
+ GitHub Enterprise Server 執行個體的 HTTPS URL （例如 `https://github.example.com`)
+ （選用） 私有連線，如果您的 GitHub Enterprise Server 執行個體無法公開存取

## 註冊 GitHub （帳戶層級）


GitHub 已在 AWS 帳戶層級註冊，並與該帳戶中的所有客服人員空間共用。每個 AWS 帳戶只需要註冊一次 GitHub。

### 步驟 1：導覽至管道供應商


1. 登入 AWS 管理主控台

1. 導覽至 AWS DevOps 代理程式主控台

1. 前往**功能**索引標籤

1. 在**管道**區段中，按一下**新增**

1. 從可用提供者清單中選取 **GitHub** 

如果 GitHub 尚未註冊，系統會提示您先註冊。

### 步驟 2：選擇連線類型


在「註冊 GitHub 帳戶/組織」畫面上，選取您是以使用者或組織身分連線：
+ **使用者** – 具有使用者名稱和設定檔的個人 GitHub 帳戶
+ **Organization** – 共用的 GitHub 帳戶，可讓多個人員一次跨多個專案協作

如果您要連線至 GitHub Enterprise Server 執行個體，請勾選**使用 GitHub Enterprise Server** 核取方塊，然後輸入執行個體的 HTTPS URL （例如 `https://github.example.com`)。

如果您的 GitHub Enterprise Server 執行個體無法公開存取，您可以選擇設定私有連線，以允許 AWS DevOps 代理程式安全地連線到您的執行個體。如需詳細資訊，請參閱[連線至私有託管工具](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md)。

**注意**  
** 請勿在 URL 中包含 `/api/v3`或任何結尾路徑 — 請僅輸入基本 URL。

### 步驟 3：設定 GitHub 應用程式


按一下**提交**以開始應用程式設定程序。後續步驟會根據您是否連線到 GitHub.com 或 GitHub Enterprise Server 而有所不同。

#### 對於 GitHub.com


1. 您將重新導向至 GitHub 以安裝 AWS DevOps Agent GitHub 應用程式。

1. 選取要安裝應用程式的帳戶或組織。

1. 應用程式允許 AWS DevOps Agent 從連線的儲存庫接收事件，包括部署事件。

#### 對於 GitHub Enterprise Server


GitHub Enterprise Server 使用 GitHub 應用程式資訊清單流程，自動在您的執行個體上設定新的 GitHub 應用程式。這包括 GitHub Enterprise Server 執行個體的兩個重新導向。

1. 您的瀏覽器將重新導向至 GitHub Enterprise Server 執行個體的「建立 GitHub 應用程式」頁面。

1. 您將看到應用程式名稱已預先填入。您可以視需要變更名稱。按一下**建立 GitHub 應用程式**。

1. 系統會將您重新導向回 AWS DevOps 代理程式，該代理程式會交換資訊清單程式碼以取得應用程式登入資料。

### 步驟 4：選取儲存庫並完成安裝


1. 您將看到 GitHub 應用程式的**安裝與授權**頁面。

1. 選取要允許應用程式存取的儲存庫：
   + **所有儲存庫** – 授予所有目前和未來儲存庫的存取權
   + **僅選取儲存庫** – 從您的帳戶或組織選擇特定儲存庫

1. 按一下**安裝和授權**。

1. 系統會將您重新導向回 AWS DevOps 代理程式主控台，其中 GitHub 會在帳戶層級顯示為已註冊。

## 將儲存庫連線至 代理程式空間


在帳戶層級註冊 GitHub 之後，您可以將特定儲存庫連線至個別客服人員空間：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在**管道**區段中，按一下**新增**

1. 從可用提供者清單中選取 **GitHub** 

1. 選取與此客服人員空間相關的儲存庫子集

1. 按一下**新增**以完成連線

您可以根據您的組織需求，將不同的儲存庫集連接到不同的 Agent Spaces。

## 了解 GitHub 應用程式


The AWS DevOps Agent GitHub 應用程式：
+ 請求唯讀存取您的儲存庫
+ 接收部署事件和其他儲存庫事件
+ 允許 AWS DevOps 代理程式將程式碼變更與操作事件建立關聯
+ 您可以隨時透過 GitHub 設定解除安裝

對於 GitHub Enterprise Server，GitHub 應用程式會在註冊期間自動在您的執行個體上建立。您可以透過**設定 > 應用程式 > 已安裝的 GitHub 應用程式**來管理應用程式的儲存庫存取權或將其解除安裝。若要完全刪除應用程式定義，請前往**設定 > 開發人員設定 > GitHub 應用程式**。

## 管理 GitHub 連線

+ **更新儲存庫存取** – 若要變更 GitHub 應用程式可存取的儲存庫，請前往您的 GitHub 帳戶或組織設定 （或 GitHub Enterprise Server 執行個體設定）、導覽至已安裝的 GitHub 應用程式，以及修改 AWS DevOps Agent 應用程式組態。
+ **檢視連線的儲存庫** – 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間，然後前往功能索引標籤，在管道區段中檢視連線的儲存庫。
+ **移除 GitHub 連線** – 若要中斷 GitHub 與客服人員空間的連線，請在管道區段中選取連線，然後按一下**移除**。若要完全解除安裝 GitHub 應用程式，請從 GitHub 帳戶或組織設定解除安裝它。對於 GitHub Enterprise Server，由於 GitHub 應用程式是在註冊期間直接在您的執行個體上建立，因此您可以選擇完全清除應用程式，方法是執行下列兩項操作：
  + **解除安裝應用程式** – 前往**設定 > 應用程式 > 安裝的 GitHub 應用程式**，按一下應用程式上的**設定**，然後解除安裝應用程式。
  + **刪除應用程式** – 前往**設定 > 開發人員設定 > GitHub 應用程式**、選取應用程式、前往**進階**索引標籤，然後選擇**刪除 GitHub 應用程式**。**警告：**刪除 GitHub 應用程式是永久的，無法復原。如果您刪除它，則需要從 AWS DevOps 代理程式主控台的開頭重新註冊 GitHub Enterprise Server，以建立新的應用程式。

# 連接 GitLab


GitLab 整合可讓 AWS DevOps 代理程式從 GitLab 管道監控部署，以在事件回應期間通知因果調查。此整合遵循兩個步驟：GitLab 的帳戶層級註冊，接著將特定專案連線至個別 Agent Spaces。

## 註冊 GitLab （帳戶層級）


GitLab 已在 AWS 帳戶層級註冊，並與該帳戶中的所有客服人員空間共用。個別客服人員空間接著可以選擇哪些特定專案適用於其客服人員空間。

### 步驟 1：導覽至管道供應商


1. 登入 AWS 管理主控台

1. 導覽至 AWS DevOps 代理程式主控台

1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**管道**下的**可用**供應商區段中尋找 **GitLab**，然後按一下**註冊**

### 步驟 2：設定 GitLab 連線


在 GitLab 註冊頁面上，設定下列項目：

**連線類型** – 選取您是以個人或群組身分連線：
+ **個人** （預設） – 具有使用者名稱和設定檔的個別 GitLab 使用者帳戶
+ **群組** – 在 GitLab 中，您可以使用群組來同時管理一或多個相關專案

**GitLab 執行個體類型** – 選擇您要連接的 GitLab 執行個體類型：
+ **GitLab.com** （預設） – 公有 GitLab 服務
+ **可公開存取的自我託管 GitLab** – 檢查**使用 GitLab 自我託管端點**方塊，並將 URL 提供給 GitLab 執行個體

**注意**  
** 目前僅支援可公開存取的 GitLab 執行個體。

**存取字符** – 提供 GitLab 個人存取字符：

1. 在單獨的瀏覽器索引標籤中，登入您的 GitLab 帳戶

1. 導覽至您的使用者設定，然後選取**存取字符**

1. 使用下列許可建立新的個人存取字符：
   + `read_repository` – 存取儲存庫內容時需要
   + `read_virtual_registry` – 存取虛擬登錄檔資訊時需要
   + `read_registry` – 存取登錄檔資訊時需要
   + `api` – 讀取和寫入 API 存取時需要
   + `self_rotate` - 輪換權杖時需要。 AWS DevOps 代理程式目前不支援此功能，但稍後會支援此功能。立即新增 可避免未來需要建立新的權杖。

1. 將字符過期設定為從目前日期起算最多 365 天

1. 複製產生的字符

1. 返回 AWS DevOps 代理程式主控台

1. 將字符貼到「存取字符」欄位中

### 步驟 3：完成註冊


**（選用） 標籤** – 將 AWS 標籤新增至 GitLab 註冊以供組織使用。

按一下**下一步**以檢閱您的組態，然後按一下**提交**以完成 GitLab 註冊程序。系統會驗證您的存取權杖並建立連線。

## 將專案連線至 代理程式空間


在帳戶層級註冊 GitLab 之後，您可以將特定專案連線到個別的 Agent Spaces：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在**管道**區段中，按一下**新增**

1. 從可用提供者清單中選取 **GitLab** 

1. 選取與您的客服人員空間相關的 GitLab 專案

1. 按一下**儲存**

AWS DevOps 代理程式將監控這些專案的 GitLab Pipelines 部署，以通知因果調查。

## 管理 GitLab 連線

+ **更新存取權杖** – 如果您的存取權杖過期或需要更新，您可以在帳戶層級修改 GitLab 註冊，以在 AWS DevOps 代理程式主控台中更新它。
+ **檢視連線的專案** – 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間，然後前往功能索引標籤，在管道區段中檢視連線的專案。
+ **移除 GitLab 連線** – 若要中斷 GitLab 專案與客服人員空間的連線，請在管道區段中選取連線，然後按一下**移除**。若要完全移除 GitLab 註冊，請先將其從所有 Agent Spaces 中移除，然後在帳戶層級刪除註冊。

# 連接 MCP 伺服器


模型內容通訊協定 (MCP) 伺服器透過提供來自外部可觀測性工具、自訂監控系統和操作資料來源的資料存取權，來擴展 AWS DevOps 代理程式的調查功能。本指南說明如何將 MCP 伺服器連線至 AWS DevOps Agent。

## 要求


連接 MCP 伺服器之前，請確定您的伺服器符合下列要求：
+ **可串流 HTTP 傳輸通訊協定** – 僅支援實作可串流 HTTP 傳輸通訊協定的 MCP 伺服器。
+ **身分驗證支援** – MCP 伺服器必須支援 OAuth 2.0 身分驗證流程或 API 金鑰/金鑰型身分驗證。

## 安全考量


將 MCP 伺服器連線至 AWS DevOps 代理程式時，請考慮下列安全層面：
+ **工具允許清單 – ** 您應該只允許列出 Agent Space 所需的特定工具，而不是從 MCP 伺服器公開所有工具。如需如何允許每個[客服人員空間的清單工具，請參閱在客服人員空間中設定 MCP](#configuring-capabilities-for-aws-devops-agent-connecting-mcp-servers) 工具。

請注意，任何 MCP 工具的工具長度上限為 64。
+ **提示注入風險** – 自訂 MCP 伺服器可能會帶來提示注入攻擊的額外風險。如需詳細資訊，請參閱[提示注入保護： AWS DevOps 代理程式安全](aws-devops-agent-security.md)。
+ **唯讀工具和存取 –** 僅允許列出唯讀 MCP 工具，並確保身分驗證登入資料只允許唯讀存取。

[AWS DevOps 代理程式安全性](aws-devops-agent-security.md) 如需提示注入和共同責任模型的詳細資訊，請參閱 。

**注意**  
如果您的 MCP 伺服器位於私有網路上，請參閱 [連線至私有託管工具](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md)

## 註冊 MCP 伺服器 （帳戶層級）


MCP 伺服器會在 AWS 帳戶層級註冊，並在該帳戶中的所有客服人員空間之間共用。個別客服人員空間接著可以從每個 MCP 伺服器選擇他們所需的特定工具。

### 步驟 1：MCP 伺服器詳細資訊


1. 登入 AWS 管理主控台

1. 導覽至 AWS DevOps 代理程式主控台

1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**可用**供應商區段中尋找 **MCP 伺服器**，然後按一下**註冊**

1. 在 **MCP 伺服器詳細資訊**頁面上，輸入下列資訊：
   + **名稱** – 輸入 MCP 伺服器的描述性名稱
   + **端點 URL** – 輸入 MCP 伺服器端點的完整 HTTPS URL
   + **描述** （選用） – 新增描述以協助識別伺服器的目的
   + **啟用動態用戶端註冊** – 如果您想要允許 AWS DevOps 代理程式自動向 MCP 伺服器的授權伺服器註冊，請選取此核取方塊

1. 按一下**下一步**

**注意**  
** MCP 伺服器端點 URL 會顯示在您帳戶中的 AWS CloudTrail 日誌中。

### 步驟 2：授權流程


選取 MCP 伺服器的身分驗證方法：

**OAuth 用戶端登入**資料 – 如果您的 MCP 伺服器使用 OAuth 用戶端登入資料流程：

1. 選取 **OAuth 用戶端登入**資料

1. 按一下**下一步**

**OAuth 3LO （三引號 OAuth)** – 如果您的 MCP 伺服器使用 OAuth 3LO 進行身分驗證：

1. 選取 **OAuth 3LO**

1. 按一下**下一步**

**API 金鑰** – 如果您的 MCP 伺服器使用 API 金鑰身分驗證：

1. 選取 **API 金鑰**

1. 按一下**下一步**

### 步驟 3：授權組態


根據選取的身分驗證方法設定其他授權參數：

**對於 OAuth 用戶端登入資料：**

1. **用戶端 ID** – 輸入 OAuth 用戶端的用戶端 ID

1. **用戶端秘密** – 輸入 OAuth 用戶端的用戶端秘密

1. **Exchange URL** – 輸入 OAuth 權杖交換端點 URL

1. **Exchange 參數** – 輸入 OAuth 權杖交換參數以使用 服務進行驗證

1. **新增範圍** – 新增身分驗證的 OAuth 範圍

1. 按一下**下一步**

**對於 OAuth 3LO：**

1. **用戶端 ID** – 輸入 OAuth 用戶端的用戶端 ID

1. **用戶端秘密** – 如果您的 OAuth 用戶端需要，請輸入 OAuth 用戶端的用戶端秘密

1. **Exchange URL** – 輸入 OAuth 權杖交換端點 URL

1. **授權 URL ** - 輸入 OAuth 授權端點 URL

1. **程式碼挑戰支援 ** - 如果您的 OAuth 用戶端支援程式碼挑戰，請選取此核取方塊

1. **新增範圍** – 新增身分驗證的 OAuth 範圍

1. 按一下**下一步**

**針對 API 金鑰：**

1. 輸入 API 金鑰名稱

1. 輸入將在請求中包含 API 金鑰的標頭名稱

1. 輸入您的 API 金鑰值

1. 按一下**下一步**

### 步驟 4：檢閱並提交


1. 檢閱所有 MCP 伺服器組態詳細資訊

1. 按一下**提交**以完成註冊

1. AWS DevOps 代理程式將驗證與您的 MCP 伺服器的連線

1. 成功驗證後，您的 MCP 伺服器將在帳戶層級註冊

## 在客服人員空間中設定 MCP 工具


在帳戶層級註冊 MCP 伺服器之後，您可以設定該伺服器的哪些工具可供特定 Agent Spaces 使用：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在 **MCP 伺服器**區段中，按一下**新增**

1. 選取您要連線至此客服人員空間的已註冊 MCP 伺服器

1. 設定 Agent Space 應可從此 MCP 伺服器使用哪些工具：
   + **允許所有工具** – 讓 MCP 伺服器中的所有工具都可用
   + **選取特定工具** – 可讓您選擇要允許清單的工具

1. 按一下**新增**，將 MCP 伺服器連線至您的客服人員空間

AWS DevOps 代理程式現在可以在此代理程式空間的調查期間，使用 MCP 伺服器的允許清單工具。

## 管理 MCP 伺服器連線


**更新身分驗證憑證** – 如果您的身分驗證憑證需要更新，您將需要重新註冊 MCP 伺服器。導覽至 AWS DevOps 代理程式主控台中的**功能提供者**頁面，尋找您的 MCP 伺服器，移除任何作用中的關聯，然後按一下**取消註冊**。接著，使用新的身分驗證登入資料**註冊**您的 MCP 伺服器，然後重新建立與 Agent Space 的任何必要關聯。

**檢視連線的 MCP 伺服器** – 若要查看所有連線至客服人員空間的 MCP 伺服器，請選取您的客服人員空間，前往**功能**索引標籤，然後檢查 **MCP 伺服器**區段。您也可以在這裡更新選取的工具。

**移除 MCP 伺服器連線** – 若要中斷 MCP 伺服器與客服人員空間的連線，請在 **MCP 伺服器**區段中選取伺服器，然後按一下**移除**。若要完全刪除 MCP 伺服器註冊，請先將其從所有客服人員空間中移除，然後刪除帳戶層級註冊。

## 相關主題

+ 安全 in AWS DevOps 代理程式
+ 設定 代理程式空間
+ 提示注入保護

# 連接多個 AWS 帳戶


次要 AWS 帳戶可讓 AWS DevOps 代理程式調查組織中多個 AWS 帳戶的資源。當您的應用程式跨越多個帳戶時，新增次要帳戶可確保客服人員在事件調查期間可查看所有相關資源。對構成應用程式的 帳戶和資源的更多存取可確保更高的調查準確性。

## 先決條件


新增次要 AWS 帳戶之前，請確定您有：
+ 存取主要帳戶中的 AWS DevOps 代理程式主控台
+ 次要 AWS 帳戶的管理存取權
+ 在次要帳戶中建立角色的 IAM 許可

## 新增次要 AWS 帳戶


除了下列步驟之外，您還可以使用 [AWS DevOps Agent CLI 入門指南](getting-started-with-aws-devops-agent-cli-onboarding-guide.md)以程式設計方式新增次要帳戶。

### 步驟 1：啟動次要帳戶組態


1. 登入 AWS 管理主控台並導覽至 AWS DevOps 代理程式主控台

1. 選取您的客服人員空間

1. 前往**功能**索引標籤

1. 在**雲端**區段中，尋找**次要來源**子區段

1. 按一下**新增**

### 步驟 2：指定角色名稱


1. 在**為您的角色命名**欄位中，輸入您將在次要帳戶中建立的角色名稱

1. 請注意此名稱 - 在次要帳戶中建立角色時，您將再次使用它

1. 複製主控台中提供的信任政策，並將其儲存在暫存空間中

### 步驟 3：在次要帳戶中建立角色


1. 開啟新的瀏覽器索引標籤，並登入次要 AWS 帳戶中的 IAM 主控台

1. 導覽至 **IAM >****角色** > **建立角色**

1. 選取**自訂信任政策**

1. 貼上您從步驟 2 複製的信任政策

1. 按一下**下一步**

### 步驟 4：連接 AWS 受管政策


1. 在**許可政策**區段中，搜尋 **AIOpsAssistantPolicy**

1. 選取 **AIOpsAssistantPolicy** 受管政策旁的核取方塊

1. 按一下**下一步**

### 步驟 5：命名並建立角色


1. 在**角色名稱**欄位中，輸入您在步驟 2 中提供的相同角色名稱

1. （選用） 新增描述以協助識別角色的目的

1. 檢閱信任政策和連接的許可

1. 按一下**建立角色**

### 步驟 6：連接內嵌政策


1. 在 IAM 主控台中，尋找並選取您剛建立的角色

1. 前往**許可**索引標籤

1. 按一下**新增許可** > **建立內嵌政策**

1. 切換到 **JSON** 索引標籤

1. 貼上您在步驟 2 中儲存的政策

1. 將政策貼到 IAM 主控台的 JSON 編輯器

1. 按一下**下一步**

1. 提供內嵌政策的名稱 （例如「DevOpsAgentInlinePolicy」)

1. 按一下**建立政策**

### 步驟 7：完成組態


1. 返回主要帳戶中的 AWS DevOps 代理程式主控台

1. 按一下**下一步**以完成次要帳戶組態

1. 確認連線狀態顯示為**作用中**

## 了解必要的政策


AWS DevOps Agent 需要三個政策元件，才能存取次要帳戶中的資源：
+ **信任政策** – 允許主要帳戶中的 AWS DevOps 代理程式擔任次要帳戶中的角色。這會建立帳戶之間的信任關係。
+ **AIOpsAssistantPolicy (AWS 受管政策）** – 提供 AWS DevOps 代理程式調查次要帳戶中資源所需的核心唯讀許可。此政策由 維護 AWS ，並在新增新功能時更新。
+ **內嵌政策** – 提供代理程式空間組態特定的其他許可。此政策會根據您的客服人員空間設定產生，並可能包含特定整合或功能的許可。

在主要帳戶中， AWS DevOps 代理程式 IAM 角色必須能夠擔任在次要帳戶中建立的角色。

## 管理次要帳戶

+ **檢視連線帳戶** – 在**功能**索引標籤中，**次要來源**子區段會列出所有連線的次要帳戶及其連線狀態。
+ **更新 IAM 角色** – 如果您需要修改許可，請更新連接到次要帳戶中角色的內嵌政策。變更會立即生效。
+ **移除次要帳戶** – 若要中斷連接次要帳戶，請在**次要來源**清單中選取該帳戶，然後按一下**移除**。這不會刪除次要帳戶中的 IAM 角色。

# 連接遙測來源


AWS DevOps Agent 提供三種連線至遙測來源的方式。

## 內建的雙向整合


目前， AWS DevOps Agent 支援具有內建雙向整合的 Dynatrace 使用者，可啟用下列項目：
+ **拓撲資源映射** - AWS DevOps 代理程式會透過 a AWS DevOps 代理程式託管的 Dynatrace MCP 伺服器，使用可用的實體和關係來增強您的 DevOps 代理程式空間拓撲。
+ **自動化調查觸發** - 可以設定 Dynatrace 工作流程來觸發來自 Dynatrace 問題的事件解決調查。
+ **遙測自我檢查** - AWS DevOps 代理程式可以透過 AWS DevOps 代理程式託管的 Dynatrace MCP 伺服器調查問題時，可以自我檢查 Dynatrace 遙測。
+ **狀態更新** - AWS DevOps 代理程式會將金鑰調查結果、根本原因分析和產生的緩解計畫發佈至 Dynatrace 使用者介面。

若要了解雙向整合，請參閱
+ [連接 Dynatrace](connecting-telemetry-sources-connecting-dynatrace.md)

## 內建的單向整合


目前， AWS DevOps Agent 支援具有內建的單向整合的 AWS CloudWatch、Datadog、Grafana、New Relic 和 Splunk 使用者。

**安全最佳實務：**設定內建單向整合的登入資料時，我們建議將 API 金鑰和權杖範圍限定為唯讀存取。 AWS DevOps 代理程式只會使用這些登入資料進行遙測自我檢查，不需要對遙測供應商進行寫入存取。

 AWS CloudWatch 內建的單向整合不需要額外設定，並啟用下列項目：
+ **拓撲資源映射** - AWS DevOps 代理程式將透過您設定的主要和次要 AWS 雲端帳戶，使用可用的實體和關係來增強您的 DevOps 代理程式空間拓撲。
+ **遙測自我檢查** - AWS DevOps 代理程式可以透過主要和次要 AWS 雲端帳戶組態期間提供的 IAM 角色 (IAM) 調查問題時，可以自我檢查 AWS CloudWatch 遙測。

Datadog、Grafana、New Relic 和 Splunk 內建的 1 種方式整合需要設定並啟用下列項目：
+ **自動化調查觸發** - 可以設定 Datadog、Grafana、New Relic 和 Splunk 事件來觸發透過 AWS DevOps 代理程式 Webhook 的 AWS DevOps 代理程式事件解決調查。
+ **遙測自我檢查** - AWS DevOps 代理程式可以在透過每個供應商的遠端 MCP 伺服器調查問題時，自我檢查 Datadog、Grafana、New Relic 和 Splunk 遙測。

若要了解單向整合，請參閱以下內容：
+ [連接 DataDog](connecting-telemetry-sources-connecting-datadog.md)
+ [連接 Grafana](connecting-telemetry-sources-connecting-grafana.md)
+ [連接新複本](connecting-telemetry-sources-connecting-new-relic.md)
+ [連接 Splunk](connecting-telemetry-sources-connecting-splunk.md)

## Bring-your-own遙測來源


對於任何其他遙測來源，包括 Prometheus 指標，您可以利用 AWS DevOps 代理程式對 Webhook 和 MCP 伺服器整合的支援。

若要了解bring-your-own整合，請參閱以下內容
+ [透過 Webhook 叫用 DevOps 代理程式](configuring-capabilities-for-aws-devops-agent-invoking-devops-agent-through-webhook.md)
+ [連接 MCP 伺服器](configuring-capabilities-for-aws-devops-agent-connecting-mcp-servers.md)

# 連接 Dynatrace


## 內建的雙向整合


目前， AWS DevOps Agent 支援具有內建雙向整合的 Dynatrace 使用者，可啟用下列項目：
+ **拓撲資源映射** - AWS DevOps 代理程式將使用 Dynatrace 環境中可用的實體和關係來增強您的 DevOps 代理程式空間拓撲。
+ **自動化調查觸發** - 可以設定 Dynatrace 工作流程來觸發來自 Dynatrace 問題的事件解決調查。
+ **遙測自我檢查** - AWS DevOps 代理程式可以透過 AWS DevOps 代理程式託管的 Dynatrace MCP 伺服器調查問題時，可以自我檢查 Dynatrace 遙測。
+ **狀態更新** - AWS DevOps 代理程式會將金鑰調查結果、根本原因分析和產生的緩解計畫發佈至 Dynatrace 使用者介面。

## 上線


### 加入程序


加入您的 Dynatrace 可觀測性系統包含三個階段：

1. **Connect** - 透過設定帳戶存取登入資料與您可能需要的所有環境來建立與 Dynatrace 的連線

1. **啟用** - 在具有特定 Dynatrace 環境的特定代理程式空間中啟用 Dynatrace

1. **設定您的 Dynatrace 環境** - 下載工作流程和儀表板，並匯入 Dynatrace，記下 Webhook 詳細資訊，以觸發指定客服人員空間中的調查

### 步驟 1：連線


建立與 Dynatrace 環境的連線

#### Configuration


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**遙測**下的**可用**提供者區段中尋找 **Dynatrace**，然後按一下**註冊**

1. **在 Dynatrace 中建立具有詳細許可的 OAuth 用戶端。**

   1. 請參閱 [Dynatrace 文件](https://docs.dynatrace.com/docs/shortlink/aws-devops-agent)

   1. 準備就緒後，按下一步

   1. 您可以針對您可能擁有的每個 DevOps Agent 空間，將多個 Dynatrace 環境和更新範圍連接到特定環境。

1. 從 OAuth 用戶端設定輸入您的 Dynatrace 詳細資訊：
   + **用戶端名稱**
   + **用戶端 ID**
   + **用戶端秘密**
   + **帳戶 URN**

1. 按一下下一步

1. 檢閱並新增

### 步驟 2：啟用


在特定客服人員空間中啟用 Dynatrace，並設定適當的範圍

#### Configuration


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊

1. 選取功能索引標籤

1. 找到遙測區段，按下新增

1. 您會注意到 Dynatrace 狀態為「已註冊」。按一下新增以將此新增至您的客服人員空間

1. Dynatrace 環境 ID - 提供您要與此 DevOps 代理程式空間建立關聯的 Dynatrace 環境 ID。

1. 輸入一或多個 Dynatrace IDs - 這些可協助 DevOps 代理程式探索您最重要的資源，範例可能是服務或應用程式。**如果您不確定可以按移除。**

1. 檢閱並按下儲存

1. 複製 Webhook URL 和 Webhook 秘密。請參閱 [Dynatrace 文件](https://docs.dynatrace.com/docs/shortlink/aws-devops-agent)，將這些登入資料新增至 Dynatrace。

### 步驟 3：設定您的 Dynatrace 環境


若要完成 Dynatrace 設定，您需要在 Dynatrace 環境中執行特定設定步驟。遵循 [Dynatrace 文件](https://docs.dynatrace.com/docs/shortlink/aws-devops-agent)中的指示。

#### 支援的事件結構描述


AWS DevOps Agent 使用 Webhook 支援來自 Dynatrace 的兩種事件類型。支援的事件結構描述記錄如下：

##### 事件事件


事件會用來觸發調查。事件結構描述為：

```
{
    "event.id": string;
    "event.status": "ACTIVE" | "CLOSED";
    "event.status_transition": string;
    "event.description": string;
    "event.name": string;
    "event.category": "AVAILABILITY" | "ERROR" | "SLOWDOWN" | "RESOURCE_CONTENTION" | "CUSTOM_ALERT" | "MONITORING_UNAVAILABLE" | "INFO";
    "event.start"?: string;
    "affected_entity_ids"?: string[];
}
```

##### 緩解事件


緩解事件用於觸發產生緩解報告以進行後續步驟的調查。事件結構描述為：

```
{
    "task_id": string;
    "task_version": number;
    "event.type": "mitigation_request";
}
```

## 移除


遙測來源在客服人員空間層級和帳戶層級的兩個層級上連接。若要完全移除它，您必須先從使用它的所有代理程式空間中移除它，然後可以取消註冊。

### 步驟 1：從客服人員空間移除


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊

1. 選取功能索引標籤

1. 向下捲動至遙測區段

1. 選取 Dynatrace

1. 按移除

### 步驟 2：從帳戶取消註冊


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 捲動至**目前註冊**的區段。

1. 檢查客服人員空間計數為零 （如果不是在其他客服人員空間中重複上述步驟 1)

1. 按下 Dynatrace 旁的取消註冊

# 連接 DataDog


## 內建的單向整合


目前， AWS DevOps Agent 支援具有內建的單向整合的 Datadog 使用者，啟用下列項目：
+ **自動化調查觸發** - 資料狗事件可設定為觸發透過 AWS DevOps 代理程式 Webhook 的 AWS DevOps 代理程式事件解決調查。
+ **遙測自我檢查** - AWS DevOps 代理程式可以在透過每個提供者的遠端 MCP 伺服器調查問題時自我檢查資料狗遙測。

## 上線


### 步驟 1：連線


使用帳戶存取憑證建立與 Datadog 遠端 MCP 端點的連線

#### Configuration


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**遙測**下的**可用**提供者區段中尋找 **Datadog**，然後按一下**註冊**

1. 輸入您的 Datadog MCP 伺服器詳細資訊：
   + **伺服器名稱** - 唯一識別符 （例如 my-datadog-server)
   + **端點 URL** - Datadog MCP 伺服器端點。端點 URL 會根據 Datadog 網站而有所不同。請參閱下面的 Datadog 網站端點表格。
   + **描述** - 選用的伺服器描述

1. 按一下下一步

1. 檢閱並提交

#### Datadog 網站端點


MCP 端點 URL 會根據 Datadog 網站而有所不同。若要識別您的網站，請在登入 Datadog 時檢查瀏覽器中的 URL，或參閱[存取 Datadog 網站](https://docs.datadoghq.com/getting_started/site/#access-the-datadog-site)。


| Datadog 網站 | 網站網域 | MCP 端點 URL | 
| --- | --- | --- | 
| US1 （預設） | datadoghq.com | https://mcp.datadoghq.com/api/unstable/mcp-server/mcp | 
| US3 | us3.datadoghq.com | https://mcp.us3.datadoghq.com/api/unstable/mcp-server/mcp | 
| US5 | us5.datadoghq.com | https://mcp.us5.datadoghq.com/api/unstable/mcp-server/mcp | 
| EU1 | datadoghq.eu | https://mcp.datadoghq.eu/api/unstable/mcp-server/mcp | 
| AP1 | ap1.datadoghq.com | https://mcp.ap1.datadoghq.com/api/unstable/mcp-server/mcp | 
| AP2 | ap2.datadoghq.com | https://mcp.ap2.datadoghq.com/api/unstable/mcp-server/mcp | 

#### Authorization


透過下列方式完成 OAuth 授權：
+ 在 Datadog OAuth 頁面上以您的使用者身分授權
+ 如果未登入，請按一下允許、登入，然後授權

設定完成後，Datadog 即可在所有客服人員空間中使用。

### 步驟 2：啟用


在特定客服人員空間中啟用 DataDog，並設定適當的範圍

#### Configuration


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊 （如果您尚未建立客服人員空間，請參閱 [建立 代理程式空間](getting-started-with-aws-devops-agent-creating-an-agent-space.md))

1. 選取功能索引標籤

1. 向下捲動至遙測區段

1. 按下新增

1. 選取 Datadog

1. 下一頁

1. 檢閱並按下儲存

1. 複製 Webhook URL 和 API 金鑰

### 步驟 3：設定 Webhook


使用 Webhook URL 和 API 金鑰，您可以設定 Datadog 傳送事件以觸發調查，例如從警示。

為了確保 DevOps 代理程式可以使用傳送的事件，請確定傳輸至 Webhook 的資料符合下列指定的資料結構描述。DevOps 代理程式可能會忽略不符合此結構描述的事件。

設定 方法和標頭

```
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Bearer <Token>",
    },
```

以 JSON 字串傳送內文。

```
{
    eventType: 'incident';
    incidentId: string;
    action: 'created' | 'updated' | 'closed' | 'resolved';
    priority: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW" | "MINIMAL";
    title: string;
    description?: string;
    timestamp?: string;
    service?: string;
    // The original event generated by service is attached here.
    data?: object;
}
```

使用 Datadog [https://docs.datadoghq.com/integrations/webhooks/](https://docs.datadoghq.com/integrations/webhooks/) 傳送 Webhook （請注意，選取不授權，而是使用自訂標頭選項）。

進一步了解：[Datadog 遠端 MCP 伺服器](https://www.datadoghq.com/blog/datadog-remote-mcp-server/)

## 移除


遙測來源在客服人員空間層級和帳戶層級的兩個層級上連接。若要完全移除它，您必須先從使用它的所有代理程式空間中移除它，然後可以取消註冊。

### 步驟 1：從客服人員空間移除


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊

1. 選取功能索引標籤

1. 向下捲動至遙測區段

1. 選取 Datadog

1. 按移除

### 步驟 2：從帳戶取消註冊


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 捲動至**目前註冊**的區段。

1. 檢查客服人員空間計數為零 （如果不是在其他客服人員空間中重複上述步驟 1)

1. 按下 Datadog 旁的取消註冊

# 連接 Grafana


Grafana 整合可讓 AWS DevOps 代理程式在事件調查期間查詢 Grafana 執行個體中的指標、儀表板和提醒資料。此整合遵循兩個步驟：Grafana 的帳戶層級註冊，然後將其連接到個別客服人員空間。

為了提高安全性，Grafana 整合僅啟用唯讀工具。寫入工具已停用且無法啟用。這表示代理程式可以從 Grafana 執行個體查詢和讀取資料，但無法建立、修改或刪除任何 Grafana 資源，例如儀表板、提醒或註釋。如需詳細資訊，請參閱 [Security in AWS DevOps Agent](https://docs.aws.amazon.com/devopsagent/latest/userguide/aws-devops-agent-security.html)。

## Grafana 要求


連接 Grafana 之前，請確定您有：
+ Grafana 9.0 版或更新版本。由於缺少 API 端點，某些功能，特別是與資料來源相關的操作，可能無法正確使用舊版。
+ 可透過 HTTPS 存取的 Grafana 執行個體。同時支援公有和私有網路端點。透過私有網路連線，您的 Grafana 執行個體可以在沒有公有網際網路存取的 VPC 中託管。如需詳細資訊，請參閱[連線至私有託管工具](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md)。
+ 具有適當讀取許可之存取權杖的 Grafana 服務帳戶

## 註冊 Grafana （帳戶層級）


Grafana 已在 AWS 帳戶層級註冊，並在該帳戶中的所有客服人員空間之間共用。

### 步驟 1：設定 Grafana


1. 登入 AWS 管理主控台

1. 導覽至 AWS DevOps 代理程式主控台

1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**遙測**下的**可用**提供者區段中尋找 **Grafana**，然後按一下**註冊**

1. 在**設定 Grafana** 頁面上，輸入下列資訊：
   + **服務名稱** （必要） – 使用英數字元、連字號和底線輸入 Grafana 伺服器的描述性名稱。例如 `my-grafana-server`。
   + **Grafana URL** （必要） – 輸入 Grafana 執行個體的完整 HTTPS URL。例如 `https://myinstance.grafana.net`。
   + **服務帳戶存取字符** （必要） – 輸入 Grafana 服務帳戶存取字符。字符通常以 開頭`glsa_`。若要建立服務帳戶字符，請導覽至您的 Grafana 執行個體，前往**管理 > 服務帳戶**，使用檢視器角色建立服務帳戶，並產生字符。
   + **描述** （選用） – 新增描述以協助識別伺服器的目的。例如 `Production Grafana server for monitoring`。

1. （選用） 將 AWS 標籤新增至註冊以供組織使用。

1. 按一下**下一步**

### 步驟 2：檢閱並提交 Grafana 註冊


1. 檢閱所有 Grafana 組態詳細資訊

1. 按一下**提交**以完成註冊

1. 成功註冊後，Grafana 會出現在能力提供者頁面的**目前註冊**區段中

## 將 Grafana 新增至代理程式空間


在帳戶層級註冊 Grafana 之後，您可以將其連線至個別客服人員空間：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在**遙測**區段中，按一下**新增**

1. 從可用供應商清單中選取 **Grafana** 

1. 按一下**儲存**

## 設定 Grafana 警示 Webhook


您可以將 Grafana 設定為在透過 Grafana 聯絡點傳送 Webhook 來提醒火災時自動觸發 AWS DevOps 代理程式調查。如需 Webhook 身分驗證方法和憑證管理的詳細資訊，請參閱 [透過 Webhook 叫用 DevOps 代理程式](configuring-capabilities-for-aws-devops-agent-invoking-devops-agent-through-webhook.md)。

### 步驟 1：建立自訂通知範本


在您的 Grafana 執行個體中，導覽至**警示 > 聯絡點 > 通知範本**，並使用下列內容建立新的範本：

```
{{ define "devops-agent-payload" }}
{
  "eventType": "incident",
  "incidentId": "{{ (index .Alerts 0).Labels.alertname }}-{{ (index .Alerts 0).Fingerprint }}",
  "action": "{{ if eq .Status "resolved" }}resolved{{ else }}created{{ end }}",
  "priority": "{{ if eq .Status "resolved" }}MEDIUM{{ else }}HIGH{{ end }}",
  "title": "{{ (index .Alerts 0).Labels.alertname }}",
  "description": "{{ (index .Alerts 0).Annotations.summary }}",
  "service": "{{ if (index .Alerts 0).Labels.job }}{{ (index .Alerts 0).Labels.job }}{{ else }}grafana{{ end }}",
  "timestamp": "{{ (index .Alerts 0).StartsAt }}",
  "data": {
    "metadata": {
      {{ range $k, $v := (index .Alerts 0).Labels }}
      "{{ $k }}": "{{ $v }}",
      {{ end }}
      "_source": "grafana"
    }
  }
}
{{ end }}
```

此範本會將 Grafana 警示格式化為 AWS DevOps 代理程式預期的 Webhook 承載結構。它會將提醒標籤、註釋和狀態映射到適當的欄位中，並包含所有提醒標籤作為中繼資料。

**注意：**此範本只會處理群組中的第一個提醒。根據預設，Grafana 會將多個射擊警示分組為單一通知。若要確保個別傳送每個提醒，請將您的通知政策設定為依 分組`alertname`。此外，此範本不會逸出標籤值或註釋中的特殊 JSON 字元。確保提醒標籤和`summary`註釋不包含雙引號或換行等字元，這會產生無效的 JSON。

### 步驟 2：建立 Webhook 聯絡點


1. 在 Grafana 中，導覽至**警示 > 聯絡點**，然後按一下**新增聯絡點**

1. 選取 **Webhook** 做為整合類型

1. 將 **URL** 設定為 your AWS DevOps Agent Webhook 端點

1. 在**選用 Webhook 設定**下，根據您的 Webhook 類型設定身分驗證標頭。如需詳細資訊，請參閱 [Webhook 身分驗證方法](configuring-capabilities-for-aws-devops-agent-invoking-devops-agent-through-webhook.md)。

1. 設定**訊息**欄位以使用您的自訂範本： `{{ template "devops-agent-payload" . }}`

1. 按一下**儲存聯絡點**

### 步驟 3：將聯絡點指派給通知政策


1. 導覽至**警示 > 通知政策**

1. 編輯現有政策或建立新的政策

1. 將聯絡點設定為您建立的 Webhook 聯絡點

1. 按一下**儲存政策**

當相符的提醒觸發時，Grafana 會將格式化的承載傳送至 AWS DevOps 代理程式，自動開始調查。

## 限制

+ **ClickHouse 資料來源工具** – 目前不支援 ClickHouse 資料來源工具。
+ **主動預防事件** – 目前[主動事件預防](working-with-devops-agent-proactive-incident-prevention.md)不使用 Grafana 工具。未來版本已規劃支援。

### Amazon Managed Grafana 考量事項


如果您使用的是 [Amazon Managed Grafana](https://aws.amazon.com/grafana/) (AMG)，請注意下列限制：
+ **不支援 Webhook 聯絡點** – AMG 目前在其提醒組態中不支援 Webhook 聯絡點。您無法使用 AMG 將警示 Webhook 直接傳送到 AWS DevOps 代理程式。如需詳細資訊，請參閱 [Amazon Managed Grafana 中的警示聯絡點](https://docs.aws.amazon.com/grafana/latest/userguide/v9-alerting-explore-contacts.html)。
+ **服務帳戶字符過期** – AMG 服務帳戶字符的過期天數上限為 30 天。您將需要輪換權杖，並在權杖過期之前更新 Grafana 註冊 in AWS DevOps 代理程式。如需如何更新登入資料，請參閱[管理 Grafana 連線](#managing-grafana-connections)。如需 AMG 字符限制的詳細資訊，請參閱 [Amazon Managed Grafana 中的服務帳戶](https://docs.aws.amazon.com/grafana/latest/userguide/service-accounts.html)。

## 管理 Grafana 連線

+ **更新登入**資料 – 如果您的服務帳戶字符過期或需要更新，請從能力提供者頁面取消註冊 Grafana，並使用新字符重新註冊。
+ **檢視連線的執行個體** – 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間，然後前往功能索引標籤以檢視連線的遙測來源。
+ **移除 Grafana** – 若要中斷 Grafana 與客服人員空間的連線，請在遙測區段中選取它，然後按一下**移除**。若要完全移除註冊，請先將其從所有客服人員空間中移除，然後從能力提供者頁面取消註冊。

# 連接新複本


## 內建的單向整合


目前， AWS DevOps Agent 支援具有內建的單向整合的新 Relic 使用者，啟用下列項目：
+ **自動化調查觸發** - 新複本事件可設定為透過 AWS DevOps 代理程式 Webhook 觸發 AWS DevOps 代理程式事件解決調查。
+ **遙測自我檢查** - AWS DevOps 代理程式可以在透過每個提供者的遠端 MCP 伺服器調查問題時自我檢查新舊式遙測。

## 上線


### 步驟 1：連線


使用帳戶存取憑證建立與 New Relic 遠端 MCP 端點的連線

請在新複本中使用完整平台使用者 （非基本/核心） 來啟用新複本 MCP 工具。

#### Configuration


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**遙測**下的**可用**提供者區段中尋找**新複本**，然後按一下**註冊**

1. 依照指示取得您的新複本 API 金鑰

1. 輸入您的 New Relic MCP 伺服器 API 金鑰詳細資訊：
   + **帳戶 ID：**輸入上述取得的新複本帳戶 ID
   + **API 金鑰：**輸入上述取得的 API 金鑰
   + 根據新複本帳戶所在的位置**選取美國或歐洲區域**。

1. 按一下新增

### 步驟 2：啟用


在特定客服人員空間中啟用新複本，並設定適當的範圍

#### Configuration


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊 （如果您尚未建立客服人員空間，請參閱 [建立 代理程式空間](getting-started-with-aws-devops-agent-creating-an-agent-space.md))

1. 選取功能索引標籤

1. 向下捲動至遙測區段

1. 按下新增

1. 選取新複本

1. 下一頁

1. 檢閱並按下儲存

1. 複製 Webhook URL 和 API 金鑰

### 步驟 3：設定 Webhook


使用 Webhook URL 和 API 金鑰，您可以設定 New Relic 傳送事件以觸發調查，例如從警示。如需設定 Webhook 的詳細資訊，請參閱[變更追蹤 Webhook](https://docs.newrelic.com/docs/change-tracking/change-tracking-webhooks/)。

為了確保 DevOps 代理程式可以使用傳送的事件，請確定傳輸至 Webhook 的資料符合下列指定的資料結構描述。DevOps 代理程式可能會忽略不符合此結構描述的事件。

設定 方法和 標頭

```
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Bearer <Token>",
    },
```

以 JSON 字串傳送內文。

```
{
    eventType: 'incident';
    incidentId: string;
    action: 'created' | 'updated' | 'closed' | 'resolved';
    priority: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW" | "MINIMAL";
    title: string;
    description?: string;
    timestamp?: string;
    service?: string;
    // The original event generated by service is attached here.
    data?: object;
}
```

使用 New Relic [https://newrelic.com/instant-observability/webhook-notifications](https://newrelic.com/instant-observability/webhook-notifications) 傳送 Webhook。您可以為授權類型選取承載字符，或選取無授權，並改為新增 `Authorization: Bearer <Token>` 做為自訂標頭。

進一步了解：https：//[https://docs.newrelic.com/docs/agentic-ai/mcp/overview/](https://docs.newrelic.com/docs/agentic-ai/mcp/overview/)

## 移除


遙測來源在客服人員空間層級和帳戶層級的兩個層級上連接。若要完全移除它，您必須先從使用它的所有代理程式空間中移除它，然後可以取消註冊。

### 步驟 1：從客服人員空間移除


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊

1. 選取功能索引標籤

1. 向下捲動至遙測區段

1. 選取新複本

1. 按移除

### 步驟 2：從帳戶取消註冊


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 捲動至**目前註冊**的區段。

1. 檢查客服人員空間計數為零 （如果不是在其他客服人員空間中重複上述步驟 1)

1. 按下新複本旁的取消註冊

# 連接 Splunk


## 內建的單向整合


目前， AWS DevOps Agent 支援具有內建單向整合的 Splunk 使用者，啟用下列項目：
+ **自動化調查觸發** - Splunk 事件可設定為透過 AWS DevOps 代理程式 Webhook 觸發 AWS DevOps 代理程式事件解決調查。
+ **遙測自我檢查** - AWS DevOps 代理程式可以透過每個供應商的遠端 MCP 伺服器調查問題，來自我檢查 Splunk 遙測。

## 先決條件


### 取得 Splunk API 字符


您需要 MCP URL 和字符才能連接 Splunk。

### Splunk 管理員步驟


您的 Splunk 管理員需要執行下列步驟：
+ 啟用 [REST API 存取 ](https://docs.splunk.com/Documentation/SplunkCloud/latest/RESTTUT/RESTandCloud)
+ 在 部署上[啟用權杖身分驗證](https://help.splunk.com/en/splunk-cloud-platform/administer/manage-users-and-security/9.2.2406/authenticate-into-the-splunk-platform-with-tokens/enable-or-disable-token-authentication)。
+ 建立新的角色 'mcp\$1user'，新角色不需要有任何功能。
+ 會將角色 'mcp\$1user' 指派給部署上獲授權使用 MCP 伺服器的任何使用者。
+ 如果使用者沒有建立字符本身的許可，請為對象為 'mcp' 的授權使用者建立字符，並設定適當的過期時間。

### Splunk 使用者步驟


Splunk 使用者需要執行下列步驟：
+ 向 Splunk 管理員取得適當的權杖，如果他們具有 許可，則自行建立權杖。字符的對象必須是 'mcp'。

## 上線


### 步驟 1：連線


使用帳戶存取憑證建立與 Splunk 遠端 MCP 端點的連線

#### Configuration


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**遙測**下的**可用**供應商區段中尋找 **Splunk**，然後按一下**註冊**

1. 輸入您的 Splunk MCP 伺服器詳細資訊：
   + **伺服器名稱** - 唯一識別符 （例如 my-splunk-server)
   + **端點 URL** - Splunk MCP 伺服器端點：

`https://<YOUR_SPLUNK_DEPLOYMENT_NAME>.api.scs.splunk.com/<YOUR_SPLUNK_DEPLOYMENT_NAME>/mcp/v1/`
+ **描述** - 選用的伺服器描述
+ **權杖名稱** - 用於身分驗證的承載權杖名稱： `my-splunk-token`
+ **權杖值** 身分驗證的承載權杖值

### 步驟 2：啟用


在特定客服人員空間中啟用 Splunk，並設定適當的範圍

#### Configuration


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊 （如果您尚未建立客服人員空間，請參閱 [建立 代理程式空間](getting-started-with-aws-devops-agent-creating-an-agent-space.md))

1. 選取功能索引標籤

1. 向下捲動至遙測區段

1. 按下新增

1. 選取 Splunk

1. 下一頁

1. 檢閱並按下儲存

1. 複製 Webhook URL 和 API 金鑰

### 步驟 3：設定 Webhook


使用 Webhook URL 和 API 金鑰，您可以設定 Splunk 傳送事件以觸發調查，例如從警示。

為了確保 DevOps 代理程式可以使用傳送的事件，請確定傳輸至 Webhook 的資料符合下列指定的資料結構描述。DevOps 代理程式可能會忽略不符合此結構描述的事件。

設定 方法和標頭

```
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": "Bearer <Token>",
    },
```

以 JSON 字串傳送內文。

```
{
    eventType: 'incident';
    incidentId: string;
    action: 'created' | 'updated' | 'closed' | 'resolved';
    priority: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW" | "MINIMAL";
    title: string;
    description?: string;
    timestamp?: string;
    service?: string;
    // The original event generated by service is attached here.
    data?: object;
}
```

使用 Splunk [https://help.splunk.com/en/splunk-enterprise/alert-and-respond/alerting-manual/9.4/configure-alert-actions/use-a-webhook-alert-action](https://help.splunk.com/en/splunk-enterprise/alert-and-respond/alerting-manual/9.4/configure-alert-actions/use-a-webhook-alert-action) 傳送 Webhook （請注意，選取不授權，而是使用自訂標頭選項）

### 進一步了解：

+ Splunk 的 MCP 伺服器文件：https：//[https://help.splunk.com/en/splunk-cloud-platform/mcp-server-for-splunk-platform/about-mcp-server-for-splunk-platform ](https://help.splunk.com/en/splunk-cloud-platform/mcp-server-for-splunk-platform/about-mcp-server-for-splunk-platform)
+ Splunk Cloud Platform REST API 的存取需求和限制：[https：//https://docs.splunk.com/Documentation/SplunkCloud/latest/RESTTUT/RESTandCloud ](https://docs.splunk.com/Documentation/SplunkCloud/latest/RESTTUT/RESTandCloud)
+ 在 Splunk Cloud Platform 中管理身分驗證字符：[https：//https://help.splunk.com/en/splunk-cloud-platform/administer/manage-users-and-security/9.3.2411/authenticate-into-the-splunk-platform-with-tokens/manage-or-delete-authentication-tokens ](https://help.splunk.com/en/splunk-cloud-platform/administer/manage-users-and-security/9.3.2411/authenticate-into-the-splunk-platform-with-tokens/manage-or-delete-authentication-tokens)
+ 使用 Splunk Web 建立和管理角色：[https：//https://docs.splunk.com/Documentation/SplunkCloud/latest/Security/Addandeditroles ](https://docs.splunk.com/Documentation/SplunkCloud/latest/Security/Addandeditroles)

## 移除


遙測來源在客服人員空間層級和帳戶層級的兩個層級上連接。若要完全移除它，您必須先將其從使用它的所有代理程式空間中移除，然後才能取消註冊。

### 步驟 1：從客服人員空間移除


1. 從客服人員空間頁面，選取客服人員空間並按下檢視詳細資訊

1. 選取功能索引標籤

1. 向下捲動至遙測區段

1. 選取 Splunk

1. 按移除

### 步驟 2：從帳戶取消註冊


1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 捲動至**目前註冊**的區段。

1. 檢查客服人員空間計數為零 （如果不是在其他客服人員空間中重複上述步驟 1) 

1. 按下 Splunk 旁的取消註冊

# 連線至票證和聊天


AWS DevOps 代理程式旨在透過參與團隊現有的溝通管道，成為您團隊的成員。您可以將 DevOps Agent 連線至您的票證和警示系統，例如 ServiceNow 和 PagerDuty，以自動從事件票證啟動調查，加速現有工作流程中的事件回應，以減少預期復原時間 (MTTR)。您也可以將 DevOps 代理程式連線至 Slack 等團隊協作系統，以在聊天頻道中接收來自 DevOps 代理程式的活動摘要。

若要了解如何連接票證和聊天整合，請參閱以下內容：
+ [連接 PagerDuty](connecting-to-ticketing-and-chat-connecting-pagerduty.md)
+ [連接 ServiceNow](connecting-to-ticketing-and-chat-connecting-servicenow.md)
+ [連接 Slack](connecting-to-ticketing-and-chat-connecting-slack.md)

# 連接 PagerDuty


PagerDuty 整合可讓 AWS DevOps 代理程式在事件調查和自動回應期間，從您的 PagerDuty 帳戶存取和更新事件資料、通話中排程和服務資訊。此整合使用 OAuth 2.0 進行安全身分驗證。

**重要**  
** AWS DevOps 代理程式僅支援較新的 PagerDuty OAuth 2.0 （範圍 OAuth)。不支援具有重新導向 uri 的舊版 PagerDuty OAuth。

## PagerDuty 需求


在連接 PagerDuty 之前，請確定您已：
+ 具有您的 OAuth 用戶端 ID 和用戶端秘密的 PagerDuty 帳戶
+ 您的 PagerDuty 帳戶子網域 （例如，如果您的 PagerDuty URL 為 `https://your-company.pagerduty.com`，則子網域為 `your-company`)

## 註冊 PagerDuty


PagerDuty 已在 AWS 帳戶層級註冊，並在該帳戶中的所有客服人員空間之間共用。

### 步驟 1：在 PagerDuty 中設定存取權


1. 登入 AWS 管理主控台

1. 導覽至 AWS DevOps 代理程式主控台

1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**通訊**下的**可用**供應商區段中尋找 **PagerDuty**，然後按一下**註冊**

1. 遵循在 ** PagerDuty 中設定存取權**頁面上的引導設定：

**檢查您的服務區域和子網域：**
+ **帳戶範圍** – 選取您的 PagerDuty 區域 (**美國**或**歐洲**)，然後輸入您的 PagerDuty 子網域。例如，如果您的 PagerDuty URL 為 `https://your-company.pagerduty.com`，請輸入 `your-company`。

**在 PagerDuty 中建立新的應用程式：**
+ 在單獨的瀏覽器索引標籤中，登入 PagerDuty 並導覽至**整合 > 應用程式註冊**
+ 使用 **OAuth 2.0 範圍 OAuth **建立新的應用程式
+ 在**許可**下，授予下列最低必要範圍：`incidents.write`、 `incidents.read`和 `services.read`
+ 啟用**事件整合**以允許 AWS DevOps Agent 和 PagerDuty 之間的雙向通訊

**設定 OAuth 登入資料：**
+ **許可範圍** – 所需的最低範圍為：`incidents.read`、`incidents.write`、 `services.read`
+ **用戶端名稱** – 輸入 OAuth 用戶端的描述性名稱
+ **用戶端 ID** – 輸入來自 PagerDuty 應用程式註冊的 OAuth 用戶端 ID
+ **用戶端秘密** – 輸入來自 PagerDuty 應用程式註冊的 OAuth 用戶端秘密

### 步驟 2：檢閱並提交 PagerDuty 註冊


1. 檢閱所有 PagerDuty 組態詳細資訊

1. 按一下**提交**以完成註冊

1. 成功註冊後，PagerDuty 會出現在能力提供者頁面的**目前註冊**區段中

## 將 PagerDuty 新增至客服人員空間


在帳戶層級註冊 PagerDuty 之後，您可以將其連線至個別客服人員空間：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在**通訊**區段中，按一下**新增**

1. 從可用提供者清單中選取 **PagerDuty** 

1. 按一下**儲存**

## 管理 PagerDuty 連線

+ **更新登入**資料 – 如果您的 OAuth 登入資料需要更新，請從能力提供者頁面取消註冊 PagerDuty，並使用新的登入資料重新註冊。
+ **檢視連線** – 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間，然後前往功能索引標籤以檢視連線的通訊整合。
+ **移除 PagerDuty** – 若要中斷 PagerDuty 與客服人員空間的連線，請在通訊區段中選取它，然後按一下**移除**。若要完全移除註冊，請先將其從所有客服人員空間中移除，然後從能力提供者頁面取消註冊。

## Webhook 支援


AWS DevOps 代理程式僅支援 PagerDuty V3 Webhook。不支援較舊的 Webhook 版本。

如需 PagerDuty V3 Webhook 訂閱的詳細資訊，請參閱 PagerDuty 開發人員文件中的 [Webhooks 概觀](https://developer.pagerduty.com/docs/webhooks-overview#webhook-subscriptions)。

# 連接 ServiceNow


本教學課程會逐步引導您將 ServiceNow 執行個體連線至 AWS DevOps 代理程式，讓它在建立票證時自動啟動事件回應調查，並將其金鑰調查結果發佈至原始票證。它還包含如何設定 ServiceNow 執行個體僅將特定票證傳送至 DevOps 代理程式空間，以及如何協調多個 DevOps 代理程式空間之間的票證路由的範例。

## 初始設定


第一步是在 ServiceNow 中建立 OAuth 應用程式用戶端， AWS DevOps 可用來存取您的 ServiceNow 執行個體。

### 建立 ServiceNow OAuth 應用程式用戶端


1. 啟用執行個體的用戶端登入資料系統屬性

   1. `sys_properties.list` 在篩選條件搜尋方塊中搜尋，然後按 Enter 鍵 （它不會顯示 選項，但按 Enter 鍵有效）

   1. 選擇新增

   1. 將名稱新增為 ，`glide.oauth.inbound.client.credential.grant_type.enabled`並將值新增為 true，類型為 true \$1 false

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/09ed6d5ff911.png)


1. 從篩選條件搜尋方塊中導覽至系統 OAuth > 應用程式登錄檔

1. 選擇「新」＞「新傳入整合體驗」＞「新整合」＞「OAuth - 用戶端憑證授予」

1. 選擇名稱並將 OAuth 應用程式使用者設定為「問題管理員」，然後按一下「儲存」

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/aeff4c127f7c.png)


### 將您的 ServiceNow OAuth 用戶端連線至 AWS DevOps 代理程式


1. 您可以從兩個位置開始此程序。首先，導覽至**能力提供者**頁面並在**通訊**下尋找 **ServiceNow**，然後按一下**註冊**。或者，您可以選擇您可能已建立的任何 DevOps 代理程式空間，並導覽至功能 → 通訊 → 新增 → ServiceNow，然後按一下註冊。

1. 接著，授權 DevOps Agent 使用您剛建立的 OAuth 應用程式用戶端存取您的 ServiceNow 執行個體。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/3db5a9aafc5f.png)

+ 遵循後續步驟，並儲存 Webhook 的產生資訊 

**重要**  
您不會再看到此資訊

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/80d0a319f87e.png)


### 設定您的 ServiceNow 業務規則


建立連線後，您需要在 ServiceNow 中設定商業規則，將票證傳送至 DevOps Agent Space(s)。

1. 導覽至活動訂閱 → 管理 → 業務規則，然後按一下新增。

1. 將「資料表」欄位設定為「事件 【事件】」，勾選「進階」方塊，並將規則設定為在插入、更新和刪除之後執行。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/6f2a7370e2c0.png)


1. 導覽至「進階」索引標籤，並新增下列 Webhook 指令碼，在指示的位置插入您的 Webhook 秘密和 URL，然後按一下提交。

```
(function executeRule(current, previous /*null when async*/ ) {

    var WEBHOOK_CONFIG = {
        webhookSecret: GlideStringUtil.base64Encode('<<< INSERT WEBHOOK SECRET HERE >>>'),
        webhookUrl: '<<< INSERT WEBHOOK URL HERE >>>'
    };

    function generateHMACSignature(payloadString, secret) {
        try {
            var mac = new GlideCertificateEncryption();
            var signature = mac.generateMac(secret, "HmacSHA256", payloadString);
            return signature;
        } catch (e) {
            gs.error('HMAC generation failed: ' + e);
            return null;
        }
    }

    function callWebhook(payload, config) {
        try {
            var timestamp = new Date().toISOString();
            var payloadString = JSON.stringify(payload);
            var payloadWithTimestamp =`${timestamp}:${payloadString}`;

            var signature = generateHMACSignature(payloadWithTimestamp, config.webhookSecret);

            if (!signature) {
                gs.error('Failed to generate signature');
                return false;
            }

            gs.info('Generated signature: ' + signature);

            var request = new sn_ws.RESTMessageV2();
            request.setEndpoint(config.webhookUrl);
            request.setHttpMethod('POST');

            request.setRequestHeader('Content-Type', 'application/json');
            request.setRequestHeader('x-amzn-event-signature', signature);
            request.setRequestHeader('x-amzn-event-timestamp', timestamp);

            request.setRequestBody(payloadString);

            var response = request.execute();
            var httpStatus = response.getStatusCode();
            var responseBody = response.getBody();

            if (httpStatus >= 200 && httpStatus < 300) {
                gs.info('Webhook sent successfully. Status: ' + httpStatus);
                return true;
            } else {
                gs.error('Webhook failed. Status: ' + httpStatus + ', Response: ' + responseBody);
                return false;
            }

        } catch (ex) {
            gs.error('Error sending webhook: ' + ex.getMessage());
            return false;
        }
    }

    function createReference(field) {
        if (!field || field.nil()) {
            return null;
        }

        return {
            link: field.getLink(true),
            value: field.toString()
        };
    }

    function getStringValue(field) {
        if (!field || field.nil()) {
            return null;
        }
        return field.toString();
    }

    function getIntValue(field) {
        if (!field || field.nil()) {
            return null;
        }
        var val = parseInt(field.toString());
        return isNaN(val) ? null : val;
    }

    var eventType = (current.operation() == 'insert') ? "create" : "update";

    var incidentEvent = {
        eventType: eventType.toString(),
        sysId: current.sys_id.toString(),
        priority: getStringValue(current.priority),
        impact: getStringValue(current.impact),
        active: getStringValue(current.active),
        urgency: getStringValue(current.urgency),
        description: getStringValue(current.description),
        shortDescription: getStringValue(current.short_description),
        parent: getStringValue(current.parent),
        incidentState: getStringValue(current.incident_state),
        severity: getStringValue(current.severity),
        problem: createReference(current.problem),
        additionalContext: {}
    };

    incidentEvent.additionalContext = {
        number: current.number.toString(),
        opened_at: getStringValue(current.opened_at),
        opened_by: current.opened_by.nil() ? null : current.opened_by.getDisplayValue(),
        assigned_to: current.assigned_to.nil() ? null : current.assigned_to.getDisplayValue(),
        category: getStringValue(current.category),
        subcategory: getStringValue(current.subcategory),
        knowledge: getStringValue(current.knowledge),
        made_sla: getStringValue(current.made_sla),
        major_incident: getStringValue(current.major_incident)
    };

    for (var key in incidentEvent.additionalContext) {
        if (incidentEvent.additionalContext[key] === null) {
            delete incidentEvent.additionalContext[key];
        }
    }

    gs.info(JSON.stringify(incidentEvent, null, 2)); // Pretty print for logging only

    if (WEBHOOK_CONFIG.webhookUrl && WEBHOOK_CONFIG.webhookSecret) {
        callWebhook(incidentEvent, WEBHOOK_CONFIG);
    } else {
        gs.info('Webhook not configured.');
    }

})(current, previous);
```

如果您選擇從**功能提供者**頁面註冊 ServiceNow 連線，您現在需要導覽至要調查 ServiceNow 事件票證的 DevOps 代理程式空間，選取功能 → 通訊，然後在功能提供者頁面註冊您註冊的 ServiceNow 執行個體。現在，應該設定所有內容，而且呼叫者設定為「問題管理員」的所有事件 （模擬您給予 AWS DevOps OAuth 用戶端的許可） 都會在設定的 DevOps 代理程式空間中觸發事件回應調查。您可以在 ServiceNow 中建立新的事件，並將事件的來電者欄位設定為「問題管理員」，以測試這一點。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/4c7d24a85f88.png)


### ServiceNow 票證更新


在所有觸發的事件回應調查期間，DevOps 代理程式會在原始票證中提供其關鍵調查結果、根本原因分析和緩解計劃的更新。客服人員調查結果會張貼到事件的註解，我們目前只會張貼類型為 `finding`、`cause`、、 `investigation_summary` `mitigation_summary` 和調查狀態更新的客服人員記錄 （例如 `AWS DevOps Agent started/finished its investigation`)。

## 票證路由和協同運作範例


### 案例：篩選哪些事件會傳送到 DevOps 代理程式空間


這是簡單的案例，但在 ServiceNow 中需要一些組態，才能在 ServiceNow 中建立欄位來追蹤事件來源。基於此範例的目的，請使用 SNOW 表單建置器建立新的來源 (u\$1source) 欄位。這將允許追蹤事件來源，並使用它將請求從特定來源路由到 DevOps 代理程式空間。路由的完成方式是建立 Service Now Business Rule，並在何時執行索引標籤中設定「何時」觸發條件和「篩選條件」。在此範例中，篩選條件的設定如下：

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/fac7a186beee.png)


### 案例：跨多個 DevOps 代理程式空間路由事件


此範例示範如何在緊急程度為 `1`、類別為 `Software` 或服務為 時觸發 DevOps Agent Space B 中的調查`AWS`，以及在服務為 `AWS`且來源為 時觸發 DevOps Agent Space A 中的調查`Dynatrace`。

此案例可以透過兩種方式完成。Webhook 指令碼本身可以更新為包含此商業邏輯。在此案例中，我們將示範如何使用 ServiceNow 業務規則來完成它，以實現透明度並簡化偵錯。路由是透過建立兩個 Service Now Business 規則來完成。
+ 在 ServiceNow for DevOps Agent Space A 中建立業務規則，並使用 條件建置器建立條件，只根據我們指定的條件傳送事件。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/bca2f3928bf0.png)

+ 接著，在 ServiceNow for AgentSpace B 中建立另一個業務規則，只有在服務為 AWS 且來源為 Dynatrace 時，才會觸發業務規則。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/bc29e4db1a76.png)


現在，當您建立符合指定條件的新事件時，它會觸發對 DevOps Agent Space A 或 DevOps Agent Space B 的調查，為您提供對事件路由的精細控制。

# 連接 Slack


您可以設定 AWS DevOps 代理程式，透過事件回應調查金鑰調查結果、根本原因分析和產生的緩解計劃來更新您選取的 Slack 頻道。

## 開始之前


Slack 需要先向 DevOps Agent 註冊，才能新增至 Agent Space。若要將 AWS DevOps 代理程式與 Slack 整合，您必須符合下列要求：
+ 可存取 Slack 工作區，並能夠安裝和授權第三方應用程式
+ 已識別您希望 AWS DevOps 代理程式傳送通知的 Slack 管道

## 註冊與 AWS DevOps 代理程式的 Slack 整合


![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/4034f56fad96.png)


1. 從 AWS DevOps 代理程式主控台的功能**提供者**頁面，在**通訊**下的**可用**提供者區段中尋找 **Slack**，然後按一下**註冊**。

1. 選擇**註冊**按鈕。

1. 系統會將您重新導向至 Slack，為您的工作區授權 AWS DevOps 代理程式應用程式。

1. 在 Slack 授權頁面上，將 直接安裝到工作區，而不是組織層級。

1. 從下拉式清單中選擇工作區。請勿選取企業網格。

1. 視需要為您的組織在每個工作區安裝 。

1. 檢閱請求的範圍，然後按一下**允許**以授權整合。

1. 授權之後，您將返回 AWS DevOps 代理程式主控台。

## 將 Slack 與您的 DevOps Agent Space(s) 建立關聯


在 DevOps Agent Space (DevOps Agent Space) 中註冊 Slack 之後，您可以將其與 DevOps Agent Space 建立關聯：

1. 從已設定 AgentSpace ****的功能索引標籤中，導覽至**通訊** > **Slack**。

1. 選取**新增 Slack **

1. 輸入頻道 ID

1. 選擇**建立**以完成 Slack 組態。

**注意**  
** 代理程式的機器人使用者必須新增至私有通道，才能發佈訊息。

**重要**  
** 解除安裝 Slack 應用程式可能會導致無法重新安裝 Slack 應用程式。請避免解除安裝 Slack 應用程式。

# 透過 Webhook 叫用 DevOps 代理程式


Webhook 可讓外部系統自動觸發 AWS DevOps 代理程式調查。這可整合票證系統、監控工具，以及可在事件發生時傳送 HTTP 請求的其他平台。

## 先決條件


在設定 Webhook 存取之前，請確定您有：
+ 在 AWS DevOps 代理程式中設定的代理程式空間
+ 存取 AWS DevOps 代理程式主控台
+ 將傳送 Webhook 請求的外部系統

## Webhook 類型


AWS DevOps 代理程式支援下列類型的 Webhook：
+ **整合特定的 Webhook** – 當您設定第三方整合時自動產生，例如 Dynatrace、Splunk、Datadog、New Relic、ServiceNow 或 Slack。這些 Webhook 與特定整合相關聯，並使用整合類型決定的身分驗證方法
+ **一般 Webhook** – 可以手動建立，以觸發來自特定整合未涵蓋之任何來源的調查。一般 Webhook 目前使用 **HMAC** 身分驗證 （目前無法使用承載字符）。
+ **Grafana 提醒 Webhook** – Grafana 可以透過 Webhook 聯絡點將提醒通知直接傳送至 AWS DevOps 代理程式。如需包含自訂通知範本的設定說明，請參閱[連接 Grafana](connecting-telemetry-sources-connecting-grafana.md)。

## Webhook 身分驗證方法


Webhook 的身分驗證方法取決於其與哪個整合相關聯：

**HMAC 身分驗證** – 用於：
+ Dynatrace 整合 Webhook
+ 一般 Webhook （未連結至特定的第三方整合）

**承載字符身分驗證** – 用於：
+ Splunk 整合 Webhook
+ Datadog 整合 Webhook
+ 新的 Relic 整合 Webhook
+ ServiceNow 整合 Webhook
+ Slack 整合 Webhook

## 設定 Webhook 存取


### 步驟 1：導覽至 Webhook 組態


1. 登入 AWS 管理主控台並導覽至 AWS DevOps 代理程式主控台

1. 選取您的客服人員空間

1. 前往**功能**索引標籤

1. 在 **Webhook** 區段中，按一下**設定**

### 步驟 2：產生 Webhook 登入資料


**對於整合特定的 Webhook：**

當您完成第三方整合的組態時，Webhook 會自動產生。Webhook 端點 URL 和登入資料會在整合設定程序結束時提供。

**對於一般 Webhook：**

1. 按一下**產生 Webhook**

1. 系統會產生 HMAC 金鑰對

1. 安全地存放產生的金鑰和秘密 - 您將無法再次擷取它們

1. 複製提供的 Webhook 端點 URL

### 步驟 3：設定外部系統


使用 Webhook 端點 URL 和登入資料，將外部系統設定為將請求傳送至 AWS DevOps 代理程式。特定組態步驟取決於您的外部系統。

## 管理 Webhook 登入資料


**移除登入**資料 – 若要刪除 Webhook 登入資料，請前往 Webhook 組態區段，然後按一下**移除**。移除登入資料後，Webhook 端點將不再接受請求，直到您產生新的登入資料為止。

**重新產生登入**資料 – 若要產生新的登入資料，請先移除現有的登入資料，然後產生新的金鑰對或字符。

## 使用 Webhook


### Webhook 請求格式


若要觸發調查，您的外部系統應將 HTTP POST 請求傳送至 Webhook 端點 URL。

**對於第 1 版 (HMAC 身分驗證）：**

標頭：
+ `Content-Type: application/json`
+ `x-amzn-event-signature: <HMAC signature>`
+ `x-amzn-event-timestamp: <+%Y-%m-%dT%H:%M:%S.000Z>`

HMAC 簽章是透過使用 SHA-256 使用您的私密金鑰簽署請求內文來產生。

**對於第 2 版 （承載字符身分驗證）：**

標頭：
+ `Content-Type: application/json`
+ `Authorization: Bearer <your-token>`

**請求內文：**

請求內文應包含事件的相關資訊：

```
json

{
  "title": "Incident title",
  "severity": "high",
  "affectedResources": ["resource-id-1", "resource-id-2"],
  "timestamp": "2025-11-23T18:00:00Z",
  "description": "Detailed incident description",
  "data": {
    "metadata": {
        "region": "us-east-1",
        "environment": "production"
    }
  }
}
```

### 範例程式碼


**第 1 版 (HMAC 身分驗證） - JavaScript：**

```
const crypto = require('crypto');

// Webhook configuration
const webhookUrl = 'https://your-webhook-endpoint.amazonaws.com/invoke';
const webhookSecret = 'your-webhook-secret-key';

// Incident data
const incidentData = {  
    eventType: 'incident',
    incidentId: 'incident-123',
    action: 'created',
    priority: "HIGH",
    title: 'High CPU usage on production server',
    description: 'High CPU usage on production server host ABC in AWS account 1234 region us-east-1',
    timestamp: new Date().toISOString(),
    service: 'MyTestService',
    data: {
      metadata: {
        region: 'us-east-1',
        environment: 'production'
      }
    }
};

// Convert data to JSON string
const payload = JSON.stringify(incidentData);
const timestamp = new Date().toISOString();
const hmac = crypto.createHmac("sha256", webhookSecret);
hmac.update(`${timestamp}:${payload}`, "utf8");
const signature = hmac.digest("base64");

// Send the request
fetch(webhookUrl, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-amzn-event-timestamp': timestamp,
    'x-amzn-event-signature': signature
  },
  body: payload
})
.then(res => {
  console.log(`Status Code: ${res.status}`);
  return res.text();
})
.then(data => {
  console.log('Response:', data);
})
.catch(error => {
  console.error('Error:', error);
});
```

**第 1 版 (HMAC 身分驗證） - cURL：**

```
#!/bin/bash

# Configuration
WEBHOOK_URL="https://event-ai.us-east-1.api.aws/webhook/generic/YOUR_WEBHOOK_ID"
SECRET="YOUR_WEBHOOK_SECRET"

# Create payload
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%S.000Z)
INCIDENT_ID="test-alert-$(date +%s)"

PAYLOAD=$(cat <<EOF
{
"eventType": "incident",
"incidentId": "$INCIDENT_ID",
"action": "created",
"priority": "HIGH",
"title": "Test Alert",
"description": "Test alert description",
"service": "TestService",
"timestamp": "$TIMESTAMP"
}
EOF
)

# Generate HMAC signature
SIGNATURE=$(echo -n "${TIMESTAMP}:${PAYLOAD}" | openssl dgst -sha256 -hmac "$SECRET" -binary | base64)

# Send webhook
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "x-amzn-event-timestamp: $TIMESTAMP" \
-H "x-amzn-event-signature: $SIGNATURE" \
-d "$PAYLOAD"
```

**第 2 版 （承載字符身分驗證） - JavaScript：**

```
function sendEventToWebhook(webhookUrl, secret) {
  const timestamp = new Date().toISOString();
  
  const payload = {
    eventType: 'incident',
    incidentId: 'incident-123',
    action: 'created',
    priority: "HIGH",
    title: 'Test Alert',
    description: 'Test description',
    timestamp: timestamp,
    service: 'TestService',
    data: {}
  };

  fetch(webhookUrl, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-amzn-event-timestamp": timestamp,
      "Authorization": `Bearer ${secret}`,  // Fixed: template literal
    },
    body: JSON.stringify(payload),
  });
}
```

**第 2 版 （承載字符身分驗證） - cURL：**

```
#!/bin/bash

# Configuration
WEBHOOK_URL="https://event-ai.us-east-1.api.aws/webhook/generic/YOUR_WEBHOOK_ID"
SECRET="YOUR_WEBHOOK_SECRET"

# Create payload
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%S.000Z)
INCIDENT_ID="test-alert-$(date +%s)"

PAYLOAD=$(cat <<EOF
{
"eventType": "incident",
"incidentId": "$INCIDENT_ID",
"action": "created",
"priority": "HIGH",
"title": "Test Alert",
"description": "Test alert description",
"service": "TestService",
"timestamp": "$TIMESTAMP"
}
EOF
)

# Send webhook
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-H "x-amzn-event-timestamp: $TIMESTAMP" \
-H "Authorization: Bearer $SECRET" \
-d "$PAYLOAD"
```

## 故障診斷 Webhook


### 如果您沒有收到 200


收到 200 和 Webhook 等訊息表示已通過身分驗證，且訊息已排入佇列，供系統驗證和處理。如果您沒有得到 200，但 4xx 很可能存在身分驗證或標頭錯誤。嘗試使用 curl 選項手動傳送，以協助偵錯身分驗證。

### 如果您收到 200，但調查未開始


可能的原因是承載格式錯誤。

1. 檢查時間戳記和事件 ID 是否已更新且是唯一的。重複的訊息會刪除重複訊息。

1. 檢查訊息是否為有效的 JSON

1. 檢查格式是否正確

### 如果您收到 200 且調查立即取消


您很可能已達到當月的限制。如果適用，請與您的 AWS 聯絡人討論，要求變更費率限制。

## 相關主題

+ [建立 代理程式空間](getting-started-with-aws-devops-agent-creating-an-agent-space.md)
+ [什麼是 DevOps Agent Web 應用程式？](about-aws-devops-agent-what-is-a-devops-agent-web-app.md)
+ [DevOps Agent IAM 許可](aws-devops-agent-security-devops-agent-iam-permissions.md)

# 將 AWS DevOps 代理程式與 Amazon EventBridge 整合


您可以使用調查和緩解生命週期期間發生的事件，將 AWS DevOps 代理程式與您的事件驅動型應用程式整合。 AWS DevOps 代理程式會在調查或緩解狀態變更時將事件傳送至 Amazon EventBridge。然後，您可以建立 EventBridge 規則，根據這些事件採取動作。

例如，您可以建立執行下列動作的規則：
+ 調查完成時，叫用 AWS Lambda 函數來處理調查結果。
+ 調查失敗或逾時時傳送 Amazon SNS 通知。
+ 在建立新的調查時更新票證系統。
+ 在緩解動作完成時啟動 AWS Step Functions 工作流程。

## EventBridge 如何路由 AWS DevOps 代理程式事件


AWS DevOps Agent 會將事件傳送至 EventBridge 預設事件匯流排。然後EventBridge 會根據您建立的規則評估事件。當事件符合規則的事件模式時，EventBridge 會將事件傳送至指定的目標。

下圖顯示 EventBridge 如何路由 AWS DevOps 代理程式事件。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/eventbridge-integration-how-it-works.png)


1. 當調查或緩解生命週期狀態變更時，AWS DevOps 代理程式會將事件傳送至 EventBridge 預設事件匯流排。

1. EventBridge 會根據您建立的規則評估事件。

1. 如果事件符合規則的事件模式，EventBridge 會將事件傳送至規則中指定的目標。

## AWS DevOps 代理程式事件


AWS DevOps 代理程式會將下列事件傳送至 EventBridge。所有事件都使用來源 `aws.aidevops`。

### 支援的調查事件



| 詳細資訊類型 | Description | 
| --- | --- | 
| Investigation Created | 已在客服人員空間中建立調查。 | 
| Investigation Priority Updated | 調查的優先順序已變更。 | 
| Investigation In Progress | 調查已開始主動分析。 | 
| Investigation Completed | 調查結果已成功完成調查。 | 
| Investigation Failed | 調查發生錯誤，無法完成。 | 
| Investigation Timed Out | 調查超過允許的持續時間上限。 | 
| Investigation Cancelled | 調查在完成之前已取消。 | 
| Investigation Pending Triage | 在主動分析開始之前，調查正在等待分類。 | 
| Investigation Linked | 調查已連結至相關事件或票證。 | 

### 支援的緩解事件



| 詳細資訊類型 | Description | 
| --- | --- | 
| Mitigation In Progress | 已啟動緩解動作。 | 
| Mitigation Completed | 已成功完成緩解動作。 | 
| Mitigation Failed | 緩解動作發生錯誤，無法完成。 | 
| Mitigation Timed Out | 緩解動作超過允許的持續時間上限。 | 
| Mitigation Cancelled | 緩解動作已在完成之前取消。 | 

如需詳細的欄位描述和範例事件，請參閱 [AWS DevOps Agent 事件詳細資訊參考](integrating-devops-agent-into-event-driven-applications-using-amazon-eventbridge-devops-agent-events-detail-reference.md)。

## 建立符合 AWS DevOps 代理程式事件的事件模式


EventBridge 規則使用事件模式來選取事件並將其路由至目標。事件模式與其處理的事件結構相符。您可以建立事件模式，根據事件欄位篩選 AWS DevOps 代理程式事件。

下列範例顯示常見使用案例的事件模式。

**比對 all AWS DevOps 代理程式事件**

下列事件模式符合來自 AWS DevOps Agent 的所有事件。

```
{
  "source": ["aws.aidevops"]
}
```

**僅比對調查事件**

下列事件模式使用字首比對來僅選取調查生命週期事件。

```
{
  "source": ["aws.aidevops"],
  "detail-type": [{"prefix": "Investigation"}]
}
```

**僅比對完成和失敗事件**

下列事件模式符合已完成或失敗的調查和緩解措施的事件。

```
{
  "source": ["aws.aidevops"],
  "detail-type": [
    "Investigation Completed",
    "Investigation Failed",
    "Mitigation Completed",
    "Mitigation Failed"
  ]
}
```

**比對特定客服人員空間的事件**

下列事件模式符合來自特定客服人員空間的事件。

```
{
  "source": ["aws.aidevops"],
  "detail": {
    "metadata": {
      "agent_space_id": ["your-agent-space-id"]
    }
  }
}
```

如需有關事件模式的相關資訊，請參閱《Amazon EventBridge 使用者指南》**中的 [Amazon EventBridge 事件規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)。

## Amazon EventBridge 許可


AWS DevOps Agent 不需要額外的許可，即可將事件交付至 EventBridge。事件會自動傳送至預設事件匯流排。

根據您為 EventBridge 規則設定的目標，您可能需要新增特定許可。如需目標所需許可的詳細資訊，請參閱《[Amazon EventBridge 使用者指南》中的使用 Amazon EventBridge 的資源型政策](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html)。 * EventBridge *

## 額外 EventBridge 資源


如需 EventBridge 概念和組態的詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的下列主題：
+ [EventBridge 事件匯流排](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus.html)
+ [EventBridge 事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)
+ [EventBridge 事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)
+ [EventBridge 規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)
+ [EventBridge 目標](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)

# AWS DevOps Agent 事件詳細資訊參考


來自 AWS 服務的事件具有常見的中繼資料欄位，包括 `source`、`detail-type`、`region`、 `account`和 `time`。這些事件也包含具有服務特定資料`detail`的欄位。For AWS DevOps 代理程式事件， 一律`source`為 `aws.aidevops`，而 會`detail-type`識別特定事件。

## 調查事件


下列`detail-type`值可識別調查事件：
+ `Investigation Created`
+ `Investigation Priority Updated`
+ `Investigation In Progress`
+ `Investigation Completed`
+ `Investigation Failed`
+ `Investigation Timed Out`
+ `Investigation Cancelled`
+ `Investigation Pending Triage`
+ `Investigation Linked`

以下包含 `source`和 `detail-type` 欄位，因為其中包含 AWS DevOps 代理程式事件的特定值。如需所有事件中包含的其他中繼資料欄位的定義，請參閱《*Amazon EventBridge 事件參考*》中的[事件結構](https://docs.aws.amazon.com/eventbridge/latest/ref/overiew-event-structure.html)。

以下是調查事件的 JSON 結構。

```
{
  . . .,
  "detail-type" : "string",
  "source" : "aws.aidevops",
  . . .,
  "detail" : {
    "version" : "string",
    "metadata" : {
      "agent_space_id" : "string",
      "task_id" : "string",
      "execution_id" : "string"
    },
    "data" : {
      "task_type" : "string",
      "priority" : "string",
      "status" : "string",
      "created_at" : "string",
      "updated_at" : "string",
      "summary_record_id" : "string"
    }
  }
}
```

**`detail-type`** 識別事件的類型。對於調查事件，這是先前列出的其中一個事件名稱。

**`source`** 識別產生事件的服務。對於 AWS DevOps 代理程式事件，此值為 `aws.aidevops`。

**`detail`** 包含事件特定資料的 JSON 物件。`detail` 物件包含下列欄位：
+ `version` （字串） – 事件詳細資訊的結構描述版本。目前為 `1.0.0`。
+ `metadata.agent_space_id` （字串） – 事件來源的代理程式空間的唯一識別符。
+ `metadata.task_id` （字串） – 任務的唯一識別符。
+ `metadata.execution_id` （字串） – 執行執行的唯一識別符。將執行指派給調查時出現。
+ `data.task_type` （字串） – 任務的類型。值：`INVESTIGATION`。
+ `data.priority` （字串） – 優先順序層級。值：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`MINIMAL`。
+ `data.status` （字串） – 目前狀態。值：`PENDING_START`、`IN_PROGRESS`、`COMPLETED`、`FAILED`、`TIMED_OUT`、`CANCELLED`、`PENDING_TRIAGE`、`LINKED`。
+ `data.created_at` （字串） – 建立任務時的 ISO 8601 時間戳記。
+ `data.updated_at` （字串） – 任務上次更新時的 ISO 8601 時間戳記。
+ `data.summary_record_id` （字串） – 包含調查結果的摘要記錄識別符。在針對已完成的調查產生摘要時包含。您可以使用此識別符，透過 AWS DevOps 代理程式 API 擷取摘要內容，以查詢記錄類型為 的日誌記錄`investigation_summary_md`。

**範例：調查已完成事件**

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789015",
  "detail-type": "Investigation Completed",
  "source": "aws.aidevops",
  "account": "123456789012",
  "time": "2026-03-12T18:10:00Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:aidevops:us-east-1:123456789012:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c"
  ],
  "detail": {
    "version": "1.0.0",
    "metadata": {
      "agent_space_id": "8f6187a7-0388-4926-8217-3a0fe32f757c",
      "task_id": "a1b2c3d4-5678-90ab-cdef-example11111",
      "execution_id": "b2c3d4e5-6789-01ab-cdef-example22222"
    },
    "data": {
      "task_type": "INVESTIGATION",
      "priority": "CRITICAL",
      "status": "COMPLETED",
      "created_at": "2026-03-12T18:00:00Z",
      "updated_at": "2026-03-12T18:10:00Z",
      "summary_record_id": "d4e5f6g7-6789-01ab-cdef-example44444"
    }
  }
}
```

**範例：調查失敗事件**

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789016",
  "detail-type": "Investigation Failed",
  "source": "aws.aidevops",
  "account": "123456789012",
  "time": "2026-03-12T18:10:00Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:aidevops:us-east-1:123456789012:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c"
  ],
  "detail": {
    "version": "1.0.0",
    "metadata": {
      "agent_space_id": "8f6187a7-0388-4926-8217-3a0fe32f757c",
      "task_id": "a1b2c3d4-5678-90ab-cdef-example11111",
      "execution_id": "b2c3d4e5-6789-01ab-cdef-example22222"
    },
    "data": {
      "task_type": "INVESTIGATION",
      "priority": "CRITICAL",
      "status": "FAILED",
      "created_at": "2026-03-12T18:00:00Z",
      "updated_at": "2026-03-12T18:10:00Z"
    }
  }
}
```

## 緩解事件


下列`detail-type`值可識別緩解事件：
+ `Mitigation In Progress`
+ `Mitigation Completed`
+ `Mitigation Failed`
+ `Mitigation Timed Out`
+ `Mitigation Cancelled`

以下包含 `source`和 `detail-type` 欄位，因為其中包含 AWS DevOps 代理程式事件的特定值。如需所有事件中包含的其他中繼資料欄位的定義，請參閱《*Amazon EventBridge 事件參考*》中的[事件結構](https://docs.aws.amazon.com/eventbridge/latest/ref/overiew-event-structure.html)。

以下是緩解事件的 JSON 結構。

```
{
  . . .,
  "detail-type" : "string",
  "source" : "aws.aidevops",
  . . .,
  "detail" : {
    "version" : "string",
    "metadata" : {
      "agent_space_id" : "string",
      "task_id" : "string",
      "execution_id" : "string"
    },
    "data" : {
      "task_type" : "string",
      "priority" : "string",
      "status" : "string",
      "created_at" : "string",
      "updated_at" : "string",
      "summary_record_id" : "string"
    }
  }
}
```

**`detail-type`** 識別事件的類型。對於緩解事件，這是先前列出的其中一個事件名稱。

**`source`** 識別產生事件的服務。對於 AWS DevOps 代理程式事件，此值為 `aws.aidevops`。

**`detail`** 包含事件特定資料的 JSON 物件。`detail` 物件包含下列欄位：
+ `version` （字串） – 事件詳細資訊的結構描述版本。目前為 `1.0.0`。
+ `metadata.agent_space_id` （字串） – 事件來源的代理程式空間的唯一識別符。
+ `metadata.task_id` （字串） – 任務的唯一識別符。
+ `metadata.execution_id` （字串） – 執行執行的唯一識別符。當執行已指派給緩解措施時出現。
+ `data.task_type` （字串） – 任務的類型。值：`INVESTIGATION`。
+ `data.priority` （字串） – 優先順序層級。值：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`MINIMAL`。
+ `data.status` （字串） – 目前狀態。值：`IN_PROGRESS`、`COMPLETED`、`FAILED`、`TIMED_OUT`、`CANCELLED`。
+ `data.created_at` （字串） – 建立任務時的 ISO 8601 時間戳記。
+ `data.updated_at` （字串） – 任務上次更新時的 ISO 8601 時間戳記。
+ `data.summary_record_id` （字串） – 包含緩解問題清單之摘要記錄的識別符。在針對已完成的緩解產生摘要時包含。您可以使用此識別符查詢記錄類型為 的日誌記錄，透過 AWS DevOps 代理程式 API 擷取摘要內容`mitigation_summary_md`。

**範例：緩解已完成事件**

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-12345678901c",
  "detail-type": "Mitigation Completed",
  "source": "aws.aidevops",
  "account": "123456789012",
  "time": "2026-03-12T18:20:00Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:aidevops:us-east-1:123456789012:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c"
  ],
  "detail": {
    "version": "1.0.0",
    "metadata": {
      "agent_space_id": "8f6187a7-0388-4926-8217-3a0fe32f757c",
      "task_id": "a1b2c3d4-5678-90ab-cdef-example11111",
      "execution_id": "c3d4e5f6-7890-12ab-cdef-example33333"
    },
    "data": {
      "task_type": "INVESTIGATION",
      "priority": "CRITICAL",
      "status": "COMPLETED",
      "created_at": "2026-03-12T18:00:00Z",
      "updated_at": "2026-03-12T18:20:00Z",
      "summary_record_id": "e5f6g7h8-7890-12ab-cdef-example55555"
    }
  }
}
```

**範例：緩解失敗事件**

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-12345678901d",
  "detail-type": "Mitigation Failed",
  "source": "aws.aidevops",
  "account": "123456789012",
  "time": "2026-03-12T18:20:00Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:aidevops:us-east-1:123456789012:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c"
  ],
  "detail": {
    "version": "1.0.0",
    "metadata": {
      "agent_space_id": "8f6187a7-0388-4926-8217-3a0fe32f757c",
      "task_id": "a1b2c3d4-5678-90ab-cdef-example11111",
      "execution_id": "c3d4e5f6-7890-12ab-cdef-example33333"
    },
    "data": {
      "task_type": "INVESTIGATION",
      "priority": "CRITICAL",
      "status": "FAILED",
      "created_at": "2026-03-12T18:00:00Z",
      "updated_at": "2026-03-12T18:20:00Z"
    }
  }
}
```

# 已取代的日誌和指標


您可以使用 vended Amazon CloudWatch 指標和日誌來監控代理程式空間和服務操作。本主題說明 AWS DevOps 代理程式自動發佈至您帳戶的 CloudWatch 指標，以及您可以設定以交付至您偏好目的地的付費日誌。

## 已取代的 CloudWatch 指標


AWS DevOps 代理程式會自動將指標發佈至您帳戶中的 Amazon CloudWatch。這些指標無需任何組態即可使用。您可以使用它們來監控用量、追蹤操作活動，以及建立警示。

### 服務連結角色


若要在您的帳戶中發佈此服務的 Amazon CloudWatch 指標， AWS DevOps 代理程式會自動為您建立[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) **AWSServiceRoleForAIDevOps** 服務連結角色。如果叫用 API 的 IAM 角色沒有適當的許可，資源建立將會失敗，並顯示 InvalidParameterException。

**重要**  
在 2026 年 3 月 13 日之前建立 AgentSpace 的客戶將需要手動建立 **AWSServiceRoleForAIDevOps** 服務連結角色，才能在其帳戶中發佈 AWS DevOps Agent 的 CloudWatch 指標。

### 手動建立服務連結角色 （適用於現有客戶）


執行以下任意一項：
+ 在 IAM 主控台中，在 **AWS DevOps Agent** 服務下建立 **AWSServiceRoleForAIDevOps** 角色。
+ 從 AWS CLI 執行下列命令：

```
aws iam create-service-linked-role --aws-service-name aidevops.amazonaws.com
```

### 命名空間


所有指標都會在 `AWS/AIDevOps` 命名空間下發佈。

### 維度


所有指標都包含下列維度。


| 維度 | Description | 
| --- | --- | 
| AgentSpaceUUID | 代理程式空間的唯一識別符。若要彙總帳戶中所有代理程式空間的指標，請使用 CloudWatch 數學表達式或省略維度篩選條件。 | 

### 指標參考



| 指標名稱 | Description | 單位 | 發佈頻率 | 有用的統計資料 | 
| --- | --- | --- | --- | --- | 
| ConsumedChatRequests | 客服人員空間耗用的聊天請求數量。若要取得您帳戶的總計數，請跨所有AgentSpaceUUID維度使用 SUM 統計資料。 | 計數 | 每 5 分鐘 | 總和，平均 | 
| ConsumedInvestigationTime | 在代理程式空間中執行調查所花費的時間。 | 秒鐘 | 每 5 分鐘 | 總和、平均值、最大值 | 
| ConsumedEvaluationTime | 在代理程式空間中執行評估所花費的時間。 | 秒鐘 | 每 5 分鐘 | 總和、平均值、最大值 | 
| TopologyCompletionCount | 拓撲處理完成次數。 AWS DevOps 代理程式會在拓撲處理完成時發出此指標，無論是從加入期間的初始建立、手動更新或排定的每日重新整理。 | 計數 | 事件驅動 （每次完成時發出） | Sum、SampleCount | 

### 在 CloudWatch 主控台中檢視指標


1. 開啟 [CloudWatch 主控台](https://console.aws.amazon.com/cloudwatch/)。

1. 在導覽窗格中，選擇 **Metrics** (指標)，然後選擇 **All metrics** (所有指標)。

1. 選擇 **AWS/AIDevOps** 命名空間。

1. 選擇 **By AgentSpace** 以檢視代理程式空間的指標。

**注意**  
** 您可以在這些指標上建立 CloudWatch 警示，以便在用量超過閾值時接收通知。例如，在 上建立警示`ConsumedChatRequests`以監控聊天請求耗用量。

## 先決條件


設定日誌交付之前，請確定您有下列項目：
+ 可存取 AWS DevOps Agent 主控台的作用中 AWS 帳戶
+ 具有 CloudWatch Logs 交付 APIsIAM 主體
+ （選用） 如果您打算使用 Amazon S3 儲存貯體或 Amazon Data Firehose 交付串流做為日誌目的地

## 付費日誌


AWS DevOps 代理程式支援自動提供的日誌，可讓您查看代理程式空間和服務註冊處理的事件。已取代的日誌使用 Amazon CloudWatch Logs 基礎設施，將日誌交付至您偏好的目的地。

若要使用付費日誌，您必須設定交付目的地。支援下列目的地：
+ **Amazon CloudWatch Logs** – 您帳戶中的日誌群組
+ **Amazon S3** – 您帳戶中的 S3 儲存貯體
+ **Amazon Data Firehose** – 帳戶中的 Firehose 交付串流

### 支援的日誌類型


支援單一日誌類型：`APPLICATION_LOGS`。此日誌類型涵蓋服務發出的所有操作事件。

### 日誌事件類型


下表摘要說明 AWS DevOps 代理程式記錄的事件。


| 事件 | Description | 日誌層級 | 
| --- | --- | --- | 
| 收到的客服人員來電事件 | 代理程式是由整合來源觸發，並接收傳入事件 （例如 PagerDuty 事件）。 | INFO | 
| 代理程式傳入事件已捨棄 | 傳入事件在客服人員處理之前遭到捨棄。日誌包含原因 （例如，資料格式不正確）。 | 待定 | 
| 客服人員傳出通訊失敗 | 與第三方整合的傳出通訊失敗。日誌包含任務 ID 和目的地識別符 （例如，身分驗證錯誤）。 | 待定 | 
| 拓撲建立已排入佇列 | 拓撲建立任務已排入佇列進行處理。 | INFO | 
| 拓撲建立已開始 | 拓撲建立任務開始處理。 | INFO | 
| 拓撲建立完成 | 拓撲建立任務已完成處理。此事件適用於初始建立、更新和每日重新整理。 | INFO | 
| 資源探索失敗 | 建立拓撲期間的資源探索遇到失敗。 | ERROR | 
| 服務註冊失敗 | 服務註冊遇到無法復原的失敗 | ERROR | 
| Webhook 驗證失敗 | 當 Devops 代理程式收到的 Webhook 不符合預期的結構描述時 | ERROR | 
| 關聯驗證狀態更新 | 當客服人員空間關聯 （典型的主要/次要帳戶） 時，驗證狀態會從有效變更為無效，反之亦然 （例如，由格式不正確的角色所造成，且服務無法擔任）。 | 錯誤/資訊 | 

### 許可


AWS DevOps 代理程式使用 [CloudWatch 提供的日誌 (V2 許可）](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-vended-logs-permissions-V2.html) 來交付日誌。若要設定日誌交付，設定交付的 IAM 角色必須具有下列許可：
+ `aidevops:AllowVendedLogDeliveryForResource` – 允許代理程式空間資源的日誌交付時需要。
+ CloudWatch Logs 交付 APIs許可 (`logs:PutDeliverySource`、`logs:CreateDelivery`、 `logs:PutDeliveryDestination`和相關操作）。
+ 您所選交付目的地的特定許可。

如需每個目的地類型所需的完整 IAM 政策，請參閱《*Amazon CloudWatch Logs 使用者指南*》中的下列主題：
+ [傳送至 CloudWatch Logs 的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-CloudWatchLogs.html)
+ [傳送至 Amazon S3 的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-S3.html)
+ [傳送至 Firehose 的日誌](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-infrastructure-V2-Firehose.html)

### 設定日誌交付 （主控台）


AWS DevOps Agent 在 AWS 管理主控台中提供兩個位置來設定日誌交付：
+ **服務註冊設定頁面** – 設定服務層級事件的日誌交付。這些日誌使用服務 ARN (`arn:aws:aidevops:<region>:<account-id>:service/<account-id>`) 做為資源。
+ **客服人員空間頁面 – **為個別客服人員空間特定的事件設定日誌交付。這些日誌使用客服人員空間 ARN (`arn:aws:aidevops:<region>:<account-id>:agentspace/<agent-space-id>`) 做為資源。

#### 設定服務註冊的日誌交付


1. 在 AWS 管理主控台中開啟 AWS DevOps 代理程式主控台。

1. 在導覽窗格中，選擇**設定**。

1. 在**功能提供者** **>** **日誌**索引標籤中，選擇**設定**。

1. 針對**目的地類型**，選擇下列其中一項：

1. **CloudWatch Logs** – 選取或建立日誌群組。

1. **Amazon S3** – 輸入 S3 儲存貯體 ARN。

1. **Amazon Data Firehose** – 選取或建立 Firehose 交付串流。

1. 對於**其他設定** – *選用*，您可以指定下列選項：

   1. 針對**欄位選擇**，選取您要交付至目的地的日誌欄位名稱。您可以選取[存取日誌欄位](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/standard-logs-reference.html#BasicDistributionFileFormat)和[即時存取日誌欄位](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/standard-logging.html#standard-logging-real-time-log-selection)的子集。

   1. (僅限 Amazon S3) 對於**分割**，指定分割日誌檔案資料的路徑。

   1. (僅限 Amazon S3) 對於 **Hive 相容檔案格式**，您可以選取核取方塊以使用 Hive 相容 S3 路徑。這有助於簡化將新資料載入 Hive 相容工具的過程。

   1. 針對**輸出格式**，請指定您偏好的格式。

   1. 對於**欄位分隔符號**，指定如何分隔日誌欄位。

1. 選擇**儲存**。

1. 確認交付狀態顯示**作用中**。

#### 設定客服人員空間的日誌交付


1. 在 AWS 管理主控台中開啟 AWS DevOps 代理程式主控台。

1. 選擇您要設定的代理程式空間。

1. 在**組態**索引標籤中，選擇**設定**。

1. 針對**[目的地類型](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions-V2:~:text=sts%3AAssumeRole%22%0A%20%20%20%20%7D%0A%20%20%5D%0A%7D-,Logging%20that%20requires%20additional%20permissions%20%5BV2%5D,-Some%20AWS%20services)**，選擇下列其中一項：

1. **CloudWatch Logs** – 選取或建立日誌群組。

1. **Amazon S3** – 輸入 S3 儲存貯體 ARN。

1. **Amazon Data Firehose** – 選取或建立 Firehose 交付串流。

1. 對於**其他設定 – \$1選用** \$1，您可以指定下列選項：

   1. 針對**欄位選擇**，選取您要交付至目的地的日誌欄位名稱。您可以選取[存取日誌欄位](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/standard-logs-reference.html#BasicDistributionFileFormat)和[即時存取日誌欄位](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/standard-logging.html#standard-logging-real-time-log-selection)的子集。

   1. (僅限 Amazon S3) 對於**分割**，指定分割日誌檔案資料的路徑。

   1. (僅限 Amazon S3) 對於 **Hive 相容檔案格式**，您可以選取核取方塊以使用 Hive 相容 S3 路徑。這有助於簡化將新資料載入 Hive 相容工具的過程。

   1. 針對**輸出格式**，請指定您偏好的格式。

   1. 對於**欄位分隔符號**，指定如何分隔日誌欄位。

1. 選擇**儲存**。

1. 確認交付狀態顯示**作用中**。

### 設定日誌交付 (CloudWatch API)


您也可以使用 CloudWatch Logs API，以程式設計方式設定日誌交付。工作日誌交付包含三個元素：
+ **DeliverySource** – 代表產生日誌的 AWS DevOps 代理程式空間資源。
+ **DeliveryDestination** – 代表寫入日誌的目的地。
+ **交付** – 將交付來源連接到交付目的地。

#### 步驟 1：建立交付來源


使用 [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html) 操作來建立交付來源。傳遞 your AWS DevOps 代理程式空間資源的 ARN，並將 指定`APPLICATION_LOGS`為日誌類型。

下列範例會建立客服人員空間的交付來源：

```
{
    "name": "my-agent-space-delivery-source",
    "resourceArn": "arn:aws:aidevops:us-east-1:123456789012:agentspace/my-agent-space-id",
    "logType": "APPLICATION_LOGS"
}
```

下列範例會建立服務的交付來源：

```
{
    "name": "my-service-delivery-source",
    "resourceArn": "arn:aws:aidevops:us-east-1:123456789012:service",
    "logType": "APPLICATION_LOGS"
}
```

#### 步驟 2：建立交付目的地


使用 [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html) 操作來設定日誌存放的位置。您可以選擇 Amazon CloudWatch Logs、Amazon S3 或 Amazon Data Firehose。

下列範例會建立 CloudWatch Logs 目的地：

```
{
    "name": "my-cwl-destination",
    "deliveryDestinationConfiguration": {
        "destinationResourceArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/aidevops/my-agent-space"
    },
    "outputFormat": "json"
}
```

下列範例會建立 Amazon S3 目的地：

```
{
    "name": "my-s3-destination",
    "deliveryDestinationConfiguration": {
        "destinationResourceArn": "arn:aws:s3:::my-aidevops-logs-bucket"
    },
    "outputFormat": "json"
}
```

下列範例會建立 Amazon Data Firehose 目的地：

```
{
    "name": "my-firehose-destination",
    "deliveryDestinationConfiguration": {
        "destinationResourceArn": "arn:aws:firehose:us-east-1:123456789012:deliverystream/my-aidevops-log-stream"
    },
    "outputFormat": "json"
}
```

**注意**  
** 如果您跨帳戶交付日誌，則必須在目的地帳戶中使用 [PutDeliveryDestinationPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestinationPolicy.html) 來授權交付。

如果您想要使用 CloudFormation，您可以使用下列項目：
+ [Delivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)
+ [DeliveryDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)
+ [DeliverySource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)

`ResourceArn` 是 `AgentSpaceArn`，且 `LogType` 必須是 `APPLICATION_LOGS` 作為支援的日誌類型。

#### 步驟 3：建立交付


使用 [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html) 操作將交付來源連結至交付目的地。

```
{
    "deliverySourceName": "my-agent-space-delivery-source",
    "deliveryDestinationArn": "arn:aws:logs:us-east-1:123456789012:delivery-destination:my-cwl-destination"
}
```

#### AWS CloudFormation


您也可以使用 AWS CloudFormation 搭配下列資源來設定日誌交付：
+ [AWS：：Logs：：DeliverySource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverysource.html)
+ [AWS：：Logs：：DeliveryDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-deliverydestination.html)
+ [AWS：：Logs：：Delivery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-delivery.html)

將 `ResourceArn`設定為 AWS DevOps 代理程式空間或服務 ARN，並將 `LogType`設定為 `APPLICATION_LOGS`。

### 日誌結構描述參考


AWS DevOps 代理程式在所有事件類型中使用共用日誌結構描述。不是每個日誌事件都會使用每個欄位。

下表說明日誌結構描述中的欄位。


| 欄位 | Type | 說明 | 
| --- | --- | --- | 
| event\$1timestamp | Long | Unix 事件發生時的時間戳記 | 
| resource\$1arn | String | 產生事件之資源的 ARN | 
| optional\$1account\$1id | String | AWS 與日誌相關聯的 帳戶 ID。 | 
| optional\$1level | String | 日誌層級：INFO、WARN、 ERROR | 
| optional\$1agent\$1space\$1id | String | 代理程式空間的識別符。 | 
| optional\$1association\$1id | String | 日誌的關聯識別符。 | 
| optional\$1status | String | 拓撲操作的狀態。 | 
| optional\$1webhook\$1id | String | Webhook 識別符。 | 
| optional\$1mcp\$1endpoint\$1url | String | MCP 伺服器端點 URL | 
| optional\$1service\$1type | String | 服務的類型：DYNATRACE、DATADOG、GITHUB、SLACK、SERVICENOW。 | 
| optional\$1service\$1endpoint\$1url | String | 第三方整合的端點 URL。 | 
| optional\$1service\$1id | String | 來源的識別符。 | 
| request\$1id | String | 請求識別符以關聯 AWS CloudTrail 或支援票證。 | 
| optional\$1operation | String | 已執行操作的名稱。 | 
| optional\$1task\$1type | String | 客服人員待處理項目任務類型： INVESTIGATION 或 EVALUATION | 
| optional\$1task\$1id | String | 客服人員待處理任務 IDAgent待處理任務識別符。 | 
| optional\$1reference | String | 客服人員任務的參考 （例如 Jira 票證）。 | 
| optional\$1error\$1type | String | 錯誤類型 | 
| optional\$1error\$1message | String | 操作失敗時的錯誤描述。 | 
| optional\$1details | 字串 (JSON) | 包含操作參數和結果的服務特定事件承載。 | 

### 管理和停用日誌交付


您可以隨時從 AWS 管理主控台中的 AWS DevOps 代理程式主控台或使用 CloudWatch Logs API 來修改或移除日誌交付。

#### 管理日誌交付 （主控台）


1. 在 AWS 管理主控台中開啟 AWS DevOps 代理程式主控台。

1. 導覽至**設定**頁面 （適用於服務層級日誌） 或特定**客服人員空間**頁面 （適用於客服人員空間層級日誌）。

1. 在**組態**索引標籤 （適用於客服人員空間層級日誌） 或**功能提供者** **>** **日誌**索引標籤 （適用於服務層級日誌） 中，選擇要修改的交付。

1. 視需要更新組態，然後選擇**儲存**。

**注意：**您無法變更現有交付的目的地類型。若要變更目的地類型，請刪除目前的交付並建立新的交付。

#### 停用日誌交付 （主控台）


1. 在 AWS 管理主控台中開啟 AWS DevOps 代理程式主控台。

1. 導覽至**設定**頁面 （適用於服務層級日誌） 或特定**客服人員空間**頁面 （適用於客服人員空間層級日誌）。

1. 在**組態**索引標籤 （適用於客服人員空間層級日誌） 或**功能提供者** **>** **日誌**索引標籤 （適用於服務層級日誌） 中，選取要移除的交付。

1. 選擇**刪除**並確認。

#### 停用日誌交付 (API)


若要使用 API 移除日誌交付，請依下列順序刪除資源：

1. 使用 [DeleteDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDelivery.html) 刪除交付。

1. 使用 [DeleteDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDeliverySource.html) 刪除交付來源。

1. （選用） 如果不再需要交付目的地，請使用 [DeleteDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteDeliveryDestination.html) 將其刪除。

**重要**  
** 您需負責在刪除產生日誌的客服人員空間資源後移除日誌交付資源 （例如，刪除客服人員空間後）。如果您不移除這些資源，孤立的交付組態可能會保留。

## 定價


啟用付費日誌時 AWS DevOps 代理程式不會收取費用。不過，您可能需要支付交付、擷取、儲存或存取的費用，視您選取的日誌交付目的地而定。如需定價詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)中日誌索引標籤上的**已修訂****日誌**。

如需目的地特定的定價，請參閱下列內容：
+ [Amazon CloudWatch Logs 定價](https://aws.amazon.com/cloudwatch/pricing/)
+ [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)
+ [Amazon Data Firehose 定價](https://aws.amazon.com/kinesis/data-firehose/pricing/)

# 連線至私有託管工具


## 私有連線概觀


AWS DevOps 代理程式可以使用自訂模型內容通訊協定 (MCP) 工具和其他整合進行擴充，這些工具可讓代理程式存取內部系統，例如私有套件登錄檔、自我託管可觀測性平台、內部文件 APIs 和來源控制執行個體 （請參閱：[設定適用於 AWS DevOps 代理程式的功能](configuring-capabilities-for-aws-devops-agent.md))。這些服務通常在 [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide) 內部執行，但有限制或沒有公有網際網路存取，這表示預設情況下， AWS DevOps 代理程式無法與其連線。

適用於 AWS DevOps Agent 的私有連線可讓您安全地將 Agent Space 連線至 VPC 中執行的服務，而不會將其公開至公有網際網路。私有連線可與需要連線到私有端點的任何整合搭配使用，包括 MCP 伺服器、自我託管 Grafana 或 Splunk 執行個體，以及 GitHub Enterprise Server 和 GitLab 自我管理等來源控制系統。

**注意**  
** 如果您的私有託管工具從 VPC 內向 AWS DevOps 代理程式發出傳出請求，也可以使用 VPC 端點來保護此流量，使其保持在 AWS 網路內。例如，這可與透過 Webhook 事件觸發 DevOps 代理程式的工具搭配使用 （請參閱：[透過 Webhook 叫用 DevOps 代理程式](configuring-capabilities-for-aws-devops-agent-invoking-devops-agent-through-webhook.md))。如需詳細資訊，請參閱[VPC 端點 (AWS PrivateLink)](aws-devops-agent-security-vpc-endpoints-aws-privatelink.md)。

### 私有連線的運作方式


私有連線會在 AWS DevOps Agent 與 VPC 中的目標資源之間建立安全的網路路徑。在幕後， AWS DevOps 代理程式會使用 Amazon [VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/) 來建立此安全的私有連線路徑。VPC Lattice 是一種應用程式聯網服務，可讓您跨 VPCs、帳戶和運算類型連線、保護和監控應用程式之間的通訊，而無需管理基礎網路基礎設施。

當您建立私有連線時，會發生下列情況：
+ 您可以提供具有目標服務網路連線能力的 VPC、子網路和 （選用） 安全群組。
+ AWS DevOps Agent 會建立服務管理[的資源閘道](https://docs.aws.amazon.com/vpc/latest/privatelink/resource-gateway.html)，並在您指定的子網路中佈建其彈性網路介面 (ENIs)。
+ 代理程式會使用 資源閘道，透過私有網路路徑將流量路由到目標服務的 IP 地址或 DNS 名稱。

資源閘道由 AWS DevOps Agent 完全管理，並顯示為帳戶中的唯讀資源 （名為 `aidevops-{your-private-connection-name}`)。您不需要設定或維護它。在您的 VPC 中建立的唯一資源是您指定的子網路中的 ENIs。這些 ENIs做為私有流量的進入點，完全由 服務管理。他們不接受來自網際網路的傳入連線，而且您可以透過自己的安全群組保留對流量的完全控制。

### 安全


私有連線的設計具有多層安全性：
+ **不公開網際網路** – AWS DevOps 代理程式與目標服務之間的所有流量都會保留在 AWS 網路上。您的服務永遠不需要公有 IP 地址或網際網路閘道。
+ **服務控制的資源閘道** – 服務管理的資源閘道在您的帳戶中為唯讀。它只能由 AWS DevOps Agent 使用，其他服務或主體都無法透過它路由流量。您可以在 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/) 日誌中驗證這一點，這會記錄所有 VPC Lattice API 呼叫。
+ **您的安全群組、規則** – 您可以透過您擁有和管理的安全群組來控制 ENIs的傳入和傳出流量。如果您未指定安全群組， AWS DevOps Agent 會建立預設安全群組，範圍限定於您定義的連接埠。
+ **具有最低權限的服務連結角色** – AWS DevOps Agent [使用服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)來僅建立必要的 VPC Lattice 和 Amazon EC2 資源。此角色的範圍是標記 的資源`AWSAIDevOpsManaged`，且無法存取您帳戶中的任何其他資源。

**注意**  
** 如果您的組織具有限制 VPC Lattice API 動作[的服務控制政策 (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)，則會透過服務連結角色建立服務受管資源閘道。確保您的 SCPs服務連結角色的必要動作。

### Architecture


下圖顯示私有連線的網路路徑。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/7cd6182e6b8d.png)


在此架構中：
+ AWS DevOps 代理程式會對目標服務啟動請求。
+ Amazon VPC Lattice 透過 VPC 中的服務受管資源閘道路由請求。如需使用您自己的 VPC Lattice 資源的進階設定，請參閱[使用現有 VPC Lattice 資源的進階設定](#advanced-setup-using-existing-vpc-lattice-resources)。
+ VPC 中的 ENI 會收到流量，並將其轉送至目標服務的 IP 地址或 DNS 名稱。
+ 您的安全群組會管理透過 ENIs 允許哪些流量。
+ 從目標服務的角度來看，請求源自 VPC 內 ENIs的私有 IP 地址。

## 建立私有連線


您可以使用 AWS 管理主控台或 CLI AWS 建立私有連線。

**注意**  
** VPC Lattice 不支援下列可用區域：`use1-az3`、`usw1-az2`、`apne1-az3`、`apne2-az2`、`euc1-az2`、`euw1-az4``cac1-az3`、、`ilc1-az2`。

### 先決條件


建立私有連線之前，請確認您有下列項目：
+ **作用中的客服人員空間** – 您需要帳戶中現有的客服人員空間。如果您沒有帳戶，請參閱 [開始使用 AWS DevOps 代理程式](getting-started-with-aws-devops-agent.md)。
+ **可私有連線的目標服務** – 您的 MCP 伺服器、可觀測性平台或其他服務必須可從部署資源閘道的 VPC 存取已知的私有 IP 地址或 DNS 名稱。該服務可以在相同的 VPC、對等 VPC 或內部部署中執行，只要它可從資源閘道子網路路由。服務必須在您在建立連線時指定的連接埠上，提供最低 TLS 版本為 1.2 的 HTTPS 流量。
+ **VPC 中的子網路** – 識別要建立 ENIs的 1-20 個子網路。建議您選取多個可用區域中的子網路，以獲得高可用性。這些子網路必須具有與目標服務的網路連線能力。VPC Lattice 可以使用每個可用區域一個子網路。
+ **（選用） 安全群組** – 如果您想要使用特定規則控制流量，請準備最多五個安全群組 IDs以連接到 ENIs。如果您省略安全群組， AWS DevOps Agent 會建立預設安全群組。

私有連線是帳戶層級的資源。建立私有連線後，您可以在需要連接相同主機的多個整合和客服人員空間中重複使用該連線。

### 使用主控台建立私有連線


1. 開啟 AWS DevOps Agent 主控台。

1. 在導覽窗格中，選擇**能力提供者**，然後選擇**私有連線**。

1. 選擇**建立新的連線**。

1. 針對**名稱**，輸入連線的描述性名稱，例如 `my-mcp-tool-connection`。

1. 針對 **VPC**，選取將部署資源閘道 ENIs VPC。

1. 針對**子網路**，選取一或多個子網路 （最多 20 個）。我們建議在至少兩個可用區域中選擇子網路。

1. 針對 **IP 地址類型**，選取目標服務的 IP 地址類型 (`IPv4`、 `IPv6`或 `DualStack`)。

1. （選用） 對於 ** IPv4 地址數量**，如果您為 IP 地址類型選取 IPv4 或 Dualstack，則可以為資源閘道輸入每個 ENI 的 IPv4 地址數量。預設為每個 ENI 16 個 IPv4 地址。

1. （選用） 對於**安全群組**，選取現有的安全群組 （最多 5 個），以限制允許哪些流量到達您的目標服務。如果您未選取任何 ，則會建立預設安全群組。

1. （選用） 對於**連接埠範圍**，指定目標應用程式接聽的 TCP 連接埠 （例如 `443`或 `8080-8090`)。您最多可以指定 11 個連接埠範圍。

1. 針對**主機地址**，輸入目標服務的 IP 地址或 DNS 名稱 （例如 `mcp.internal.example.com`或 `10.0.1.50`)。該服務必須可從選取的 VPC 連線。如果您選擇 DNS 名稱，則必須可從選取的 VPC 解析。

1. （選用） 對於**憑證公有金鑰**，如果您指定的主機地址使用私有憑證授權單位發行的 TLS 憑證，請輸入憑證的 PEM 編碼公有金鑰。這可讓 AWS DevOps 代理程式信任與目標服務的 TLS 連線。

1. 選擇**建立連線**。

連線狀態會變更為**建立進行中**。此程序最多可能需要 10 分鐘。當狀態變更為**作用中**時，表示網路路徑已就緒。

如果狀態變更為**建立失敗**，請確認下列事項：
+ 您指定的子網路具有可用的 IP 地址。
+ 您的帳戶尚未達到 VPC Lattice 服務配額。
+ 沒有任何限制性 IAM 政策阻止服務連結角色建立資源。

**注意**  
** 這些步驟也可以在功能提供者註冊`Create a new private connection`期間選取 來執行。如需詳細資訊，請參閱[使用與功能提供者的私有連線](#use-a-private-connection-with-a-capability-provider)。

### 使用 CLI AWS 建立私有連線


執行下列命令來建立私有連線。將預留位置值取代為您自己的值。

```
aws devops-agent create-private-connection \
    --name my-mcp-tool-connection \
    --mode '{
        "serviceManaged": {
            "hostAddress": "mcp.internal.example.com",
            "vpcId": "vpc-0123456789abcdef0",
            "subnetIds": [
                "subnet-0123456789abcdef0",
                "subnet-0123456789abcdef1"
            ],
            "securityGroupIds": [
                "sg-0123456789abcdef0"
            ],
            "portRanges": ["443"]
        }
    }'
```

回應包含連線名稱和 的狀態`CREATE_IN_PROGRESS`：

```
{
    "name": "my-mcp-tool-connection",
    "status": "CREATE_IN_PROGRESS",
    "resourceGatewayId": "rgw-0123456789abcdef0",
    "hostAddress": "mcp.internal.example.com",
    "vpcId": "vpc-0123456789abcdef0"
}
```

若要檢查連線狀態，請使用 `describe-private-connection`命令：

```
aws devops-agent describe-private-connection \
    --name my-mcp-tool-connection
```

當狀態為 時`ACTIVE`，您的私有連線即可使用。

## 搭配功能提供者使用私有連線


若要使用私有連線，您可以在功能提供者註冊期間連結至該連線。可搭配私有連線使用的支援功能包括：`GitHub`、`MCP Server`、 `GitLab`和 `Grafana`。您可以使用 AWS 管理主控台或 CLI AWS 執行此步驟。

**注意**  
** 註冊功能提供者時， AWS DevOps 代理程式會驗證端點是否可連線並回應。在完成註冊之前，請確定您的目標服務正在執行並接受連線。

### 使用主控台與功能提供者使用私有連線


在 AWS DevOps 代理程式主控台中，可透過選取「使用私有連線連線至端點」選項，在註冊期間將私有連線連結至功能。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/a2a7ffb70ffe.png)


1. 開啟 AWS DevOps 代理程式主控台並導覽至您的代理程式空間。

1. 在**功能提供者**區段中，選擇**註冊**。

1. 選取**註冊**您要搭配私有連線使用的功能類型。

1. 在註冊詳細資訊檢視中，輸入您要使用私有連線 （例如，) 連線到的端點 URL`https://mcp.internal.example.com`。

1. 選取**使用私有連線連線至端點**。

1. 選取對應至您要連線之端點 URL 的現有私有連線，或選取**建立新的私有連線**以建立一個。

1. 完成能力提供者的註冊程序。

### 使用 AWS CLI 搭配功能提供者使用私有連線


您可以透過包含 `private-connection-name`引數，向私有連線註冊 功能。以下是使用`my-mcp-tool-connection`私有連線向 API 金鑰授權註冊 MCP 伺服器的範例。將預留位置值取代為您自己的值。

```
aws devops-agent register-service \
    --service mcpserver \
    --private-connection-name my-mcp-tool-connection \
    --service-details '{
        "mcpserver": {
            "name": "my-mcp-tool",
            "endpoint": "https://mcp.internal.example.com",
            "authorizationConfig": {
                "apiKey": {
                    "apiKeyName": "api-key",
                    "apiKeyValue": "secret-value",
                    "apiKeyHeader": "x-api-key"
                }
            }
        }
    }' \
    --region us-east-1
```

## 驗證私有連線


私有連線達到**作用中**狀態且功能提供者已使用後，請確認 AWS DevOps 代理程式可以到達您的目標服務：

1. 開啟 AWS DevOps 代理程式主控台並導覽至您的代理程式空間。

1. 啟動新的聊天工作階段。

1. 叫用使用私有連線所支援整合的命令。例如，如果您的 MCP 工具提供內部知識庫的存取權，請向客服人員詢問需要該知識庫的問題。

1. 確認代理程式傳回私有服務的結果。

如果連線失敗，請檢查下列項目：
+ **VPC Lattice 限制** - 確認您未達到任何資源閘道或其他 [VPC Lattice 配額](https://docs.aws.amazon.com/vpc-lattice/latest/ug/quotas.html)限制
+ **安全群組規則** – 確認連接至 ENIs的安全群組允許您服務接聽之連接埠上的傳出流量。同時驗證服務的安全群組是否允許目標連接埠上的傳入流量。流量來自 VPC CIDR 範圍內的 VPC Lattice 資料平面 IPs。您可以使用參考安全群組 （允許 ENI 安全群組做為來源） 或允許從 VPC CIDR 傳入。
+ **子網路連線** – 確認您選取的子網路可以將流量路由到您的服務。如果服務在不同子網路中執行，請確認路由表允許它們之間的流量。
+ **服務可用性** – 確認您的服務正在預期連接埠上執行並接受連線。
+ **不支援的可用區域** - 確認您的子網路位於支援的可用區域。執行`aws ec2 describe-subnets --subnet-ids <your-subnet-ids> --query 'Subnets[*].[SubnetId,AvailabilityZoneId]'`並檢查上述不支援的可用區域。

## 刪除私有連線


您可以使用 AWS 管理主控台或 CLI AWS 刪除未使用的私有連線。

### 使用主控台刪除私有連線


1. 開啟 AWS DevOps Agent 主控台。

1. 在導覽窗格中，選擇**能力提供者**，然後選擇**私有連線**。

1. 選取您要刪除之私有連線**的動作**功能表，然後選取**移除**。

私有連線的狀態將顯示為「移除連線」，而 AWS DevOps 代理程式會從 VPC 中移除受管資源閘道和 ENIs。刪除完成後，連線不會再出現在私有連線清單中。

### 使用 CLI AWS 刪除私有連線


```
aws devops-agent delete-private-connection \
    --name my-mcp-tool-connection
```

回應會傳回 `DELETE_IN_PROGRESS`. AWS DevOps 代理程式的狀態，將受管資源閘道和 ENIs 從 VPC 中移除。刪除完成後，連線不會再出現在私有連線清單中。

## 使用現有 VPC Lattice 資源的進階設定


如果您的組織已使用 Amazon VPC Lattice 並管理您自己的資源組態，您可以在自我管理模式中建立私有連線。您可以提供指向目標服務的現有資源組態的 Amazon Resource Name (ARN)，而不是讓 AWS DevOps 代理程式為您建立資源閘道。

當您：
+ 想要完全控制資源閘道和資源組態生命週期。
+ 需要在多個 AWS 帳戶或服務之間共用資源組態。
+ 需要 VPC Lattice 存取日誌，以進行詳細的流量監控。
+ 執行hub-and-spoke網路架構。

若要使用 CLI AWS 建立自我管理的私有連線：

```
aws devops-agent create-private-connection \
    --name my-advanced-connection \
    --mode '{
        "selfManaged": {
            "resourceConfigurationId": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-0123456789abcdef0"
        }
    }'
```

如需設定 VPC Lattice 資源閘道和資源組態的詳細資訊，請參閱 [Amazon VPC Lattice 使用者指南](https://docs.aws.amazon.com/vpc-lattice/latest/ug/)。

## 相關主題

+ [VPC 端點 (AWS PrivateLink)](aws-devops-agent-security-vpc-endpoints-aws-privatelink.md)
+ [連接 MCP 伺服器](configuring-capabilities-for-aws-devops-agent-connecting-mcp-servers.md)
+ [設定適用於 AWS DevOps 代理程式的功能](configuring-capabilities-for-aws-devops-agent.md)
+ [AWS DevOps 代理程式安全性](aws-devops-agent-security.md)
+ [DevOps Agent IAM 許可](aws-devops-agent-security-devops-agent-iam-permissions.md)