建立 Canary - Amazon CloudWatch

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

建立 Canary

重要

請確認您使用 Synthetics Canary 來監控只有您擁有許可 (或您是擁有者) 的端點和 API。取決於 Canary 頻率設定,這些端點可能會遭遇增加的流量。

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

AWS CloudFormation 如果您使用自己的 Canary 指令碼,也可以使用 建立 Canary。如需詳細資訊,請參閱《AWS CloudFormation 使用者指南》中的 AWS::Synthetics::Canary

如果您正在編寫自己的指令碼,您可以使用 CloudWatch Synthetics 內建在程式庫中的多個函數。如需詳細資訊,請參閱Synthetics 執行時間版本

注意

當您建立 Canary 時,其中一個建立的圖層是前面加上 的 Synthetics 圖層Synthetics。此 layer 由 Synthetics 服務帳戶擁有,並包含執行期程式碼。

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

  2. 在導覽窗格中,選擇 Application SignalsSynthetics Canary

  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 許可。儲存貯體必須位於您要建立 Canary 的相同 AWS 區域中。

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

  6. Application or endpoint URL (應用程式或端點 URL) 下方,輸入您要 Canary 進行測試的 URL。此 URL 必須包含通訊協定 (例如 https://)。

    如果您想要讓 Canary 在 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 主控台建立連續執行的 Canary 時,您可以在每分鐘一次到每小時一次之間選擇一種速率。

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

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

    此設定會影響 GetCanaryRuns 操作傳回的資訊範圍,以及 Synthetics 主控台中顯示的資訊範圍。

    它不會影響存放在 Amazon S3 儲存貯體中的資料,也不會影響金絲雀發佈的日誌或指標。

    無論 Canary 的資料保留期間為何,主控台中顯示的資訊範圍都有特定限制。在 Synthetics 主控台主檢視中,相對和絕對時間範圍限制為七天。在特定 Canary 的 Synthetics 主控台檢視中,相對時間範圍限制為 7 天,絕對時間範圍限制為 30 天。

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

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

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

  14. Access permissions (存取許可) 下方,選擇是要建立 IAM 角色來執行 Canary,還是使用現有角色。

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

    如果您在建立 Canary 時使用 CloudWatch 主控台來建立 Canary 的角色,則無法將該角色重複用於其他 Canary,因為這些角色專屬於一個 Canary。如果您已手動建立可供多個 Canary 使用的角色,則可使用現有的角色。

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

  15. (選用) 在 Alarms (警示) 下方,選擇是否要為此 Canary 建立預設 CloudWatch 警示。如果您選擇建立警示,則會以下列名稱慣例建立警示:Synthetics-Alarm-canaryName-index

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

  16. (選用) 若要在 VPC 上的端點執行此 Canary 測試,請選擇 VPC settings (VPC 設定),然後執行下列操作:

    1. 選取託管端點的 VPC。

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

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

    如果端點位於 VPC 上,則必須啟用 Canary 以將資訊傳送至 CloudWatch 和 Simple Storage Service (Amazon S3)。如需詳細資訊,請參閱在 VPC 上執行 Canary

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

    如果您想要將套用至 Canary 的標籤也套用至 Canary 使用的 Lambda 函數,請在標籤複寫下選擇 Lambda 函數。如果您選擇此選項,CloudWatch Synthetics 會將 Canary 上的標籤和 Lambda 函數保持同步:

    • Synthetics 會將您在此處指定的相同標籤套用至 Canary 和 Lambda 函數。

    • 如果您稍後更新 Canary 的標籤並保持選取此選項,Synthetics 會修改 Lambda 函數上的標籤,以保持與 Canary 的同步。

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

為 Canary 建立的資源

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

  • 具有 CloudWatchSyntheticsRole-canary-name-uuid 名稱的 IAM 角色 (如果您使用 CloudWatch 主控台建立 Canary 並指定要為 Canary 建立新角色)

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

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

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

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

  • 具有 /aws/lambda/cwsyn-MyCanaryName-randomId 名稱的 CloudWatch Logs 日誌群組。