建立 Canary - Amazon CloudWatch

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

建立 Canary

重要

確保您使用 Synthetics 金絲雀僅監視端點以及APIs您擁有所有權或權限的端點。取決於 Canary 頻率設定,這些端點可能會遭遇增加的流量。

當您使用 CloudWatch 主控台建立初期測試時,您可以使用提供的藍圖 CloudWatch 來建立初期測試,也可以撰寫自己的指令碼。如需詳細資訊,請參閱 使用 Canary 藍圖

AWS CloudFormation 如果您使用自己的腳本進行金絲雀,則還可以使用創建金絲雀。如需詳細資訊,請參閱使AWS CloudFormation 用指南中的AWS:: Synthetics:: Canary

如果您正在編寫自己的腳本,則可以使用 CloudWatch Synthetics 庫中內置的幾個函數。如需詳細資訊,請參閱 Synthetics 執行時間版本

注意

建立金絲雀時,其中一個建立的圖層是附加在前面加上的「Synthetics」圖層。Synthetics此圖層由 Synthetics 服務帳戶擁有,並包含運行時代碼。

建立 Canary
  1. 在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

  2. 在導航窗格中,選擇應用程序信號Synthetics 金絲雀

  3. 選擇 Create Canary (建立 Canary)

  4. 選擇下列其中一項:

    • 若要讓 Canary 以藍圖指令碼為基礎,請選擇 Use a blueprint (使用藍圖),然後選擇您要建立的 Canary 類型。。如需每種藍圖類型之用途的詳細資訊,請參閱使用 Canary 藍圖

    • 若要上傳您自己的 Node.js 指令碼以建立自訂 Canary,請選擇 Upload a script (上傳指令碼)

      然後,您可以將指令碼拖曳到 Script (指令碼) 中,或選擇 Browse files (瀏覽檔案) 以瀏覽至檔案系統中的指令碼。

    • 若要從 S3 儲存貯體匯入指令碼,請選擇 Import from S3 (從 S3 匯入)。在 Sourse location (來源位置) 下方輸入 Canary 的完整路徑,或選擇 Browse S3 (瀏覽 S3)

      您必須擁有您使用之 S3 儲存貯體的 s3:GetObjects3:GetObjectVersion 許可。值區必須位於您要建立金絲雀的相同 AWS 區域。

  5. Name (名稱) 下方輸入 Canary 的名稱。此名稱會用於許多頁面,因此我們建議您使用描述性的名稱,以與其他 Canary 區別。

  6. 在「應用程式或端點」下 URLURL,輸入您要測試初期測試的項目。這URL必須包含通訊協定 (例如 https://)。

    如果您希望初期測試在端點上測試端點VPC,則還必須在此程序中輸入VPC稍後的相關資訊。

  7. 如果您為 Canary 使用您自己的指令碼,則請在 Lamdba handler (Lambda 處理常式) 下方輸入您希望 Canary 開始的進入點。如果您使用的執行時間早於 syn-nodejs-puppeteer-3.4syn-python-selenium-1.1,則您輸入的字串必須以 .handler 結尾。如果您使用 syn-nodejs-puppeteer-3.4 或者 syn-python-selenium-1.1 或更高版本的執行時間,則此限制不適用。

  8. 如果您在指令碼中使用環境變數,選擇 Environment variables (環境變數),然後為指令碼中定義的每個環境變數指定一個數值。如需詳細資訊,請參閱 環境變數

  9. Schedule (排程) 下,選擇只執行此 Canary 一次、使用 Rate 表達式連續執行,或使用 Cron 表達式對其進行排程。

    • 當您使用 CloudWatch 控制台創建連續運行的初期測試時,您可以在每分鐘一次到每小時一次之間的任何位置選擇費率。

  10. (選用) 如要設定 canary 的逾時值,請選擇 Additional configuration (其他組態),然後指定逾時值。使其不短於 15 秒,以允許 Lambda 冷啟動和啟動 canary 儀器所需的時間。

  11. Data retention (資料保留) 下方,指定要將 Canary 執行失敗和成功的資訊保留多長時間。範圍是 1-455 天。

    此設定只會影響 CloudWatch Synthetics 在主控台中儲存和顯示的資料。它不會影響存放在 Amazon S3 儲存貯體中的資料,也不會影響金絲雀發佈的日誌或指標。

  12. Data Storage (資料儲存體) 下方,選取 S3 儲存貯體以用來儲存來自 Canary 執行的資料。儲存貯體名稱不能包含句點 (.)。如果您將此保留為空白,則會使用或建立預設的 S3 儲存貯體。

    如果您使用的是syn-nodejs-puppeteer-3.0或更新的執行階段,則當您在URL文字方塊中輸入值區時,可以在目前「區域」或其他「區域」中指定值區。如果您使用的是較早的執行時間版本,則儲存貯體必須位於當前的區域。

  13. (選擇性) 根據預設,金絲雀會將其成品存放在 Amazon S3 上,並使用 AWS受管金鑰靜態加密成品 AWS KMS 。您可以使用不同的加密選項,方法是選擇 Data Storage (資料儲存) 區段中的 Additional configuration (其他組態)。然後您可以選擇要用於加密的金鑰類型。如需詳細資訊,請參閱 加密 Canary 成品

  14. 在 [存取權限] 下,選擇要建立要執行初期測試的IAM角色,還是使用現有的角色。

    如果您有 CloudWatch Synthetics 創建角色,它會自動包含所有必要的權限。如果您想要自行建立角色,請參閱 Canary 的必要角色和許可 以瞭解有關必要許可的資訊。

    如果您在建立初期測試時使用 CloudWatch 主控台為初期測試建立角色,則無法將該角色重複用於其他加那利群島,因為這些角色僅適用於一個初期測試。如果您已手動建立可供多個 Canary 使用的角色,則可使用現有的角色。

    若要使用現有角色,您必須具有將該角色傳遞給 Synthetics 和 Lambda 的 iam:PassRole 許可。您也必須擁有 iam:GetRole 許可。

  15. (選擇性) 在 [警報] 下,選擇是否要為此初期測試建立預設 CloudWatch 鬧鐘。如果您選擇建立警示,則會以下列名稱慣例建立警示:Synthetics-Alarm-canaryName-index

    index 是代表為此 Canary 建立的每個不同警示的數字。第一個警示的索引為 1,第二個警示的索引為 2,以此類推。

  16. (選擇性) 若要讓此初期測試成為位於上的端點VPC,請選擇 VPC[設定],然後執行下列動作:

    1. 選取VPC主控端點的。

    2. 在您的上選取一或多個子網VPC路。您必須選取私有子網路,因為當 IP 地址無法在執行期間指派給 Lambda 執行個體時,則 Lambda 執行個體無法設定為在公有子網路中執行。如需詳細資訊,請參閱設定 Lambda 函數以存取 VPC.

    3. 在您的上選取一或多個安全性群組VPC。

    如果端點位於VPC,您必須啟用初期測試將資訊傳送到 CloudWatch 和 Amazon S3。如需詳細資訊,請參閱 在一個上運行金絲雀 VPC

  17. (選用) 在 Tags (標籤) 下方,新增一或多個鍵/值對,作為此 Canary 的標籤。標籤可以幫助您識別和組織 AWS 資源並追蹤 AWS 成本。如需詳細資訊,請參閱 標記您的 Amazon CloudWatch 資源

  18. (選用) 在 Active tracing (主動追蹤) 中,選擇是否為此 Canary 啟用 X-Ray 主動追蹤。只有 Canary 使用 syn-nodejs-2.0 或更新版本的執行時間版本時,才能使用此選項。如需詳細資訊,請參閱 Canary 和 X-Ray 追蹤

為 Canary 建立的資源

當您建立 Canary 時,會建立下列資源:

  • 具有名稱的IAM角色CloudWatchSyntheticsRole-canary-name-uuid(如果您使用 CloudWatch 控制台來創建初期測試並指定要為初期測試創建的新角色)

  • 具有 CloudWatchSyntheticsPolicy-canary-name-uuid 名稱的 IAM 政策

  • 具有 cw-syn-results-accountID-region 名稱的 S3 儲存貯體。

  • 具有 Synthetics-Alarm-MyCanaryName 名稱的警示 (如果您希望為 Canary 建立警示)

  • Lambda 函數和圖層 (如果您使用藍圖來建立 Canary)。這些資源具有字首 cwsyn-MyCanaryName

  • CloudWatch 以名稱記錄記錄檔群組/aws/lambda/cwsyn-MyCanaryName-randomId