

# 使用 Node.js 和 Puppeteer 的运行时版本
<a name="CloudWatch_Synthetics_Library_nodejs_puppeteer"></a>

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

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

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

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

## syn-nodejs-puppeteer-15.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-15.0"></a>

`syn-nodejs-puppeteer-15.0` 是 Node.js 和 Puppeteer 最新的 Synthetics 运行时系统。

**重要**  
Synthetics `syn-nodejs-puppeteer-13.1` 及更高版本中，Synthetics 运行时将使用新的命名空间。请迁移金丝雀脚本以使用新的命名空间。在未来的版本中，旧命名空间将被弃用。  
Synthetics → @aws/synthetics-puppeteer
SyntheticsLink → @aws/synthetics-link
SyntheticsLogger → @aws/synthetics-logger
SyntheticsLogHelper → @aws/synthetics-log-helper
BrokenLinkCheckerReport → @aws/synthetics-broken-link-checker-report

**重要**  
Synthetics 运行时 `syn-nodejs-puppeteer-11.0` 及更高版本仅支持以下步骤级配置覆盖：  
 `screenshotOnStepStart` 
 `screenshotOnStepSuccess` 
 `screenshotOnStepFailure` 
 `stepSuccessMetric` 
 `stepDurationMetric` 
 `continueOnStepFailure/continueOnHttpStepFailure` 
 `stepsReport` 

