我想解决 Amazon CloudWatch Synthetics 金丝雀中的问题。
解决方法
要对 CloudWatch Synthetics 金丝雀中的问题进行故障排除,请执行以下操作:
检查金丝雀和管理金丝雀的 IAM 用户的角色和权限
检查 AWS Identity and Access Management (IAM) 用户和金丝雀是否具有所需的角色和权限。有关详细信息,请参阅管理 CloudWatch 金丝雀的用户所需的角色和权限以及金丝雀所需的角色和权限。
如果您希望 IAM 用户仅查看特定的金丝雀,请将策略附加到 IAM 用户或角色。
解决 Amazon S3 存储桶问题
解决 "The specified bucket does not exist" 错误
Amazon Simple Storage Service (Amazon S3) 存储桶必须存在,CloudWatch Synthetics 金丝雀才能找到该 Amazon S3 存储桶。如果 S3 存储桶已不存在,则会收到错误。
为防止此错误再次出现,请在存储桶上创建生命周期来存储您的 CloudWatch Synthetics 金丝雀构件。有关详细信息,请参阅管理存储生命周期。
解决 "Unable to upload artifacts to S3, Exception: Unable to fetch S3 bucket location: Access Denied" 错误
当金丝雀的 IAM 角色没有访问存储桶所需的权限时,就会出现此错误。当加密设置的配置不正确或组织策略阻止访问时,也会出现此错误。
确认金丝雀的 IAM 角色具有正确的存储桶权限。同时检查您所在组织的服务控制策略是否会阻止用户访问存储桶。有关说明,请参阅获取有关组织策略的信息。
检查金丝雀是否使用标准的 AWS 托管式密钥而非 AWS Key Management Service (AWS KMS) 客户管理型密钥进行加密。如果金丝雀使用 AWS KMS 客户管理型密钥,则金丝雀的 IAM 角色可能没有加密或解密的权限。有关详细信息,请参阅加密金丝雀构件。
检查金丝雀是否进行视觉监控。有关详细信息,请参阅使用视觉监控时更新构件位置和加密。
要使存储桶策略允许金丝雀使用的加密机制,请验证您的金丝雀和存储桶策略的加密模式是否相同。如果二者不同,请选择其他加密选项:
- 打开 Amazon CloudWatch 控制台。
- 在导航窗格中,选择 Synthetics Canaries(Synthetics 金丝雀),然后选择您的金丝雀。
- 选择 Actions(操作),然后选择 Edit(编辑)。
- 在 Data storage(数据存储)部分下,选择 Additional configuration(其他配置)。
- 选择要用于加密的密钥类型以选择其他加密选项。
解决 "1 validation error detected: Value 'XXXXX' at 'content.s3Bucket' failed to satisfy constraint: Member must satisfy regular expression pattern: ^[0-9A-Za-z\.\-_]*(?<!\.)$" 错误
要解决此错误,请检查您的存储桶并确认其中是否包含您的金丝雀脚本。
如果脚本位于存储桶中,请在脚本代码中指定存储桶名称。不要在存储桶名称的开头包含 s3://。
解决 Lambda 问题
解决 "The canary can't detect the latest Lambda layer" 错误
如果您手动更改或删除了 Lambda 函数,金丝雀可能会检测到最新的 AWS Lambda 层。要解决此问题,请创建一个新的金丝雀。
解决 "The IAM role attached to the canary doesn't have a trust relationship for the Lambda service" 错误
您的金丝雀的 IAM 角色必须与 Lambda 服务建立信任关系。
确认 IAM 角色包含以下语句:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
解决 VPC 中出现故障的 CloudWatch 金丝雀
如果您的虚拟私有云 (VPC) 中的 CloudWatch 金丝雀出现错误并失败,请按照如何解决 VPC 中 CloudWatch 金丝雀出现故障的错误?中的说明进行操作
CloudWatch Synthetics 金丝雀问题的最佳实践
执行以下操作
- 查看 Availability(可用性)选项卡,确定特定运行失败或成功的问题。
- 查看 Details(详细信息)页面上的错误消息,了解金丝雀失败的原因。
- 查看屏幕截图以验证最新的金丝雀调用。
- 检查日志文件以确定权限问题或节流异常。
- 检查 Monitoring(监控)选项卡中的金丝雀指标和 Lambda 指标。
- 检查名为 /aws/lambda/cwsyn-MyCanaryName-randomId 的 CloudWatch Logs 日志组中最新的金丝雀操作日志。
- 检查名为 cw-syn-results-accountID-region 的 Amazon S3 存储桶中是否有构件上传项,例如屏幕截图或 HAR 文件。
- 查看金丝雀发布的 CloudWatch 指标。
相关信息
为什么我的 CloudWatch 金丝雀已停止运行?
如何使用 CloudWatch Synthetics 来监控我的网站性能?