使用 Node.js 和 Puppeteer 的运行时版本 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 Node.js 和 Puppeteer 的运行时版本

使用 Node.js 和 Puppeteer 的第一个运行时版本被命名为 syn-1.0。后续运行时版本采用命名约定 syn-language-majorversion.minorversion。从 syn-nodejs-puppeteer-3.0 开始,命名约定为 syn-language-framework-majorversion.minorversion

额外添加的 -beta 后缀用以显示运行时版本当前为测试预览版。

具有相同主版本号的运行时版本将始终向后兼容。

关于所有运行时版本的说明

使用 syn-nodejs-puppeteer-3.0 运行时版本时,请确保 Canary 脚本与 Node.js 12.x 兼容。如果使用早期 syn-nodejs 运行时版本,请确保脚本与 Node.js 10.x 兼容。

Canary 中的 Lambda 代码已配置为具有最多 1 GB 内存。在配置的超时值之后,该超时将适用于每个运行的 Canary。如果未为 Canary 指定超时值,则 CloudWatch 会根据 Canary 的频率来选择超时值。如要配置超时值,请使此值不要短于 15 秒钟,以预留 Lambda 冷启动以及启动 canary 工具的时间。

syn-nodejs-puppeteer-3.5

syn-nodejs-puppeteer-3.5 运行时是 Node.js 和 Puppeteer 的最新运行时版本。

主要依赖项

  • Lambda 运行时 Node.js 14.x

  • Puppeteer-core 10.1.0 版

  • Chromium 92.0.4512 版

syn-nodejs-puppeteer-3.5 中的新功能

  • 更新的项目依赖项— 此运行时中唯一的新功能是更新的项目依赖项。

syn-nodejs-puppeteer-3.4

主要依赖项

  • Lambda 运行时 Node.js 12.x

  • Puppeteer-core 5.5.0 版

  • Chromium 88.0.4298.0 版

syn-nodejs-puppeteer-3.4 中的新功能:

  • 自定义处理程序函数— 您现在可以对 Canary 脚本使用自定义处理程序函数。之前的运行时要求脚本入口点包括 .handler

    您还可以将 Canary 脚本放在任何文件夹中,并将文件夹名称作为处理程序的一部分进行传递。例如,MyFolder/MyScriptFile.functionname 可以用作入口点。

  • 扩展的 HAR 文件信息— 您现在可以在 Canary 生成的 HAR 文件中看到恶意、待处理和未完成的请求。

syn-nodejs-puppeteer-3.3

主要依赖项

  • Lambda 运行时 Node.js 12.x

  • Puppeteer-core 5.5.0 版

  • Chromium 88.0.4298.0 版

syn-nodejs-puppeteer-3.3 中的新功能:

  • 用于构件加密的更多选项 – 对于使用此运行时或更高版本运行时(而不是使用 Amazon 托管式密钥)来加密 Canary 存储在 Amazon S3 中的构件的 Canary,您可以选择使用 Amazon KMS 客户托管式密钥或 Amazon S3 托管式密钥。有关更多信息,请参阅 加密 Canary 构件

syn-nodejs-puppeteer-3.2

主要依赖项

  • Lambda 运行时 Node.js 12.x

  • Puppeteer-core 5.5.0 版

  • Chromium 88.0.4298.0 版

syn-nodejs-puppeteer-3.2 中的新功能:

  • 使用屏幕截图进行可视化监控 – 使用此运行时或更高版本运行时的 Canary 可以将运行期间捕获的屏幕截图与相同屏幕截图的基准版本进行比较。如果屏幕截图与指定百分比阈值之间的差异较大,则 Canary 将失败。有关更多信息,请参阅 可视化监控可视监控蓝图

  • 与敏感数据相关的新函数:您可以阻止敏感数据出现在 Canary 日志和报告中。有关更多信息,请参阅 SyntheticsLogHelper 类

  • 已弃用的函数RequestResponseLogHelper 类已弃用,以支持其他新配置选项。有关更多信息,请参阅 RequestResponseLogHelper 类

syn-nodejs-puppeteer-3.1

主要依赖项

  • Lambda 运行时 Node.js 12.x

  • Puppeteer-core 5.5.0 版

  • Chromium 88.0.4298.0 版

syn-nodejs-puppeteer-3.1 中的新功能:

  • CloudWatch 指标配置功能 – 使用此运行时,您可以禁用不需要的指标。否则,Canary 会发布每次 Canary 运行的各种 CloudWatch 指标。

  • 屏幕截图链接 – 您可以在 Canary 步骤完成后将屏幕截图链接到该步骤。为此,您可以使用 takeScreenshot 方法捕获屏幕截图,并使用要与屏幕截图关联的步骤的名称。例如,您可能想要执行某个步骤,添加等待时间,然后捕获屏幕截图。

  • 检测信号监控器蓝图可以监控多个 URL – 您可以使用 CloudWatch 控制台中的检测信号监控蓝图来监控多个 URL,并在 Canary 运行报告的步骤摘要中查看每个 URL 的状态、持续时间、关联的屏幕截图和故障原因。