有关更多信息，请参阅下列内容：
+  [Puppeteer 更改日志](https://pptr.dev/CHANGELOG#24375-2026-02-19) 
+  [Puppeteer API 参考](https://github.com/puppeteer/puppeteer/blob/puppeteer-v24.37.5/docs/api/index.md) 

**主要依赖项**：
+ Lambda 运行时系统 Node.js 22.x
+ Puppeteer-core 版本 24.37.5
+ Chromium 145.0.7632.77 版
+ Firefox 版本 147.0.4

 **syn-nodejs-puppeteer-15.0 中的变化** 
+ 应用了安全补丁，并更新了 Puppeteer 和浏览器版本。
+ 修复了 continueOnHttpStepFailure 未得到尊重的错误，该错误导致尽管出现了 HTTP 步骤失败，但金丝雀运行仍被错误地标记为成功。

## 先前的 Node.js 和 Puppeteer 运行时版本
<a name="Previousversions-nodejs-puppeteer"></a>

下列 Node.js 和 Puppeteer 的早期运行时版本仍受支持。

### syn-nodejs-puppeteer-14.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-14.0"></a>

有关更多信息，请参阅下列内容：
+  [Puppeteer 更改日志](https://pptr.dev/CHANGELOG#24340-2025-12-19) 
+  [Puppeteer API 参考](https://github.com/puppeteer/puppeteer/blob/puppeteer-v24.34.0/docs/api/index.md) 

**主要依赖项**：
+ Lambda 运行时系统 Node.js 22.x
+ Puppeteer-core 版本 24.34.0
+ Chromium 143.0.7499.169 版
+ Firefox 版本 146.x

 **syn-nodejs-puppeteer-14.0 中的变化** 
+ 应用了安全补丁，并更新了 Puppeteer 和浏览器版本。

### syn-nodejs-puppeteer-13.1
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-13.1"></a>

`syn-nodejs-puppeteer-13.1` 是 Node.js 和 Puppeteer 最新的 Synthetics 运行时系统。

有关更多信息，请参阅下列内容：
+  [Puppeteer 更改日志](https://pptr.dev/CHANGELOG#24250-2025-10-15) 
+  [Puppeteer API 参考](https://github.com/puppeteer/puppeteer/blob/puppeteer-v24.2.0/docs/api/index.md) 

**主要依赖项**：
+ Lambda 运行时系统 Node.js 22.x
+ Puppeteer-core 版本 24.25.0
+ Chromium 142.0.7444.175 版
+ Firefox 版本 145.x

 **syn-nodejs-puppeteer-13.1 中的变化** 
+ Synthetics 运行时命名空间迁移。
+ 类型定义在 npm 注册表中可用。请确保类型定义包的版本与您的金丝雀的运行时版本相匹配。
  +  [@aws/synthetics-puppeteer](https://www.npmjs.com/package/@aws/synthetics-puppeteer) 
  +  [@aws/synthetics-link](https://www.npmjs.com/package/@aws/synthetics-link) 
  +  [@aws/synthetics-broken-link-checker-report](https://www.npmjs.com/package/@aws/synthetics-broken-link-checker-report) 
  +  [@aws/synthetics-log-helper](https://www.npmjs.com/package/@aws/synthetics-log-helper) 
  +  [@aws/synthetics-logger](https://www.npmjs.com/package/@aws/synthetics-logger) 

### syn-nodejs-puppeteer-13.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-13.0"></a>

有关更多信息，请参阅下列内容：
+  [Puppeteer 更改日志](https://pptr.dev/CHANGELOG#24250-2025-10-15) 
+  [Puppeteer API 参考](https://github.com/puppeteer/puppeteer/blob/puppeteer-v24.2.0/docs/api/index.md) 

**主要依赖项**：
+ Lambda 运行时系统 Node.js 22.x
+ Puppeteer-core 版本 24.25.0
+ Chromium 142.0.7444.175 版
+ Firefox 版本 145.x

 **syn-nodejs-puppeteer-13.0 中的变化** 
+ 应用了安全补丁，并更新了 Puppeteer 和浏览器版本。
+ 错误修复：修复了由并发映射访问导致的间歇性运行时扩展崩溃问题

### syn-nodejs-puppeteer-12.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-12.0"></a>

有关更多信息，请参阅下列内容：
+  [Puppeteer 更改日志](https://pptr.dev/CHANGELOG#24221-2025-09-23) 
+  [Puppeteer API 参考](https://github.com/puppeteer/puppeteer/blob/puppeteer-v24.22.1/docs/api/index.md) 

**主要依赖项**：
+ Lambda 运行时系统 Node.js 22.x
+ Puppeteer-core 版本 24.22.1
+ Chromium 140.0.7339.185 版
+ Firefox 版本 143.0.1

 **syn-nodejs-puppeteer-12.0 中的变化** 
+ 应用了安全补丁，并更新了 Puppeteer 和浏览器版本。
+ 修复了受限标头编辑的错误：修复了在某些情况下，executeHttpStep() 中受限标头未正确编辑的问题。现在其行为与 Puppeteer 10.0 版本保持一致。
+ 修复了 includeResponseBody 配置错误的问题：修复了在某些情况下，HAR 文件生成可能错误应用 includeResponseBody 配置设置的问题。现在，HAR 可确保在配置设置时正确排除响应正文。
+ 修复了请求捕获生命周期的问题：修复了在某些情况下，HTTP 请求捕获器可能导致请求持续聚合的问题。现在，每次执行步骤后，记录都会正确终止。

### syn-nodejs-puppeteer-11.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-11.0"></a>

有关更多信息，请参阅下列内容：
+  [Puppeteer 更改日志](https://pptr.dev/CHANGELOG) 
+  [Puppeteer API 参考](https://github.com/puppeteer/puppeteer/blob/puppeteer-v24.2.0/docs/api/index.md) 

**主要依赖项**：
+ Lambda 运行时系统 Node.js 20.x
+ Puppeteer-core 版本 24.15.0
+ Chromium 版本 138.0.7204.168

 **syn-nodejs-puppeteer-11.0 中的变化** 
+ 多浏览器支持：现可在 Firefox 或 Chrome 中运行 Node.js Puppeteer 金丝雀
+ 简化打包：无需使用 Node.js/node\$1modules 目录结构即可直接在根目录下打包脚本
+ 屏幕截图集成：使用原生 Puppeteer 函数捕获屏幕截图，可视化展示金丝雀脚本的各执行阶段。Synthetics 会自动将屏幕截图与金丝雀检测步骤关联，并上传至 Amazon S3
+ 增强型日志查询：通过 CloudWatch Insights 控制台查询和筛选日志。每条日志消息都包含一个独特的 `canaryRunId` 以便于搜索
+ 配置文件支持：使用 synthetics.json 文件定义和更新 Synthetics 设置。这种配置与脚本逻辑的分离方式提高了可维护性和可复用性
+ 多选项卡支持：创建可打开多个浏览器选项卡的金丝雀，并从每个选项卡访问屏幕截图。在 Synthetics 中创建多选项卡和多步骤用户工作流程
+ 安全修复
+ 可视化监控错误修复
+ 增加了对具有可配置日志级别的结构化 JSON 日志的支持：日志现在以 JSON 格式发出，以便在 CloudWatch 中更轻松地进行解析和查询。日志级别（例如 DEBUG、INFO、TRACE）可通过环境变量进行配置，允许用户根据自己的需求控制详细程度
+ 对 ES 语法的支持

### syn-nodejs-puppeteer-10.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-10.0"></a>

有关更多信息，请参阅下列内容：
+  [Puppeteer 更改日志](https://pptr.dev/CHANGELOG) 
+  [Puppeteer API 参考](https://github.com/puppeteer/puppeteer/blob/puppeteer-v24.2.0/docs/api/index.md) 

**主要依赖项**：
+ Lambda 运行时系统 Node.js 20.x
+ Puppeteer-core 版本 24.2.0
+ Chromium 版本 131.0.6778.264

 **syn-nodejs-puppeteer-10.0 中的变化**：
+ 修复了关闭浏览器耗时过长的问题。
+ 支持对金丝雀进行试运行，允许临时执行或执行安全的金丝雀更新。

### syn-nodejs-puppeteer-9.1
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-9.1"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 20.x
+ Puppeteer-core 版本 22.12.1
+ Chromium 版本 126.0.6478.126

**syn-nodejs-puppeteer-9.1 中的变化**：修复了与 HAR 文件中的日期范围和待处理请求相关的错误。

### syn-nodejs-puppeteer-9.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-9.0"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 20.x
+ Puppeteer-core 版本 22.12.1
+ Chromium 版本 126.0.6478.126

**syn-nodejs-puppeteer-9.0 中的变化**：修复了启用视觉监控功能的错误。

### syn-nodejs-puppeteer-8.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-8.0"></a>

**警告**  
由于存在错误，`syn-nodejs-puppeteer-8.0` 运行时不支持在金丝雀系统中进行可视化监控。升级到 [syn-nodejs-puppeteer-9.0](#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-9.0) 以修复可视化监视的错误。

**重要**  
Lambda Node.js 18 和更高版本运行时系统使用适用于 JavaScript V3 的 AWS SDK。如果需要从较早的运行时迁移金丝雀，请遵循 GitHub 上的 [aws-sdk-js-v3 Migration Workshop](https://github.com/aws-samples/aws-sdk-js-v3-workshop)。有关 AWS SDK for JavaScript 版本 3 的更多信息，请参阅[此博客文章](https://aws.amazon.com/blogs/developer/modular-aws-sdk-for-javascript-is-now-generally-available/)。

**主要依赖项**：
+ Lambda 运行时系统 Node.js 20.x
+ Puppeteer-core 22.10.0 版
+ Chromium 125.0.6422.112 版

**syn-nodejs-puppeteer-8.0 中的更新**：
+  **支持双重身份验证** 
+ 修复了与某些服务客户端在 Node.js SDK V3 响应中丢失数据相关的**错误**。

## 已弃用的 Node.js 和 Puppeteer 运行时版本
<a name="CloudWatch_Synthetics_nodejs-puppeteer-Deprecated"></a>

下列 Node.js 和 Puppeteer 运行时系统已弃用。有关运行时弃用日期的信息，请参阅 [CloudWatch Synthetics 运行时弃用日期](CloudWatch_Synthetics_Runtime_Support_Policy.md#runtime_deprecation_dates)。

### syn-nodejs-puppeteer-7.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-7.0"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 18.x
+ Puppeteer-core 21.9.0 版
+ Chromium 121.0.6167.139 版

**代码大小**：

您可以将大小为 80MB 的代码和依赖项打包到此运行时中。

**syn-nodejs-puppeteer-7.0 中的更新**：
+ **更新了 Puppeteer 和 Chromium 中捆绑库的版本**：Puppeteer 和 Chromium 依赖项已更新到新版本。
**重要**  
从 Puppeteer 19.7.0 迁移到 Puppeteer 21.9.0 引入了有关测试和筛选条件的重大更改。有关更多信息，请参阅 [puppeteer：v20.0.0](https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-v20.0.0) 和 [puppeteer-core：v21.0.0](https://github.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v21.0.0) 中的**重大更改**部分。

 **推荐升级到 AWS SDK v3** 

Lambda nodejs18.x 运行时不支持 AWS SDK v2。强烈建议您迁移到 AWS SDK v3。

### syn-nodejs-puppeteer-6.2
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-6.2"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 18.x
+ Puppeteer-core 19.7.0 版
+ Chromium 111.0.5563.146 版

**syn-nodejs-puppeteer-6.2 中的变化**：
+  **更新了 Chromium 中捆绑库的版本** 
+ **临时存储监控** — 此运行时系统会在客户账户中添加临时存储监控。
+  **错误修复** 

### syn-nodejs-puppeteer-6.1
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-6.1"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 18.x
+ Puppeteer-core 19.7.0 版
+ Chromium 111.0.5563.146 版

**syn-nodejs-puppeteer-6.1 中的更新**：
+ **稳定性提高**：新增自动重试逻辑，用于处理间歇性 Puppeteer 启动错误。
+ **依赖项升级**：升级部分第三方依赖项包。
+ **没有 Amazon S3 权限的 Canary**：通过错误修复使没有任何 Amazon S3 权限的 Canary 仍可运行。这些没有 Amazon S3 权限的 Canary 将无法将屏幕截图或其他构件上传到 Amazon S3。有关 Canary 权限的更多信息，请参阅 [金丝雀的必需角色和权限](CloudWatch_Synthetics_Canaries_CanaryPermissions.md)。

**重要**  
重要提示：在未来的运行时系统版本中，随附的适用于 JavaScript v2 的 AWS SDK 依赖项将被移除，并更新为使用适用于 JavaScript v3 的 AWS SDK。发生这种情况时，您可以更新金丝雀代码引用，也可以继续引用和使用随附的适用于 JavaScript v2 的 AWS SDK 依赖项，方法是将其作为依赖项添加到源代码 zip 文件中。

### syn-nodejs-puppeteer-6.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-6.0"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 18.x
+ Puppeteer-core 19.7.0 版
+ Chromium 111.0.5563.146 版

**syn-nodejs-puppeteer-6.0 中的更新**：
+ **依赖项升级** – Node.js 依赖项已升级到 18.x。
+ **拦截模式支持** – Synthetics 金丝雀运行时系统库中添加了 Puppeteer 合作拦截模式支持。
+ **跟踪行为更改** – 将默认跟踪行为更改为了仅跟踪 fetch 和 xhr 请求，而不跟踪资源请求。您可以通过配置 `traceResourceRequests` 选项来启用对资源请求的跟踪。
+ **持续时间指标已完善** – ` Duration` 指标现在不包括金丝雀用于上传构件、捕获屏幕截图和生成 CloudWatch 指标的操作时间。`Duration` 指标值会报告给 CloudWatch，您也可以在 Synthetics 控制台中进行查看。
+ **错误修复** – 清理 Chromium 在金丝雀运行期间崩溃时生成的核心转储。

**重要**  
重要提示：在未来的运行时系统版本中，随附的适用于 JavaScript v2 的 AWS SDK 依赖项将被移除，并更新为使用适用于 JavaScript v3 的 AWS SDK。发生这种情况时，您可以更新金丝雀代码引用，也可以继续引用和使用随附的适用于 JavaScript v2 的 AWS SDK 依赖项，方法是将其作为依赖项添加到源代码 zip 文件中。

### syn-nodejs-puppeteer-5.2
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-5.2"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 16.x
+ Puppeteer-core 19.7.0 版
+ Chromium 111.0.5563.146 版

**syn-nodejs-puppeteer-5.2 中的更新**：
+  **更新了 Chromium 中捆绑库的版本** 
+  **错误修复** 

### syn-nodejs-puppeteer-5.1
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-5.1"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 16.x
+ Puppeteer-core 19.7.0 版
+ Chromium 111.0.5563.146 版

**syn-nodejs-puppeteer-5.1 中的错误修复**：
+ **错误修复**：此运行时系统修复了 ` syn-nodejs-puppeteer-5.0` 中的一个错误，其中由金丝雀创建的 HAR 文件缺少请求标头。

### syn-nodejs-puppeteer-5.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-5.0"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 16.x
+ Puppeteer-core 19.7.0 版
+ Chromium 111.0.5563.146 版

**syn-nodejs-puppeteer-5.0 中的更新**：
+ **依赖关系升级** — Puppeteer-Core 版本已更新至 19.7.0。Chromium 版本已升级至 111.0.5563.146。

**重要**  
新的 Puppeteer-Core 版本并不完全向后兼容之前版本的 Puppeteer。此版本中的某些更改可能会导致使用已弃用的 Puppeteer 函数的现有金丝雀失败。有关更多信息，请参阅 [Puppeteer 变更日志](https://github.com/puppeteer/puppeteer/releases?q=breaking&expanded=true)中 Puppeteer-core 19.7.0 至 6.0 版变更日志中的重大更改。

### syn-nodejs-puppeteer-4.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-4.0"></a>

**主要依赖项**：
+ Lambda 运行时系统 Node.js 16.x
+ Puppeteer-core 5.5.0 版
+ Chromium 92.0.4512 版

**syn-nodejs-puppeteer-4.0 中的更新**：
+ **依赖项升级** – Node.js 依赖项已更新到 16.x。

### syn-nodejs-puppeteer-3.9
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.9"></a>

**重要**  
此运行时系统版本已于 2024 年 1 月 8 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 14.x
+ Puppeteer-core 5.5.0 版
+ Chromium 92.0.4512 版

**syn-nodejs-puppeteer-3.9 中的更新**：
+ **依赖项升级** – 升级一些第三方依赖项包。

### syn-nodejs-puppeteer-3.8
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.8"></a>

**重要**  
此运行时系统版本已于 2024 年 1 月 8 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 14.x
+ Puppeteer-core 5.5.0 版
+ Chromium 92.0.4512 版

**syn-nodejs-puppeteer-3.8 中的更新**：
+ **配置文件清理** – 现在，每次金丝雀脚本运行后，都会清理 Chromium 配置文件。

**syn-nodejs-puppeteer-3.8 中的错误修复**：
+ **错误修复** – 以前，在没有屏幕截图的情况下运行后，可视化监控金丝雀脚本有时会停止正常工作。此问题现已修复。

### syn-nodejs-puppeteer-3.7
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.7"></a>

**重要**  
此运行时系统版本已于 2024 年 1 月 8 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 14.x
+ Puppeteer-core 5.5.0 版
+ Chromium 92.0.4512 版

**syn-nodejs-puppeteer-3.7 中的更新**：
+ **日志记录增强功能** — 即使 Amazon S3 超时或崩溃，金丝雀也会将日志上传到 Amazon S3。
+ **Lambda 层大小已减小** — 用于金丝雀的 Lambda 层的大小减小了 34%。

**syn-nodejs-puppeteer-3.7 中的错误修复**：
+ **错误修复** — 日语、简体中文和繁体中文字体将正确呈现。

### syn-nodejs-puppeteer-3.6
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.6"></a>

**重要**  
此运行时系统版本已于 2024 年 1 月 8 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 14.x
+ Puppeteer-core 5.5.0 版
+ Chromium 92.0.4512 版

**syn-nodejs-puppeteer-3.6 中的更新**：
+ **更精确的时间戳** — 金丝雀运行的开始时间和停止时间现在精确到毫秒。

### syn-nodejs-puppeteer-3.5
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.5"></a>

**重要**  
此运行时系统版本已于 2024 年 1 月 8 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 14.x
+ Puppeteer-core 5.5.0 版
+ Chromium 92.0.4512 版

**syn-nodejs-puppeteer-3.5 中的更新**：
+ **更新的项目依赖项**— 此运行时中唯一的新功能是更新的项目依赖项。

### syn-nodejs-puppeteer-3.4
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.4"></a>

**重要**  
此运行时版本于 2022 年 11 月 13 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 12.x
+ Puppeteer-core 5.5.0 版
+ Chromium 88.0.4298.0 版

**syn-nodejs-puppeteer-3.4 中的更新**：
+ **自定义处理程序函数**— 您现在可以对金丝雀脚本使用自定义处理程序函数。之前的运行时要求脚本入口点包括 `.handler`。

  您还可以将金丝雀脚本放在任何文件夹中，并将文件夹名称作为处理程序的一部分进行传递。例如，`MyFolder/MyScriptFile.functionname` 可以用作入口点。
+ **扩展的 HAR 文件信息**— 您现在可以在金丝雀生成的 HAR 文件中看到恶意、待处理和未完成的请求。

### syn-nodejs-puppeteer-3.3
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.3"></a>

**重要**  
此运行时版本于 2022 年 11 月 13 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 12.x
+ Puppeteer-core 5.5.0 版
+ Chromium 88.0.4298.0 版

**syn-nodejs-puppeteer-3.3 中的更新**：
+ **用于构件加密的更多选项** – 对于使用此运行时或更高版本运行时（而不是使用 AWS 托管式密钥）来加密金丝雀存储在 Amazon S3 中的构件的金丝雀，您可以选择使用 AWS KMS 客户托管式密钥或 Amazon S3 托管式密钥。有关更多信息，请参阅 [加密金丝雀构件](CloudWatch_Synthetics_artifact_encryption.md)。

### syn-nodejs-puppeteer-3.2
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.2"></a>

**重要**  
此运行时版本于 2022 年 11 月 13 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 12.x
+ Puppeteer-core 5.5.0 版
+ Chromium 88.0.4298.0 版

**syn-nodejs-puppeteer-3.2 中的更新**：
+ **使用屏幕截图进行可视化监控** – 使用此运行时或更高版本运行时的金丝雀可以将运行期间捕获的屏幕截图与相同屏幕截图的基准版本进行比较。如果屏幕截图与指定百分比阈值之间的差异较大，则金丝雀将失败。有关更多信息，请参阅 [可视化监控](CloudWatch_Synthetics_Canaries_Library_Nodejs.md#CloudWatch_Synthetics_Library_SyntheticsLogger_VisualTesting) 或 [可视监控蓝图](CloudWatch_Synthetics_Canaries_Blueprints.md#CloudWatch_Synthetics_Canaries_Blueprints_VisualTesting)。
+ **与敏感数据相关的新函数**：您可以阻止敏感数据出现在金丝雀日志和报告中。有关更多信息，请参阅 [SyntheticsLogHelper 类](CloudWatch_Synthetics_Canaries_Library_Nodejs.md#CloudWatch_Synthetics_Library_SyntheticsLogHelper)。
+ **已弃用的函数**：` RequestResponseLogHelper` 类已弃用，以支持其他新配置选项。有关更多信息，请参阅 [RequestResponseLogHelper 类](CloudWatch_Synthetics_Canaries_Library_Nodejs.md#CloudWatch_Synthetics_Library_RequestResponseLogHelper)。

### syn-nodejs-puppeteer-3.1
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.1"></a>

**重要**  
此运行时版本于 2022 年 11 月 13 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 12.x
+ Puppeteer-core 5.5.0 版
+ Chromium 88.0.4298.0 版

**syn-nodejs-puppeteer-3.1 中的更新**：
+ **CloudWatch 指标配置功能** – 使用此运行时，您可以禁用不需要的指标。否则，金丝雀会发布每次金丝雀运行的各种 CloudWatch 指标。
+ **屏幕截图链接** – 您可以在金丝雀步骤完成后将屏幕截图链接到该步骤。为此，您可以使用 **takeScreenshot** 方法捕获屏幕截图，并使用要与屏幕截图关联的步骤的名称。例如，您可能想要执行某个步骤，添加等待时间，然后捕获屏幕截图。
+ **检测信号监控器蓝图可以监控多个 URL** – 您可以使用 CloudWatch 控制台中的检测信号监控蓝图来监控多个 URL，并在金丝雀运行报告的步骤摘要中查看每个 URL 的状态、持续时间、关联的屏幕截图和故障原因。

### syn-nodejs-puppeteer-3.0
<a name="CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.0"></a>

**重要**  
此运行时版本于 2022 年 11 月 13 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ 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 存储桶作为金丝雀存储其日志文件、屏幕截图和 HAR 文件的存储桶。
+ **可用的新函数** – 此版本添加了库函数来检索金丝雀名称和 Synthetics 运行时版本。

  有关更多信息，请参阅 [Synthetics 类](CloudWatch_Synthetics_Canaries_Library_Nodejs.md#CloudWatch_Synthetics_Library_Synthetics_Class_all)。

### syn-nodejs-2.2
<a name="CloudWatch_Synthetics_runtimeversion-2.2"></a>

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

**重要**  
此运行时版本已于 2021 年 5 月 28 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 10.x
+ Puppeteer-core 3.3.0 版
+ Chromium 83.0.4103.0 版

**syn-nodejs-2.2 中的变化**：
+ **作为 HTTP 步骤监控您的金丝雀** – 您现在可以在一个金丝雀中测试多个 API。每个 API 都作为单独的 HTTP 步骤进行测试，CloudWatch Synthetics 会使用步骤指标和 CloudWatch Synthetics 步骤报告监控每个步骤的状态。CloudWatch Synthetics 会为每个 HTTP 步骤创建 ` SuccessPercent` 和 `Duration` 指标。

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

  API 金丝雀蓝图已更新为使用此新功能。
+ **HTTP 请求报告** – 您现在可以查看详细的 HTTP 请求报告，这些报告捕获的是请求/响应标头、响应正文、状态代码、错误和性能计时、TCP 连接时间、TLS 握手时间、第一字节时间和内容传输时间等详细信息。所有使用后台 HTTP/HTTPS 模块的 HTTP 请求都在此处捕获。预设情况下不会捕获标头和响应正文，但可以通过设置配置选项来启用捕获标头和响应正文。
+ **全局和步骤级配置** – 您可以在全局级别设置 CloudWatch Synthetics 配置，这些配置应用于金丝雀的所有步骤。您还可以通过传递配置键/值对来启用或禁用某些选项，在步骤级别覆盖这些配置。

  有关更多信息，请参阅 [SyntheticsConfiguration 类](CloudWatch_Synthetics_Canaries_Library_Nodejs.md#CloudWatch_Synthetics_Library_SyntheticsConfiguration)。
+ **继续执行步骤故障配置** – 您可以选择在步骤故障时继续执行金丝雀。对于 ` executeHttpStep` 函数，预设情况下，此选项处于启用状态。您可以在全局级别设置此选项一次，或者针对每个步骤做出不同的设置。

### syn-nodejs-2.1
<a name="CloudWatch_Synthetics_runtimeversion-2.1"></a>

**重要**  
此运行时版本已于 2021 年 5 月 28 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ Lambda 运行时 Node.js 10.x
+ Puppeteer-core 3.3.0 版
+ Chromium 83.0.4103.0 版

**syn-nodejs-2.1 中的更新**：
+ **可配置的屏幕截图行为** – 提供关闭 UI 金丝雀捕获屏幕截图的功能。在使用以前版本运行时的金丝雀中，UI 金丝雀始终在每个步骤前后捕获屏幕截图。在 `syn-nodejs-2.1` 中，可配置此行为。关闭屏幕截图可以降低您的 Amazon S3 存储成本，并有助于您遵守 HIPAA 法规。有关更多信息，请参阅 [SyntheticsConfiguration 类](CloudWatch_Synthetics_Canaries_Library_Nodejs.md#CloudWatch_Synthetics_Library_SyntheticsConfiguration)。
+ **自定义 Google Chrome 启动参数**：现在，您可以配置当金丝雀启动 Google Chrome 浏览器窗口时使用的参数。有关更多信息，请参阅 [launch(options)](CloudWatch_Synthetics_Canaries_Library_Nodejs.md#CloudWatch_Synthetics_Library_LaunchOptions)。

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

### syn-nodejs-2.0
<a name="CloudWatch_Synthetics_runtimeversion-2.0"></a>

**重要**  
此运行时版本已于 2021 年 5 月 28 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ 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 活动跟踪。**金丝雀启用跟踪后，将针对由使用浏览器、AWS SDK 或 HTTP 或 HTTPS 模块的金丝雀发出的所有调用发送 X-Ray 跟踪。启用了跟踪的 Canary 会显示在 X-Ray 跟踪地图中，即使它们没有向启用了跟踪的其他服务或应用程序发送请求。有关更多信息，请参阅 [金丝雀和 X-Ray 跟踪](CloudWatch_Synthetics_Canaries_tracing.md)。
+ **Synthetics 报告** – CloudWatch Synthetics 会针对每次金丝雀运行创建一个名为 ` SyntheticsReport-PASSED.json` 或 ` SyntheticsReport-FAILED.json` 的报告，其中记录了开始时间、结束时间、状态和故障等数据。报告中还记录金丝雀脚本的每个步骤的 PASSED/FAILED 状态，以及每个步骤捕获的失败和屏幕截图。
+ **无效链接检查器报告** – 此运行时中包含的新版本无效链接检查器会创建一个报告，其中包括已检查的链接、状态代码、故障原因（如有）以及源页面和目标页面屏幕截图。
+ **新 CloudWatch 指标** – Synthetics 在 `CloudWatchSynthetics` 命名空间中发布名为 `2xx`、`4xx`、`5xx` 和 `RequestFailed` 的指标。这些指标会显示金丝雀运行中 200 秒、400 秒、500 秒和请求故障的数量。在此运行时版本中，这些指标仅针对 UI 金丝雀报告，而不针对 API 金丝雀报告。从 ` syn-nodejs-puppeteeer-2.2` 运行时版本开始，也针对 API 金丝雀报告这些指标。
+ **可排序的 HAR 文件** – 您现在可以按状态代码、请求大小和持续时间对 HAR 文件进行排序。
+ **指标时间戳** – 现在基于 Lambda 调用时间而非金丝雀运行结束时间报告 CloudWatch 指标。

**syn-nodejs-2.0 中的错误修复**：
+ 修复了不报告金丝雀构件上载错误的问题。此类错误现在显示为执行错误。
+ 修复了将重定向请求 (3xx) 误记为错误的问题。
+ 修复了从 0 开始编号屏幕截图的问题。现在应从 1 开始编号。
+ 修复了中文和日文字体屏幕截图乱码的问题。

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

### syn-nodejs-2.0-beta
<a name="CloudWatch_Synthetics_runtimeversion-2.0-beta"></a>

**重要**  
此运行时版本已于 2021 年 2 月 8 日弃用。有关更多信息，请参阅 [运行时版本支持策略](CloudWatch_Synthetics_Runtime_Support_Policy.md)。

**主要依赖项**：
+ 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 会针对每次金丝雀运行创建一个名为 ` SyntheticsReport-PASSED.json` 或 ` SyntheticsReport-FAILED.json` 的报告，其中记录了开始时间、结束时间、状态和故障等数据。报告中还记录金丝雀脚本的每个步骤的 PASSED/FAILED 状态，以及每个步骤捕获的失败和屏幕截图。
+ **无效链接检查器报告** – 此运行时中包含的新版本无效链接检查器会创建一个报告，其中包括已检查的链接、状态代码、故障原因（如有）以及源页面和目标页面屏幕截图。
+ **新 CloudWatch 指标** – Synthetics 在 `CloudWatchSynthetics` 命名空间中发布名为 `2xx`、`4xx`、`5xx` 和 `RequestFailed` 的指标。这些指标会显示金丝雀运行中 200 秒、400 秒、500 秒和请求故障的数量。仅针对 UI 金丝雀报告而不针对 API 金丝雀报告这些指标。
+ **可排序的 HAR 文件** – 您现在可以按状态代码、请求大小和持续时间对 HAR 文件进行排序。
+ **指标时间戳** – 现在基于 Lambda 调用时间而非金丝雀运行结束时间报告 CloudWatch 指标。

**syn-nodejs-2.0-beta 中的错误修复**：
+ 修复了不报告金丝雀构件上载错误的问题。此类错误现在显示为执行错误。
+ 修复了将重定向请求 (3xx) 误记为错误的问题。
+ 修复了从 0 开始编号屏幕截图的问题。现在应从 1 开始编号。
+ 修复了中文和日文字体屏幕截图乱码的问题。

### syn-1.0
<a name="CloudWatch_Synthetics_runtimeversion-1.0"></a>

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

**主要依赖项**：
+ Lambda 运行时 Node.js 10.x
+ Puppeteer-core 1.14.0 版
+ 与 Puppeteer-core 1.14.0 匹配的 Chromium 版本