创建金丝雀 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建金丝雀

重要

确保使用 Synthetics 金丝雀来仅监控您拥有所有权或权限的终端节点和 API。根据金丝雀运行频率设置,这些端点可能会面临流量增加的情况。

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

如果使用的是您自己的金丝雀脚本,您还可以使用 Amazon CloudFormation 创建金丝雀。有关更多信息,请参阅 Amazon CloudFormation 用户指南中的 AWS::Synthetics::Canary

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

注意

当您创建金丝雀时,所创建的其中一个层是前面加上 Synthetics 的 Synthetics 层。该层归 Synthetics 服务账户所有,且包含运行时系统代码。

创建金丝雀
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Application SignalsSynthetics 金丝雀

  3. 选择 Create Canary (创建金丝雀)

  4. 选择以下操作之一:

    • 要将某个蓝图脚本作为金丝雀的基础,请选择 Use a blueprint (使用蓝图),然后选择要创建的金丝雀的类型。有关每种类型的蓝图执行的操作的更多信息,请参阅使用金丝雀蓝图

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

      然后,您可以将脚本拖入 Script (脚本) 区域,或者选择 Browse files (浏览文件),在文件系统中浏览找到该脚本。

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

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

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

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

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

  7. 如果您将自己的脚本用于金丝雀,请在 Lambda handler (Lambda 处理程序) 下,输入您希望金丝雀开始的入口点。如果您使用 syn-nodejs-puppeteer-3.4syn-python-selenium-1.1 之前版本的运行时,则您输入的字符串必须以 .handler 结尾。如果您使用 syn-nodejs-puppeteer-3.4syn-python-selenium-1.1 或之后版本的运行时,则此限制不适用。

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

  9. Schedule(计划)下,选择是运行此金丝雀一次、使用 rate 表达式连续运行,还是使用 cron 表达式对其进行计划。

    • 当您使用 CloudWatch 控制台创建连续运行的金丝雀时,您可以在每分钟一次到每小时一次之间的范围内选择一个运行速率。

  10. (可选)要为金丝雀设置超时值,请选择 Additional configuration(其它配置),然后指定该超时值。此值不要短于 15 秒钟,以预留 Lambda 冷启动以及启动金丝雀工具的时间。

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

    此设置仅影响 CloudWatch Synthetics 存储和显示在控制台中的数据。它不会影响 Amazon S3 存储桶中存储的数据,也不会影响 Canary 发布的日志或指标。

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

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

  13. (可选)默认情况下,金丝雀将自己的构件存储在 Amazon S3 上,并使用 Amazon 托管式 Amazon KMS 密钥将构件静态加密。您可以通过选择 Data Storage(数据存储)部分的 Additional configuration(其他配置)来使用不同的加密选项。然后,您可以选择用于加密的密钥类型。有关更多信息,请参阅 加密金丝雀构件

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

    如果您使用 CloudWatch Synthetics 创建角色,则其会自动包含所有必要的权限。如果您要自己创建角色,请参阅 金丝雀的必需角色和权限 获取有关必要权限的信息。

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

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

  15. (可选)在 Alarms(告警)下,选择是否要为此金丝雀创建默认 CloudWatch 告警。如果选择创建告警,则会按照以下命名约定创建告警:Synthetics-Alarm-canaryName-index

    index 是一个数字,代表为此金丝雀创建的各个不同的告警。第一个告警的索引为 1,第二个告警的索引为 2,依此类推。

  16. (可选)要让此金丝雀测试 VPC 上的终端节点,请选择 VPC settings (VPC 设置),并执行以下操作:

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

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

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

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

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

  18. (可选)在 Active tracing(活动跟踪)下,选择是否启用此金丝雀的活动 X-Ray 跟踪。仅当金丝雀使用 syn-nodejs-2.0 或更高的运行时版本时,此选项才可用。有关更多信息,请参阅 金丝雀和 X-Ray 跟踪

为金丝雀创建的资源

创建金丝雀时,将创建以下资源:

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

  • 一个名为 CloudWatchSyntheticsPolicy-canary-name-uuid 的 IAM policy。

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

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

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

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