syn-nodejs-puppeteer-3.0

主要依赖项

  • Lambda 运行时 Node.js 12.x

  • Puppeteer-core 5.5.0 版

  • Chromium 88.0.4298.0 版

syn-nodejs-puppeteer-3.0 中的新功能:

  • 升级的依赖项 – 此版本使用 Puppeteer 5.5.0 版、Node.js 12.x 和 Chromium 88.0.4298.0。

  • 跨区域存储桶访问 – 您现在可以指定另一个区域中的 S3 存储桶作为 Canary 存储其日志文件、屏幕截图和 HAR 文件的存储桶。

  • 可用的新函数 – 此版本添加了库函数来检索 Canary 名称和 Synthetics 运行时版本。

    有关更多信息,请参阅 Synthetics 类

syn-nodejs-2.2

本节包含有关 syn-nodejs-2.2 运行时版本的信息。

重要

此运行时版本计划于 2021 年 5 月 28 日弃用。有关更多信息,请参阅 CloudWatch Synthetics 运行时支持策略

主要依赖项

  • Lambda 运行时 Node.js 10.x

  • Puppeteer-core 3.3.0 版

  • Chromium 83.0.4103.0 版

syn-nodejs-2.2 中的新功能:

  • 作为 HTTP 步骤监控您的 Canary – 您现在可以在一个 Canary 中测试多个 API。每个 API 都作为单独的 HTTP 步骤进行测试,CloudWatch Synthetics 会使用步骤指标和 CloudWatch Synthetics 步骤报告监控每个步骤的状态。CloudWatch Synthetics 会为每个 HTTP 步骤创建 SuccessPercentDuration 指标。

    此功能由 executeHttpStep(stepName, requestOptions, callback, stepConfig) 函数实现。有关更多信息,请参阅 executeHttpStep(stepName, requestOptions, [callback], [stepConfig])

    API Canary 蓝图已更新为使用此新功能。

  • HTTP 请求报告 – 您现在可以查看详细的 HTTP 请求报告,这些报告捕获的是请求/响应标头、响应正文、状态代码、错误和性能计时、TCP 连接时间、TLS 握手时间、第一字节时间和内容传输时间等详细信息。所有使用后台 HTTP/HTTPS 模块的 HTTP 请求都在此处捕获。预设情况下不会捕获标头和响应正文,但可以通过设置配置选项来启用捕获标头和响应正文。

  • 全局和步骤级配置 – 您可以在全局级别设置 CloudWatch Synthetics 配置,这些配置应用于 Canary 的所有步骤。您还可以通过传递配置键/值对来启用或禁用某些选项,在步骤级别覆盖这些配置。

    有关更多信息,请参阅 SyntheticsConfiguration 类

  • 继续执行步骤故障配置 – 您可以选择在步骤故障时继续执行 Canary。对于 executeHttpStep 函数,预设情况下,此选项处于启用状态。您可以在全局级别设置此选项一次,或者针对每个步骤做出不同的设置。

syn-nodejs-2.1

重要

此运行时版本计划于 2021 年 5 月 28 日弃用。有关更多信息,请参阅 CloudWatch Synthetics 运行时支持策略

主要依赖项

  • Lambda 运行时 Node.js 10.x

  • Puppeteer-core 3.3.0 版

  • Chromium 83.0.4103.0 版

syn-nodejs-2.1 中的新功能:

  • 可配置的屏幕截图行为 – 提供关闭 UI Canary 捕获屏幕截图的功能。在使用以前版本运行时的 Canary 中,UI Canary 始终在每个步骤前后捕获屏幕截图。在 syn-nodejs-2.1 中,可配置此行为。关闭屏幕截图可以降低您的 Amazon S3 存储成本,并有助于您遵守 HIPAA 法规。有关更多信息,请参阅 SyntheticsConfiguration 类

  • 自定义 Google Chrome 启动参数:现在,您可以配置当 Canary 启动 Google Chrome 浏览器窗口时使用的参数。有关更多信息,请参阅 launch(options)

与更早版本的 Canary 运行时相比,使用 syn-nodejs-2.0 或更高版本时,Canary 持续时间可能会略有增加。

syn-nodejs-2.0

重要

此运行时版本计划于 2021 年 5 月 28 日弃用。有关更多信息,请参阅 CloudWatch Synthetics 运行时支持策略

主要依赖项

  • Lambda 运行时 Node.js 10.x

  • Puppeteer-core 3.3.0 版

  • Chromium 83.0.4103.0 版

