合成测试
Amazon CloudWatch Synthetics 允许您从客户的角度监控应用程序,即使在没有实际用户的情况下也是如此。通过持续测试您的 API 和网站体验,即使在没有用户流量时,您也能发现间歇性问题。
Canary 是可配置的脚本,您可以按计划运行,以全天候持续测试您的 API 和网站体验。它们遵循与真实用户相同的代码路径和网络路由,并可以在出现意外行为(包括延迟、页面加载错误、无效或死链接以及中断的用户工作流)时通知您。

确保您仅使用 Synthetics canary 来监控您拥有所有权或权限的 endpoint 和 API。根据 canary 频率设置,这些 endpoint 可能会经历流量增加。
入门
完整覆盖
在制定测试策略时,请同时考虑 Amazon VPC 内的公共和内部私有 endpoint。
录制新的 Canary
CloudWatch Synthetics Recorder Chrome 浏览器插件允许您从零开始快速构建具有复杂工作流的新 canary 测试脚本。录制期间的输入和点击操作将转换为 Node.js 脚本,您可以使用该脚本创建 canary。CloudWatch Synthetics Recorder 的已知限制在此页面上说明。
查看聚合 Metrics
利用从您的 canary 脚本集收集的聚合 metrics 的开箱即用报告。CloudWatch 自动 Dashboard

构建 Canary
蓝图
使用 canary 蓝图 来简化多种 canary 类型的设置过程。

蓝图是开始编写 canary 的便捷方式,简单用例无需编写代码即可覆盖。
可维护性
当您编写自己的 canary 时,它们与一个运行时版本绑定。这将是 Python with Selenium 或 JavaScript with Puppeteer 的特定版本。请参阅[此页面]了解我们当前支持的运行时版本和已弃用的版本列表。
通过使用环境变量来共享在 canary 执行期间可以访问 的数据,从而提高脚本的可维护性。
在新运行时版本可用时,将您的 canary 升级到最新版本。
字符串密钥
您可以编写 canary 代码,从 canary 或其环境变量之外的安全系统中拉取密钥(例如登录凭据)。任何可被 AWS Lambda 访问的系统都可以在运行时向您的 canary 提供密钥。
执行测试并通过使用 AWS Secrets Manager 存储数据库连接详情、API 密钥和应用程序凭据等密钥来保护敏感数据。