跳至內容

如何疑難排解並解決 Amazon CloudWatch Synthetics Canary 的問題?

2 分的閱讀內容
0

我想解決 Amazon CloudWatch Synthetics Canary 的問題。

解決方法

若要疑難排解 CloudWatch Synthetics Canary 的問題,請採取以下動作:

檢查 Canary 與管理 Canary 的 IAM 使用者所需的角色和權限

檢查 AWS Identity and Access Management (IAM) 使用者和 Canary 是否具備必要的角色和權限。如需更多資訊,請參閱管理 CloudWatch Canary 之使用者所需的角色和權限和 Canary 所需的角色和權限。

如果您希望 IAM 使用者只能檢視特定 Canary,請將政策連接至 IAM 使用者或角色。

解決 Amazon S3 儲存貯體問題

解決「The specified bucket does not exist」錯誤

Amazon Simple Storage Service (Amazon S3) 儲存貯體必須存在,CloudWatch Synthetics Canary 才能找到該 Amazon S3 儲存貯體。如果 S3 儲存貯體已不存在,您就會收到錯誤。

為避免再次發生此錯誤,請為儲存貯體建立生命週期,以儲存 CloudWatch Synthetics Canary 成品。如需更多資訊,請參閱管理儲存生命週期。

解決「Unable to upload artifacts to S3, Exception: Unable to fetch S3 bucket location: Access Denied」錯誤

當 Canary 的 IAM 角色不具備存取儲存貯體所需的權限時,就會發生此錯誤。加密設定的組態不正確或組織政策封鎖存取時,也會發生此錯誤。

確認 Canary 的 IAM 角色具備正確的儲存貯體權限。另請檢查您組織的服務控制政策是否封鎖使用者存取儲存貯體。如需相關指示,請參閱取得組織政策的相關資訊。

檢查 Canary 是否使用標準 AWS 受管金鑰,而非 AWS Key Management Service (KMS) 客戶自管金鑰進行加密。如果 Canary 使用 AWS KMS 客戶自管金鑰,則 Canary 的 IAM 角色可能沒有加密或解密權限。如需更多資訊,請參閱加密 Canary 成品。

檢查 Canary 是否執行視覺化監控。如需更多資訊,請參閱使用視覺化監控時更新成品位置和加密設定。

若要讓儲存貯體政策允許 Canary 使用的加密機制,請確認 Canary 的加密模式與儲存貯體政策相同。如果兩者不同,請選擇其他加密選項:

  1. 開啟Amazon CloudWatch console (Amazon CloudWatch 主控台)。
  2. 在導覽窗格中,選擇 Synthetics Canaries (Synthetics Canary),然後選取您的 Canary。
  3. 選擇 Actions (動作),然後選擇 Edit (編輯)。
  4. 在 Data storage (資料儲存) 區段下,選擇 Additional configuration (其他組態)。
  5. 選擇要用於加密的金鑰類型,以選擇其他加密選項。

解決「1 validation error detected: Value 'XXXXX' at 'content.s3Bucket' failed to satisfy constraint: Member must satisfy regular expression pattern: ^[0-9A-Za-z\.\-_]*(?<!\.)$」錯誤

若要解決此錯誤,請檢查您的儲存貯體,並確認其中是否包含 Canary 指令碼。

如果指令碼位於儲存貯體中,請在指令碼程式碼中指定儲存貯體名稱。儲存貯體名稱的開頭請勿包含 s3://。

解決 Lambda 問題

解決「The canary can't detect the latest Lambda layer」錯誤

如果您進行手動變更或刪除 Lambda 函式,Canary 可能會偵測到最新的 AWS Lambda 層。若要解決此問題,請建立新的 Canary。

解決「The IAM role attached to the canary doesn't have a trust relationship for the Lambda service」錯誤

Canary 的 IAM 角色必須與 Lambda 服務建立信任關係。

確認 IAM 角色包含以下陳述式:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

解決 VPC 中失敗的 CloudWatch Canary

如果虛擬私有雲端 (VPC) 中的 CloudWatch Canary 收到錯誤並失敗,請遵循如何解決 VPC 中 CloudWatch Canary 失敗的錯誤?中的指示。

CloudWatch Synthetics Canary 問題的最佳實務

採取以下動作

  • 檢查 Availability (可用性) 索引標籤,以找出特定失敗或成功執行的問題。
  • 檢查 Details (詳細資訊) 頁面上的錯誤訊息,瞭解 Canary 失敗的原因。
  • 檢查螢幕擷取畫面,以確認最近的 Canary 調用。
  • 檢查日誌檔案,以找出權限問題或限流例外。
  • 檢查 Monitoring (監控) 索引標籤中的 Canary 指標和 Lambda 指標。
  • 檢查名稱為 /aws/lambda/cwsyn-MyCanaryName-randomId 的 CloudWatch Logs 日誌群組,找出近期的 Canary 操作日誌。
  • 檢查名稱為 cw-syn-results-accountID-region 的 Amazon S3 儲存貯體,找出螢幕擷取畫面或 HAR 檔案等上傳成品。
  • 檢查 Canary 發佈的 CloudWatch 指標。

相關資訊

為什麼我的 CloudWatch Canary 停止執行?

如何使用 CloudWatch Synthetics 監控網站效能?

AWS 官方已更新 7 個月前