選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 AWS CDK 在多個 AWS 區域、帳戶和 OUs 中啟用 Amazon DevOps Guru,以改善營運效能 - AWS 方案指引

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

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

使用 AWS CDK 在多個 AWS 區域、帳戶和 OUs 中啟用 Amazon DevOps Guru,以改善營運效能

由 Dr. Rahul Sharad Gaikwad (AWS) 建立

Summary

此模式示範使用 TypeScript 中的 AWS 雲端開發套件 (AWS CDK),跨多個 Amazon Web Services (AWS) 區域、帳戶和組織單位 (OUs) 啟用 Amazon DevOps Guru 服務的步驟。您可以使用 AWS CDK 堆疊,從管理員 (主要) AWS 帳戶部署 AWS CloudFormation StackSets,以在多個帳戶間啟用 Amazon DevOps Guru,而不是登入每個帳戶,並為每個帳戶個別啟用 DevOps Guru。

Amazon DevOps Guru 提供人工智慧操作 (AIOps) 功能,可協助您改善應用程式的可用性,並更快速地解決操作問題。DevOps Guru 透過套用機器學習 (ML) 支援的建議來減少手動工作,而不需要任何 ML 專業知識。DevOps Guru 會分析您的資源和操作資料。如果偵測到任何異常,它會提供指標、事件和建議,以協助您解決問題。

此模式說明啟用 Amazon DevOps Guru 的三個部署選項:

  • 針對跨多個帳戶和區域的所有堆疊資源

  • 適用於跨 OUs 的所有堆疊資源

  • 對於跨多個帳戶和區域的特定堆疊資源

先決條件和限制

先決條件

產品版本

  • AWS CDK Toolkit 1.107.0 版或更新版本

  • npm 7.9.0 版或更新版本

  • Node.js 15.3.0 版或更新版本

架構

技術

此模式的架構包含下列服務:

AWS CDK 堆疊

模式使用以下 AWS CDK 堆疊: 

  • CdkStackSetAdminRole – 建立 AWS Identity and Access Management (IAM) 管理員角色,以在管理員和目標帳戶之間建立信任關係。

  • CdkStackSetExecRole – 建立 IAM 角色以信任管理員帳戶。

  • CdkDevopsGuruStackMultiAccReg – 跨多個 AWS 區域啟用 DevOps Guru,並為所有堆疊設定帳戶,並設定 Amazon Simple Notification Service (Amazon SNS) 通知。

  • CdkDevopsGuruStackMultiAccRegSpecStacks – 啟用跨多個 AWS 區域和帳戶的特定堆疊的 DevOps Guru,並設定 Amazon SNS 通知。

  • CdkDevopsguruStackOrgUnit – 跨 OUs 啟用 DevOps Guru,並設定 Amazon SNS 通知。 

  • CdkInfrastructureStack – 在管理員帳戶中部署範例無伺服器應用程式元件,例如 API Gateway、Lambda 和 DynamoDB,以示範錯誤注入和洞見產生。

應用程式架構範例

下圖說明已部署在多個帳戶和區域的無伺服器應用程式範例架構。模式使用管理員帳戶來部署所有 AWS CDK 堆疊。它也會使用管理員帳戶做為設定 DevOps Guru 的目標帳戶之一。

  1. 啟用 DevOps Guru 時,它會先將每個資源的行為建立基準,然後從 CloudWatch 已結束指標擷取操作資料。

  2. 如果偵測到異常,它會將其與 CloudTrail 中的事件建立關聯,並產生洞見。

  3. 洞見提供相關的事件序列,以及指定的建議,讓運算子能夠識別錯誤資源。

  4. Amazon SNS 會傳送通知訊息給運算子。

已部署在多個帳戶和區域的無伺服器應用程式範例。

自動化和擴展

此模式隨附的 GitHub 儲存庫使用 AWS CDK 做為基礎設施做為程式碼 (IaC) 工具,來建立此架構的組態。AWS CDK 可協助您協調資源,並在多個 AWS 帳戶、區域和 OUs 中啟用 DevOps Guru。

