创建 Canary - Amazon CloudWatch
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建 Canary

重要

确保您使用 Synthetics Canary 仅监控终端节点以及您拥有所有权或权限APIs的位置。根据 Canary 频率设置,这些终端节点可能会遇到流量增加的情况。

使用CloudWatch控制台创建 Canary 时,您可以使用 提供的蓝图CloudWatch创建 Canary,也可以编写自己的脚本。有关更多信息,请参阅使用 Canary 蓝图.

如果您将自己的脚本用于 AWS CloudFormation Canary,也可以使用 创建 Canary。有关更多信息,请参阅 中的 AWS CloudFormation 用户指南AWS::Synthetics::Canary。

如果您正在编写自己的脚本,可以使用 CloudWatch Synthetics 已在库中内置的多个函数。有关更多信息,请参阅Canary 运行时版本.

创建 Canary

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择 Canaries.

  3. 选择 Create Canary (创建 Canary).

  4. 选择以下选项之一:

    • 要将您的 Canary 基于蓝图脚本,请选择 Use a blueprint (使用蓝图),然后选择要创建的 Canary 的类型。有关每种类型的蓝图执行的操作的更多信息,请参阅使用 Canary 蓝图.

    • 要上传您自己的 node.js 脚本以创建自定义 Canary,请选择 Upload a script (上传脚本).

      然后,您可以将脚本拖动到 Script (脚本) 区域,或选择 Browse files (浏览文件) 以导航到文件系统中的脚本。

    • 要从 S3 存储桶导入脚本,请选择 Import from S3 (从 S3 导入). 然后,在 Source location (源位置) 下,输入 Canary 的完整路径或选择 Browse S3 (浏览 S3).

      您必须对您使用的 S3 存储桶具有 s3:GetObjects3:GetObjectVersion 权限。存储桶必须位于您在其中创建 Canary 的同一 AWS 区域内。

  5. Name (名称) 下,输入 Canary 的名称。此名称将用于许多页面,因此,我们建议您为该 Canary 提供一个描述性名称,以将它与其他 Canary 区分开来。

  6. Application or endpoint URL (应用程序或终端节点 URL) 下,输入您希望 Canary 测试的 URL。此 URL 必须包含协议(例如 https://)。

    如果您希望 Canary 测试 VPC 上的终端节点,还必须在此过程随后的步骤中输入有关 VPC 的信息。

  7. 如果您为 Canary 使用自己的脚本,请在 Lambda handler (Lambda 处理程序) 下,输入您希望 Canary 开始的入口点。您输入的字符串必须以 结尾。.handler.

  8. 如果您在脚本中使用环境变量,请选择 Environment variables (环境变量),然后为脚本中定义的每个环境变量指定一个值。有关更多信息,请参阅环境变量.

  9. Schedule (计划) 下,选择是只运行此 Canary 一次还是按计划定期运行它。当您使用 CloudWatch 控制台创建 Canary 时,Canary 的频率选项有每分钟一次、每五分钟一次和每小时一次。如果您使用 AWS CLI 或 APIs 创建 Canary,则可以选择其他频率选项。

  10. Data retention (数据保留) 下,指定保留有关失败和成功的 Canary 运行的信息的时间。范围为 1 - 455 天。

  11. Data Storage (数据存储) 下,选择要用于存储 Canary 运行中的数据的 S3 存储桶。存储桶名称不能包含句点 (.)。如果将此选项保留空白,将使用或创建默认 S3 存储桶。

    如果您使用的是 syn-nodejs-puppeteer-3.0 或更高版本的运行时,当您在文本框中输入存储桶的 URL 时,您可以在当前区域或不同区域中指定存储桶。如果您使用的是较早的运行时版本,存储桶必须位于当前区域中。

  12. Access permissions (访问权限) 下,选择是创建 IAM 角色来运行 Canary 还是使用现有角色。

    如果您在创建 Canary 时使用 CloudWatch 控制台为 Canary 创建角色,则无法将该角色重新用于其他 Canary,因为这些角色仅特定于一个 Canary。如果您已手动创建了适用于多个 Canary 的角色,则可以使用现有角色。

    要使用现有角色,您必须具有 iam:PassRole 权限,以将角色传递到 Synthetics 和 Lambda. 您还必须拥有 iam:GetRole 权限。

  13. (可选)在 Alarms (警报) 下,选择是否要为此 Canary 创建默认CloudWatch警报。如果您选择创建 警报,则它们是使用以下名称约定创建的:Synthetics-Alarm-canaryName-index

    index 是一个数字,表示为该 Canary 创建的每个不同的警报。第一个警报的索引为 1,第二个警报的索引为 2,以此类推。

  14. (可选)要让此 Canary 测试 VPC 上的终端节点,请选择 VPC settings (VPC 设置),然后执行以下操作:

    1. 选择托管终端节点的 VPC。

    2. 选择 VPC 上的一个或多个子网。您必须选择私有子网,因为在执行期间无法向Lambda实例分配 IP 地址时,无法将Lambda实例配置为在公有子网中运行。有关更多信息,请参阅配置 Lambda 函数以访问 VPC 中的资源.

    3. 在 VPC 上选择一个或多个安全组。

    如果终端节点位于 VPC 上,必须启用您的 Canary 才能向 CloudWatch 和 Amazon S3. 发送信息。有关更多信息,请参阅在 VPC 上运行 Canary.

  15. (可选)在 Tags (标签) 下,添加一个或多个键值对作为此 Canary 的标签。标签可帮助您识别和组织 AWS 资源并跟踪 AWS 成本。有关更多信息,请参阅标记您的 Amazon CloudWatch 资源.

  16. (可选)在 Active tracing (活动跟踪) 下,选择是否为此 Canary 启用活动X-Ray跟踪。此选项仅在 Canary 使用运行时版本 syn-nodejs-2 或更高版本时可用。有关更多信息,请参阅Canary 和 X-Ray 跟踪.

为 Canary 创建的资源

创建 Canary 时,将创建以下资源:

  • 一个名为 IAM 的 CloudWatchSyntheticsRole-canary-name-uuid 角色(如果您使用 CloudWatch 控制台创建 Canary 并指定为 Canary 创建新角色)

  • 一个名为 IAM 的 CloudWatchSyntheticsPolicy-canary-name-uuid. 策略。

  • 一个名为 的 S3 存储桶。cw-syn-results-accountID-region.

  • 名为 Synthetics-Alarm-MyCanaryName 的警报(如果您为要为 Canary 创建警报)。

  • Lambda 函数和层(如果您使用蓝图创建 Canary)。这些资源具有前缀 cwsyn-MyCanaryName.

  • CloudWatch Logs 名为 的 日志组/aws/lambda/cwsyn-MyCanaryName