syn-nodejs-2.0 中的新功能:

  • 升级的依赖项 – 此运行时版本使用 Puppeteer-core 3.3.0 版和 Chromium 83.0.4103.0 版

  • 支持 X-Ray 活动跟踪。Canary 启用跟踪后,将针对由使用浏览器、Amazon SDK 或 HTTP 或 HTTPS 模块的 Canary 发出的所有调用发送 X-Ray 跟踪。启用了跟踪的 Canary 会显示在 CloudWatch Servicelens 和 X-Ray 中的服务地图上,即使它们没有向启用了跟踪的其他服务或应用程序发送请求。有关更多信息,请参阅 Canary 和 X-Ray 跟踪

  • Synthetics 报告 – CloudWatch Synthetics 会针对每次 Canary 运行创建一个名为 SyntheticsReport-PASSED.jsonSyntheticsReport-FAILED.json 的报告,其中记录了开始时间、结束时间、状态和故障等数据。报告中还记录 Canary 脚本的每个步骤的 PASSED/FAILED 状态,以及每个步骤捕获的失败和屏幕截图。

  • 无效链接检查器报告 – 此运行时中包含的新版本无效链接检查器会创建一个报告,其中包括已检查的链接、状态代码、故障原因(如有)以及源页面和目标页面屏幕截图。

  • 新 CloudWatch 指标 – Synthetics 在 CloudWatchSynthetics 命名空间中发布名为 2xx4xx5xxRequestFailed 的指标。这些指标会显示 Canary 运行中 200 秒、400 秒、500 秒和请求故障的数量。在此运行时版本中,这些指标仅针对 UI Canary 报告,而不针对 API Canary 报告。从 syn-nodejs-puppeteeer-2.2 运行时版本开始,也针对 API Canary 报告这些指标。

  • 可排序的 HAR 文件 – 您现在可以按状态代码、请求大小和持续时间对 HAR 文件进行排序。

  • 指标时间戳 – 现在基于 Lambda 调用时间而非 Canary 运行结束时间报告 CloudWatch 指标。

syn-nodejs-2.0 中的错误修复:

  • 修复了不报告 Canary 构件上载错误的问题。此类错误现在显示为执行错误。

  • 修复了将重定向请求 (3xx) 误记为错误的问题。

  • 修复了从 0 开始编号屏幕截图的问题。现在应从 1 开始编号。

  • 修复了中文和日文字体屏幕截图乱码的问题。

与更早版本的 Canary 运行时相比,使用 syn-nodejs-2.0 或更高版本时,Canary 持续时间可能会略有增加。

syn-nodejs-2.0-beta

重要

此运行时版本已于 2021 年 2 月 8 日弃用。有关更多信息,请参阅 CloudWatch Synthetics 运行时支持策略

主要依赖项

  • Lambda 运行时 Node.js 10.x

  • Puppeteer-core 3.3.0 版

  • Chromium 83.0.4103.0 版

syn-nodejs-2.0-beta 中的新功能

  • 升级的依赖项 – 此运行时版本使用 Puppeteer-core 3.3.0 版和 Chromium 83.0.4103.0 版

  • Synthetics 报告 – CloudWatch Synthetics 会针对每次 Canary 运行创建一个名为 SyntheticsReport-PASSED.jsonSyntheticsReport-FAILED.json 的报告,其中记录了开始时间、结束时间、状态和故障等数据。报告中还记录 Canary 脚本的每个步骤的 PASSED/FAILED 状态,以及每个步骤捕获的失败和屏幕截图。

  • 无效链接检查器报告 – 此运行时中包含的新版本无效链接检查器会创建一个报告,其中包括已检查的链接、状态代码、故障原因(如有)以及源页面和目标页面屏幕截图。

  • 新 CloudWatch 指标 – Synthetics 在 CloudWatchSynthetics 命名空间中发布名为 2xx4xx5xxRequestFailed 的指标。这些指标会显示 Canary 运行中 200 秒、400 秒、500 秒和请求故障的数量。仅针对 UI Canary 报告而不针对 API Canary 报告这些指标。

  • 可排序的 HAR 文件 – 您现在可以按状态代码、请求大小和持续时间对 HAR 文件进行排序。

  • 指标时间戳 – 现在基于 Lambda 调用时间而非 Canary 运行结束时间报告 CloudWatch 指标。

syn-nodejs-2.0-beta 中的错误修复

  • 修复了不报告 Canary 构件上载错误的问题。此类错误现在显示为执行错误。

  • 修复了将重定向请求 (3xx) 误记为错误的问题。

  • 修复了从 0 开始编号屏幕截图的问题。现在应从 1 开始编号。

  • 修复了中文和日文字体屏幕截图乱码的问题。

syn-1.0

重要

此运行时版本计划于 2021 年 5 月 28 日弃用。有关更多信息,请参阅 CloudWatch Synthetics 运行时支持策略

第一个 Synthetics 运行时版本是 syn-1.0

主要依赖项

  • Lambda 运行时 Node.js 10.x

  • Puppeteer-core 1.14.0 版

  • 与 Puppeteer-core 1.14.0 匹配的 Chromium 版本