工具

AWS 服務

  • AWS CDK – AWS Cloud Development Kit (AWS CDK) 可協助您將雲端基礎設施定義為支援五種程式設計語言之一的程式碼:TypeScript、JavaScript、Python、Java 和 C#。

  • AWS CLI – AWS 命令列界面 (AWS CLI) 是一種統一工具,可提供一致的命令列界面,以便與 AWS 服務和資源互動。

Code

此模式的原始碼可在 GitHub 上的 Amazon DevOps Guru CDK 範例儲存庫中取得。AWS CDK 程式碼是以 TypeScript 撰寫。若要複製和使用儲存庫,請遵循下一節中的指示。

重要

此模式中的一些案例包括針對 Unix、Linux 和 macOS 格式化的 AWS CDK 和 AWS CLI 命令範例。對於 Windows,將每行結尾的反斜線 (\) 接續字元取代為斜線 (^)。

史詩

任務描述所需的技能

設定名為 的 AWS 設定檔。

如下所示設定您的 AWS 命名設定檔,以在多帳戶環境中部署堆疊。

對於管理員帳戶:

$aws configure --profile administrator AWS Access Key ID [****]: <your-administrator-access-key-ID> AWS Secret Access Key [****]: <your-administrator-secret-access-key> Default region name [None]: <your-administrator-region> Default output format [None]: json

對於目標帳戶:

$aws configure --profile target AWS Access Key ID [****: <your-target-access-key-ID> AWS Secret Access Key [****]: <your-target-secret-access-key> Default region name [None]: <your-target-region> Default output format [None]: json

如需詳細資訊,請參閱 AWS CLI 文件中的使用具名設定檔

DevOps 工程師

驗證 AWS 設定檔組態。

(選用) 您可以依照設定和檢視 AWS CLI 文件中的組態設定中的指示,來驗證 credentialsconfig 檔案中的 AWS 設定檔組態。 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-methods

DevOps 工程師

驗證 AWS CDK 版本。

執行下列命令來驗證 AWS CDK Toolkit 的版本:

$cdk --version

此模式需要 1.107.0 版或更新版本。如果您有舊版的 AWS CDK,請遵循 AWS CDK 文件中的指示進行更新。

DevOps 工程師

複製專案程式碼。

使用 命令複製此模式的 GitHub 儲存庫:

$git clone https://github.com/aws-samples/amazon-devopsguru-cdk-samples.git
DevOps 工程師

安裝套件相依性並編譯 TypeScript 檔案。

安裝套件相依性,並執行下列命令編譯 TypeScript 檔案:

$cd amazon-devopsguru-cdk-samples $npm install $npm fund

這些命令會從範例儲存庫安裝所有套件。

重要

如果您收到任何有關遺失套件的錯誤,請使用下列其中一個命令:

$npm ci

—或—

$npm install -g @aws-cdk/<package-name>

您可以在 /amazon-devopsguru-cdk-samples/package.json 檔案的 Dependencies區段中找到套件名稱和版本的清單。如需詳細資訊,請參閱 npm 文件中的 npm ci 和 npm 安裝

DevOps 工程師

準備 AWS 資源以進行部署

任務描述所需的技能

設定名為 的 AWS 設定檔。

如下所示設定您的 AWS 命名設定檔,以在多帳戶環境中部署堆疊。

對於管理員帳戶:

$aws configure --profile administrator AWS Access Key ID [****]: <your-administrator-access-key-ID> AWS Secret Access Key [****]: <your-administrator-secret-access-key> Default region name [None]: <your-administrator-region> Default output format [None]: json

對於目標帳戶:

$aws configure --profile target AWS Access Key ID [****: <your-target-access-key-ID> AWS Secret Access Key [****]: <your-target-secret-access-key> Default region name [None]: <your-target-region> Default output format [None]: json

如需詳細資訊,請參閱 AWS CLI 文件中的使用具名設定檔

DevOps 工程師

驗證 AWS 設定檔組態。

(選用) 您可以依照設定和檢視 AWS CLI 文件中的組態設定中的指示,來驗證 credentialsconfig 檔案中的 AWS 設定檔組態。 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-methods

DevOps 工程師

驗證 AWS CDK 版本。

執行下列命令來驗證 AWS CDK Toolkit 的版本:

$cdk --version

此模式需要 1.107.0 版或更新版本。如果您有舊版的 AWS CDK,請遵循 AWS CDK 文件中的指示進行更新。

DevOps 工程師

複製專案程式碼。

使用 命令複製此模式的 GitHub 儲存庫:

$git clone https://github.com/aws-samples/amazon-devopsguru-cdk-samples.git
DevOps 工程師

安裝套件相依性並編譯 TypeScript 檔案。

安裝套件相依性,並執行下列命令編譯 TypeScript 檔案:

$cd amazon-devopsguru-cdk-samples $npm install $npm fund

這些命令會從範例儲存庫安裝所有套件。

重要

如果您收到任何有關遺失套件的錯誤,請使用下列其中一個命令:

$npm ci

—或—

$npm install -g @aws-cdk/<package-name>

您可以在 /amazon-devopsguru-cdk-samples/package.json 檔案的 Dependencies區段中找到套件名稱和版本的清單。如需詳細資訊,請參閱 npm 文件中的 npm ci 和 npm 安裝

DevOps 工程師
任務描述所需的技能

設定 Amazon SNS 通知的電子郵件地址。

請依照下列步驟提供 Amazon SNS 通知的電子郵件地址:

  1. 編輯檔案 /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-stack.ts/amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-org-uni-stack.ts

  2. DevOpsGuruTopicSubscription區段中,使用您的電子郵件地址更新 Endpoint 參數。

  3. 儲存並關閉檔案。

DevOps 工程師

建置專案程式碼。

執行 命令來建置專案程式碼並合成堆疊:

npm run build && cdk synth

您應該會看到類似下列的輸出: 

$npm run build && cdk synth > cdk-devopsguru@0.1.0 build > tsc Successfully synthesized to ~/amazon-devopsguru-cdk-samples/cdk.out Supply a stack id (CdkDevopsGuruStackMultiAccReg,CdkDevopsGuruStackMultiAccRegSpecStacks, CdkDevopsguruStackOrgUnit, CdkInfrastructureStack, CdkStackSetAdminRole, CdkStackSetExecRole) to display its template.

如需詳細資訊和步驟,請參閱 AWS CDK 文件中的您的第一個 AWS CDK 應用程式

DevOps 工程師

列出 AWS CDK 堆疊。

執行下列命令來列出所有 AWS CDK 堆疊:

$cdk list

命令會顯示下列清單:

CdkDevopsGuruStackMultiAccReg CdkDevopsGuruStackMultiAccRegSpecStacks CdkDevopsguruStackOrgUnit CdkInfrastructureStack CdkStackSetAdminRole CdkStackSetExecRole
DevOps 工程師

建置 (合成) AWS CDK 堆疊

任務描述所需的技能

設定 Amazon SNS 通知的電子郵件地址。

請依照下列步驟提供 Amazon SNS 通知的電子郵件地址:

  1. 編輯檔案 /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-stack.ts/amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-org-uni-stack.ts

  2. DevOpsGuruTopicSubscription區段中,使用您的電子郵件地址更新 Endpoint 參數。

  3. 儲存並關閉檔案。

DevOps 工程師

建置專案程式碼。

執行 命令來建置專案程式碼並合成堆疊:

npm run build && cdk synth

您應該會看到類似下列的輸出: 

$npm run build && cdk synth > cdk-devopsguru@0.1.0 build > tsc Successfully synthesized to ~/amazon-devopsguru-cdk-samples/cdk.out Supply a stack id (CdkDevopsGuruStackMultiAccReg,CdkDevopsGuruStackMultiAccRegSpecStacks, CdkDevopsguruStackOrgUnit, CdkInfrastructureStack, CdkStackSetAdminRole, CdkStackSetExecRole) to display its template.

如需詳細資訊和步驟,請參閱 AWS CDK 文件中的您的第一個 AWS CDK 應用程式

DevOps 工程師

列出 AWS CDK 堆疊。

執行下列命令來列出所有 AWS CDK 堆疊:

$cdk list

命令會顯示下列清單:

CdkDevopsGuruStackMultiAccReg CdkDevopsGuruStackMultiAccRegSpecStacks CdkDevopsguruStackOrgUnit CdkInfrastructureStack CdkStackSetAdminRole CdkStackSetExecRole
DevOps 工程師
任務描述所需的技能

部署 AWS CDK 堆疊以建立 IAM 角色。

此模式使用 AWS CloudFormation StackSets 跨多個帳戶執行堆疊操作。如果您要建立第一個堆疊集,則必須建立下列 IAM 角色,才能在 AWS 帳戶中設定必要的許可:

  • AWSCloudFormationStackSetAdministrationRole

  • AWSCloudFormationStackSetExecutionRole

注意

角色必須具有這些確切名稱。

  1. 執行下列 CLI 命令,在管理員 (主要) 帳戶中建立 IAM AWSCloudFormationStackSetAdministrationRole角色:

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 在您要執行堆疊執行個體的所有目標帳戶中建立 IAM AWSCloudFormationStackSetExecutionRole角色。若要建立此角色,請執行這些 CLI 命令:

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator   $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

如需詳細資訊,請參閱 AWS CloudFormation 文件中的授予自我管理許可

DevOps 工程師

部署 AWS CDK 堆疊,以便在多個帳戶中啟用 DevOps Guru。

AWS CDK CdkDevopsGuruStackMultiAccReg堆疊會建立堆疊集,以跨多個帳戶和區域部署堆疊執行個體。若要部署堆疊,請使用指定的參數執行下列 CLI 命令:

$cdk deploy CdkDevopsGuruStackMultiAccReg \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"

Amazon DevOps Guru 目前可在 DevOps Guru 常見問答集中列出的 AWS 區域中使用。

DevOps 工程師

選項 1 - 為跨多個帳戶的所有堆疊資源啟用 DevOps Guru

任務描述所需的技能

部署 AWS CDK 堆疊以建立 IAM 角色。

此模式使用 AWS CloudFormation StackSets 跨多個帳戶執行堆疊操作。如果您要建立第一個堆疊集,則必須建立下列 IAM 角色,才能在 AWS 帳戶中設定必要的許可:

  • AWSCloudFormationStackSetAdministrationRole

  • AWSCloudFormationStackSetExecutionRole

注意

角色必須具有這些確切名稱。

  1. 執行下列 CLI 命令,在管理員 (主要) 帳戶中建立 IAM AWSCloudFormationStackSetAdministrationRole角色:

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 在您要執行堆疊執行個體的所有目標帳戶中建立 IAM AWSCloudFormationStackSetExecutionRole角色。若要建立此角色,請執行這些 CLI 命令:

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator   $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

如需詳細資訊,請參閱 AWS CloudFormation 文件中的授予自我管理許可

DevOps 工程師

部署 AWS CDK 堆疊,以便在多個帳戶中啟用 DevOps Guru。

AWS CDK CdkDevopsGuruStackMultiAccReg堆疊會建立堆疊集,以跨多個帳戶和區域部署堆疊執行個體。若要部署堆疊,請使用指定的參數執行下列 CLI 命令:

$cdk deploy CdkDevopsGuruStackMultiAccReg \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"

Amazon DevOps Guru 目前可在 DevOps Guru 常見問答集中列出的 AWS 區域中使用。

DevOps 工程師
任務描述所需的技能

擷取 OU IDs。

AWS Organizations 主控台上,識別您要啟用 DevOps Guru 之組織單位IDs。

DevOps 工程師

啟用 OUs 的服務管理許可。

如果您使用 AWS Organizations 進行帳戶管理,則必須授予服務管理許可以啟用 DevOps Guru。使用組織型受信任存取和服務連結角色 (SLRs),而不是手動建立 IAM 角色

DevOps 工程師

部署 AWS CDK 堆疊以跨 OUs 啟用 DevOps Guru。

AWS CDK CdkDevopsguruStackOrgUnit堆疊可跨 OUs 啟用 DevOps Guru 服務。若要部署堆疊,請使用指定的參數執行下列命令:

$cdk deploy CdkDevopsguruStackOrgUnit \ --profile administrator \ --parameters RegionIds="<region-1>,<region-2>" \ --parameters OrganizationalUnitIds="<OU-1>,<OU-2>"
DevOps 工程師

選項 2 - 為跨 OUs 的所有堆疊資源啟用 DevOps Guru

任務描述所需的技能

擷取 OU IDs。

AWS Organizations 主控台上,識別您要啟用 DevOps Guru 之組織單位IDs。

DevOps 工程師

啟用 OUs 的服務管理許可。

如果您使用 AWS Organizations 進行帳戶管理,則必須授予服務管理許可以啟用 DevOps Guru。使用組織型受信任存取和服務連結角色 (SLRs),而不是手動建立 IAM 角色

DevOps 工程師

部署 AWS CDK 堆疊以跨 OUs 啟用 DevOps Guru。

AWS CDK CdkDevopsguruStackOrgUnit堆疊可跨 OUs 啟用 DevOps Guru 服務。若要部署堆疊,請使用指定的參數執行下列命令:

$cdk deploy CdkDevopsguruStackOrgUnit \ --profile administrator \ --parameters RegionIds="<region-1>,<region-2>" \ --parameters OrganizationalUnitIds="<OU-1>,<OU-2>"
DevOps 工程師
任務描述所需的技能

部署 AWS CDK 堆疊以建立 IAM 角色。

如果您尚未建立第一個選項中顯示的必要 IAM 角色,請先執行此操作:

  1. 執行下列 CLI 命令,在管理員 (主要) 帳戶中建立 IAM AWSCloudFormationStackSetAdministrationRole角色:

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 在您要執行堆疊執行個體的所有目標帳戶中建立 IAM AWSCloudFormationStackSetExecutionRole角色。若要建立此角色,請執行 CLI 命令:

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

如需詳細資訊,請參閱 AWS CloudFormation 文件中的授予自我管理許可

DevOps 工程師

刪除現有的堆疊。

如果您已使用第一個選項來為所有堆疊資源啟用 DevOps Guru,您可以使用下列命令刪除舊堆疊:

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator

或者,您可以在重新部署堆疊時變更 RegionIds 參數,以避免堆疊已存在錯誤。

DevOps 工程師

使用堆疊清單更新 AWS CDK 堆疊。

  1. 編輯 /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-spec-stack.ts 檔案。

  2. ResourcesCloudFormation、 下StackNames,列出您要啟用 DevOps Guru 的堆疊。基於示範目的, 參數會指定CdkInfrastructureStack堆疊,但您可以根據您的需求編輯此項目。

  3. 儲存並關閉檔案。

  4. 若要合成和更新堆疊範本,請執行:

     $cdk synth
資料工程師

部署 AWS CDK 堆疊,讓 DevOps Guru 能夠跨多個帳戶使用特定的堆疊資源。

AWS CDK CdkDevopsGuruStackMultiAccRegSpecStacks堆疊可讓 DevOps Guru 跨多個帳戶進行特定堆疊資源。若要部署堆疊,請執行下列命令:

$cdk deploy CdkDevopsGuruStackMultiAccRegSpecStacks \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"
注意

如果您先前已針對選項 1 部署此堆疊,請變更 RegionIds 參數 (請務必從可用的區域選擇),以避免堆疊已存在錯誤。

DevOps 工程師

選項 3 - 為多個帳戶的特定堆疊資源啟用 DevOps Guru

任務描述所需的技能

部署 AWS CDK 堆疊以建立 IAM 角色。

如果您尚未建立第一個選項中顯示的必要 IAM 角色,請先執行此操作:

  1. 執行下列 CLI 命令,在管理員 (主要) 帳戶中建立 IAM AWSCloudFormationStackSetAdministrationRole角色:

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 在您要執行堆疊執行個體的所有目標帳戶中建立 IAM AWSCloudFormationStackSetExecutionRole角色。若要建立此角色,請執行 CLI 命令:

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

如需詳細資訊,請參閱 AWS CloudFormation 文件中的授予自我管理許可

DevOps 工程師

刪除現有的堆疊。

如果您已使用第一個選項來為所有堆疊資源啟用 DevOps Guru,您可以使用下列命令刪除舊堆疊:

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator

或者,您可以在重新部署堆疊時變更 RegionIds 參數,以避免堆疊已存在錯誤。

DevOps 工程師

使用堆疊清單更新 AWS CDK 堆疊。

  1. 編輯 /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-spec-stack.ts 檔案。

  2. ResourcesCloudFormation、 下StackNames,列出您要啟用 DevOps Guru 的堆疊。基於示範目的, 參數會指定CdkInfrastructureStack堆疊,但您可以根據您的需求編輯此項目。

  3. 儲存並關閉檔案。

  4. 若要合成和更新堆疊範本,請執行:

     $cdk synth
資料工程師

部署 AWS CDK 堆疊,讓 DevOps Guru 能夠跨多個帳戶使用特定的堆疊資源。

AWS CDK CdkDevopsGuruStackMultiAccRegSpecStacks堆疊可讓 DevOps Guru 跨多個帳戶進行特定堆疊資源。若要部署堆疊,請執行下列命令:

$cdk deploy CdkDevopsGuruStackMultiAccRegSpecStacks \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"
注意

如果您先前已針對選項 1 部署此堆疊,請變更 RegionIds 參數 (請務必從可用的區域選擇),以避免堆疊已存在錯誤。

DevOps 工程師
任務描述所需的技能

部署範例無伺服器基礎設施堆疊。

AWS CDK CdkInfrastructureStack堆疊部署無伺服器元件,例如 API Gateway、Lambda 和 DynamoDB 資料表,以示範 DevOps Guru 洞見。若要部署堆疊,請執行下列命令: 

$cdk deploy CdkInfrastructureStack --profile administrator
DevOps 工程師

在 DynamoDB 中插入範例記錄。

執行下列命令,將範例記錄填入 DynamoDB 資料表。提供populate-shops-dynamodb-table.json指令碼的正確路徑。

$aws dynamodb batch-write-item \ --request-items file://scripts/populate-shops-dynamodb-table.json \ --profile administrator

該命令會顯示下列輸出:

{ "UnprocessedItems": {} }
DevOps 工程師

驗證 DynamoDB 中的插入記錄。

若要驗證 DynamoDB 資料表是否包含 populate-shops-dynamodb-table.json 檔案的範例記錄,請存取 ListRestApiEndpointMonitorOperator API 的 URL,該 API 會發佈為 AWS CDK 堆疊的輸出。您也可以在CdkInfrastructureStack堆疊 AWS CloudFormation 主控台的輸出索引標籤中找到此 URL。AWS CDK 輸出看起來會類似以下內容:

CdkInfrastructureStack.CreateRestApiMonitorOperatorEndpointD1D00045 = https://oure17c5vob.execute-api.<your-region>.amazonaws.com/prod/ CdkInfrastructureStack.ListRestApiMonitorOperatorEndpointABBDB8D8 = https://cdff8icfrn4.execute-api.<your-region>.amazonaws.com/prod/
DevOps 工程師

等待資源完成底線。

此無伺服器堆疊有幾個資源。建議您等待 2 小時,再執行後續步驟。如果您在生產環境中部署此堆疊,可能需要長達 24 小時才能完成基準,具體取決於您在 DevOps Guru 中選取要監控的資源數量。

DevOps 工程師

部署 AWS CDK 基礎設施堆疊

任務描述所需的技能

部署範例無伺服器基礎設施堆疊。

AWS CDK CdkInfrastructureStack堆疊部署無伺服器元件,例如 API Gateway、Lambda 和 DynamoDB 資料表,以示範 DevOps Guru 洞見。若要部署堆疊,請執行下列命令: 

$cdk deploy CdkInfrastructureStack --profile administrator
DevOps 工程師

在 DynamoDB 中插入範例記錄。

執行下列命令,將範例記錄填入 DynamoDB 資料表。提供populate-shops-dynamodb-table.json指令碼的正確路徑。

$aws dynamodb batch-write-item \ --request-items file://scripts/populate-shops-dynamodb-table.json \ --profile administrator

該命令會顯示下列輸出:

{ "UnprocessedItems": {} }
DevOps 工程師

驗證 DynamoDB 中的插入記錄。

若要驗證 DynamoDB 資料表是否包含 populate-shops-dynamodb-table.json 檔案的範例記錄,請存取 ListRestApiEndpointMonitorOperator API 的 URL,該 API 會發佈為 AWS CDK 堆疊的輸出。您也可以在CdkInfrastructureStack堆疊 AWS CloudFormation 主控台的輸出索引標籤中找到此 URL。AWS CDK 輸出看起來會類似以下內容:

CdkInfrastructureStack.CreateRestApiMonitorOperatorEndpointD1D00045 = https://oure17c5vob.execute-api.<your-region>.amazonaws.com/prod/ CdkInfrastructureStack.ListRestApiMonitorOperatorEndpointABBDB8D8 = https://cdff8icfrn4.execute-api.<your-region>.amazonaws.com/prod/
DevOps 工程師

等待資源完成底線。

此無伺服器堆疊有幾個資源。建議您等待 2 小時,再執行後續步驟。如果您在生產環境中部署此堆疊,可能需要長達 24 小時才能完成基準,具體取決於您在 DevOps Guru 中選取要監控的資源數量。

DevOps 工程師
任務描述所需的技能

更新 AWS CDK 基礎設施堆疊。

若要試用 DevOps Guru 洞見,您可以進行一些組態變更,以重現典型的操作問題。

  1. 編輯 /amazon-devopsguru-cdk-samples/lib/infrastructure-stack.ts 檔案。

  2. DDB Table區段中,將 DynamoDB 資料表的讀取容量從 5 變更為 1。

  3. 儲存並關閉檔案。

  4. 執行下列命令來合成和部署更新的 AWS CDK 基礎設施堆疊:

    $cdk synth $cdk deploy CdkInfrastructureStack --profile administrator
DevOps 工程師

在 API 上注入 HTTP 請求。

ListRestApiMonitorOperatorEndpointxxxxAPI 上以 HTTP 請求的形式注入輸入流量:

  1. 編輯 Python 指令碼 /amazon-devopsguru-cdk-samples/scripts/sendAPIRequest.py

  2. 使用 的 API 連結更新url變數ListRestApiMonitorOperatorEndpointxxxx。您可以在 AWS CDK 部署命令的輸出或 AWS Cloudformation 主控台的堆疊的輸出索引標籤中找到此 URL。

  3. 儲存並關閉檔案。

  4. 使用 命令執行 Python 指令碼:

    $python sendAPIRequest.py
  5. 請確定您取得 200 狀態碼。

  6. 您可能需要透過多個 (最好是四個) 終端機執行指令碼,以高速率注入流量。

  7. 指令碼在迴圈中執行約 10 分鐘後,您可以查看 DevOps Guru 主控台的操作洞見。

DevOps 工程師

檢閱 DevOps Guru 洞見。

在標準條件下,DevOps Guru 儀表板會在持續洞察計數器中顯示零。如果偵測到異常,它會以洞見的形式發出提醒。在導覽窗格中,選擇 Insights 以查看異常的詳細資訊,包括概觀、彙總指標、相關事件和建議。如需檢閱洞見的詳細資訊,請參閱使用 Amazon DevOps Guru 部落格文章透過 AIOps 取得營運洞見

DevOps 工程師

產生 DevOps Guru 洞見

任務描述所需的技能

更新 AWS CDK 基礎設施堆疊。

若要試用 DevOps Guru 洞見,您可以進行一些組態變更,以重現典型的操作問題。

  1. 編輯 /amazon-devopsguru-cdk-samples/lib/infrastructure-stack.ts 檔案。

  2. DDB Table區段中,將 DynamoDB 資料表的讀取容量從 5 變更為 1。

  3. 儲存並關閉檔案。

  4. 執行下列命令來合成和部署更新的 AWS CDK 基礎設施堆疊:

    $cdk synth $cdk deploy CdkInfrastructureStack --profile administrator
DevOps 工程師

在 API 上注入 HTTP 請求。

ListRestApiMonitorOperatorEndpointxxxxAPI 上以 HTTP 請求的形式注入輸入流量:

  1. 編輯 Python 指令碼 /amazon-devopsguru-cdk-samples/scripts/sendAPIRequest.py

  2. 使用 的 API 連結更新url變數ListRestApiMonitorOperatorEndpointxxxx。您可以在 AWS CDK 部署命令的輸出或 AWS Cloudformation 主控台的堆疊的輸出索引標籤中找到此 URL。

  3. 儲存並關閉檔案。

  4. 使用 命令執行 Python 指令碼:

    $python sendAPIRequest.py
  5. 請確定您取得 200 狀態碼。

  6. 您可能需要透過多個 (最好是四個) 終端機執行指令碼,以高速率注入流量。

  7. 指令碼在迴圈中執行約 10 分鐘後,您可以查看 DevOps Guru 主控台的操作洞見。

DevOps 工程師

檢閱 DevOps Guru 洞見。

在標準條件下,DevOps Guru 儀表板會在持續洞察計數器中顯示零。如果偵測到異常,它會以洞見的形式發出提醒。在導覽窗格中,選擇 Insights 以查看異常的詳細資訊,包括概觀、彙總指標、相關事件和建議。如需檢閱洞見的詳細資訊,請參閱使用 Amazon DevOps Guru 部落格文章透過 AIOps 取得營運洞見

DevOps 工程師
任務描述所需的技能

清除和刪除資源。

完成此模式之後,您應該移除您建立的資源,以避免產生任何進一步的費用。執行這些命令:

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator $cdk destroy CdkDevopsguruStackOrgUnit --profile administrator $cdk destroy CdkDevopsGuruStackMultiAccRegSpecStacks --profile administrator $cdk destroy CdkInfrastructureStack --profile administrator $cdk destroy CdkStackSetAdminRole --profile administrator $cdk destroy CdkStackSetExecRole --profile administrator $cdk destroy CdkStackSetExecRole --profile target
DevOps 工程師

清除

任務描述所需的技能

清除和刪除資源。

完成此模式之後,您應該移除您建立的資源,以避免產生任何進一步的費用。執行這些命令:

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator $cdk destroy CdkDevopsguruStackOrgUnit --profile administrator $cdk destroy CdkDevopsGuruStackMultiAccRegSpecStacks --profile administrator $cdk destroy CdkInfrastructureStack --profile administrator $cdk destroy CdkStackSetAdminRole --profile administrator $cdk destroy CdkStackSetExecRole --profile administrator $cdk destroy CdkStackSetExecRole --profile target
DevOps 工程師

相關資源

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。