创建金丝雀
重要
确保使用 Synthetics 金丝雀来仅监控您拥有所有权或权限的终端节点和 API。根据金丝雀运行频率设置,这些端点可能会面临流量增加的情况。
当您使用 CloudWatch 控制台创建金丝雀时,您可以使用 CloudWatch 提供的蓝图创建您的金丝雀,也可以编写您自己的脚本。有关更多信息,请参阅 使用金丝雀蓝图。
如果使用的是您自己的金丝雀脚本,您还可以使用 Amazon CloudFormation 创建金丝雀。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的 AWS::Synthetics::Canary。
如果您正在编写自己的脚本,则可以使用 CloudWatch Synthetics 已内置在库中的多个函数。有关更多信息,请参阅 Synthetics 运行时版本。
注意
当您创建金丝雀时,所创建的其中一个层是前面加上
Synthetics 的 Synthetics 层。该层归 Synthetics 服务账户所有,且包含运行时系统代码。
创建金丝雀
通过 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在导航窗格中,选择 Application Signals、Synthetics 金丝雀。
-
选择 Create Canary (创建金丝雀)。
-
选择下列选项之一:
-
要将某个蓝图脚本作为金丝雀的基础,请选择 Use a blueprint (使用蓝图),然后选择要创建的金丝雀的类型。有关每种类型的蓝图执行的操作的更多信息,请参阅使用金丝雀蓝图。
-
要上传您自己的 node.js 脚本以创建自定义金丝雀,请选择 Upload a script (上传脚本)。
然后,您可以将脚本拖入 Script (脚本) 区域,或者选择 Browse files (浏览文件),在文件系统中浏览找到该脚本。
-
要从 S3 存储桶导入脚本,请选择 Import from S3 (从 S3 导入)。然后,在 Source location (源位置) 下,输入金丝雀的完整路径或选择 Browse S3 (浏览 S3)。
您必须对您使用的 S3 存储桶具有
s3:GetObject和s3:GetObjectVersion权限。存储桶必须位于您在其中创建金丝雀的同一 Amazon 区域内。
-
-
在 Name (名称) 下,输入金丝雀的名称。此名称将用于许多页面,因此,我们建议您为该金丝雀提供一个描述性名称,以将它与其他金丝雀区分开来。
-
在 Application or endpoint URL (应用程序或终端节点 URL) 下,输入您希望金丝雀测试的 URL。此 URL 必须包含协议(例如 https://)。
如果您希望金丝雀测试 VPC 上的终端节点,还必须在此过程随后的步骤中输入有关 VPC 的信息。
-
如果您将自己的脚本用于金丝雀,请在 Lambda handler (Lambda 处理程序) 下,输入您希望金丝雀开始的入口点。有关 Lambda 处理程序格式的信息,请参阅 Synthetics 运行时版本。
-
在脚本编辑器的运行时版本下,选择要执行金丝雀的 Synthetics 运行时版本。有关 Synthetics 运行时版本的信息,请参阅 Synthetics 运行时版本。
在浏览器配置下,您可以启用浏览器来测试金丝雀。必须至少选择一个浏览器。
-
如果在脚本中使用环境变量,请选择 Environment variables(环境变量),然后为脚本中定义的每个环境变量指定值。有关更多信息,请参阅 环境变量。
-
在 Schedule(计划)下,选择是运行此金丝雀一次、使用 rate 表达式连续运行,还是使用 cron 表达式对其进行计划。
-
当您使用 CloudWatch 控制台创建连续运行的金丝雀时,您可以在每分钟一次到每小时一次之间的范围内选择一个运行速率。
-
有关为金丝雀调度编写 cron 表达式的更多信息,请参阅 使用 cron 安排金丝雀运行。
-
-
(可选)要为金丝雀设置超时值,请选择 Additional configuration(其它配置),然后指定该超时值。此值不要短于 15 秒钟,以预留 Lambda 冷启动以及启动金丝雀工具的时间。
-
在 Data retention (数据保留) 下,指定保留有关失败和成功的金丝雀运行的信息的时间。范围为 1 - 455 天。
此设置会影响 GetCanaryRuns 操作返回的信息范围以及 Synthetics 控制台中显示的信息范围。
它不会影响 Amazon S3 存储桶中存储的数据,也不会影响 Canary 发布的日志或指标。
无论金丝雀的数据留存期长短,控制台中显示的信息范围都有一定限制。在 Synthetics 控制台主视图中,相对和绝对时间范围限制为七天。在特定金丝雀的 Synthetics 控制台视图中,相对时间范围限制为七天,绝对时间范围限制为 30 天。
-
在数据存储下,选择要用于存储来自金丝雀运行的数据的 Amazon S3 存储桶。存储桶名称不能包含句点 (.)。如果将此选项保留空白,将使用或创建默认 Amazon S3 存储桶。
-
(可选)默认情况下,金丝雀将自己的构件存储在 Amazon S3 上,并使用 Amazon 托管式 Amazon KMS 密钥将构件静态加密。您可以通过选择 Data Storage(数据存储)部分的 Additional configuration(其他配置)来使用不同的加密选项。然后,您可以选择用于加密的密钥类型。有关更多信息,请参阅 加密金丝雀构件。
-
在 Access permissions(访问权限)下,选择是创建 IAM 角色来运行金丝雀,还是使用现有角色。
如果您使用 CloudWatch Synthetics 创建角色,则其会自动包含所有必要的权限。如果您要自己创建角色,请参阅 金丝雀的必需角色和权限 获取有关必要权限的信息。
如果您在创建金丝雀时使用 CloudWatch 控制台为金丝雀创建角色,则无法将该角色重新用于其他金丝雀,因为这些角色仅特定于一个金丝雀。如果您已手动创建了适用于多个金丝雀的角色,则可以使用现有角色。
若要使用现有角色,您必须具有
iam:PassRole权限,以将角色传递到 Synthetics 和 Lambda。您还必须拥有iam:GetRole权限。 -
(可选)在 Alarms(告警)下,选择是否要为此金丝雀创建默认 CloudWatch 告警。如果选择创建告警,则会按照以下命名约定创建告警:
Synthetics-Alarm-canaryName-indexindex是一个数字,代表为此金丝雀创建的各个不同的告警。第一个告警的索引为 1,第二个告警的索引为 2,依此类推。 -
(可选)要让此金丝雀测试 VPC 上的终端节点,请选择 VPC settings (VPC 设置),并执行以下操作:
-
选择托管终端节点的 VPC。
-
选择 VPC 上的一个或多个子网。您必须选择私有子网,因为在执行过程中无法为 Lambda 实例分配 IP 地址时,无法将 Lambda 实例配置为在公有子网中运行。有关更多信息,请参阅配置 Lambda 函数以访问 VPC 中的资源。
-
在 VPC 上选择一个或多个安全组。
-
要允许此金丝雀的出站 IPv6 流量,请选择允许双堆栈子网的 IPv6 流量。这样能让金丝雀通过 IPv6 监测仅限 IPv6 和启用了双堆栈的端点。
您可以通过授予金丝雀互联网访问权限并适当配置 VPC 子网来监测 VPC 外部的端点。有关更多信息,请参阅 在 VPC 上运行金丝雀。
如果端点位于 VPC 上,则必须启用您的金丝雀才能向 CloudWatch 和 Amazon S3 发送信息。有关更多信息,请参阅 在 VPC 上运行金丝雀。
-
-
(可选)在 Tags (标签) 下,添加一个或多个键/值对作为此金丝雀的标签。标签可帮助您识别和组织 Amazon 资源并跟踪 Amazon 成本。有关更多信息,请参阅 标记 Amazon CloudWatch 资源。
如果您希望应用于金丝雀的标签也应用于金丝雀使用的 Lambda 函数,请在标签复制下选择 Lambda 函数。如果您选择此选项,CloudWatch Synthetics 将使金丝雀上的标签和 Lambda 函数保持同步:
-
Synthetics 会将您在此处指定的相同标签同时应用于您的金丝雀和 Lambda 函数。
-
如果您稍后更新金丝雀的标签并保持选中此选项,Synthetics 会修改 Lambda 函数上的标签以与金丝雀保持同步。
-
-
(可选)在 Active tracing(活动跟踪)下,选择是否启用此金丝雀的活动 X-Ray 跟踪。主动跟踪仅适用于 Puppeteer 和 Java 运行时。有关更多信息,请参阅 金丝雀和 X-Ray 跟踪。
为金丝雀创建的资源
创建金丝雀时,将创建以下资源:
-
一个名为
CloudWatchSyntheticsRole-的 IAM 角色(如果您使用 CloudWatch 控制台创建金丝雀并指定为金丝雀创建新角色)canary-name-uuid -
一个名为
CloudWatchSyntheticsPolicy-的 IAM 策略。canary-name-uuid -
一个名为
cw-syn-results-的 S3 存储桶。accountID-region -
名为
Synthetics-Alarm-的警报(如果您为要为金丝雀创建警报)。MyCanaryName -
Lambda 函数和层(如果您使用蓝图创建金丝雀)。这些资源具有前缀
cwsyn-。MyCanaryName -
名为
/aws/lambda/cwsyn-的 CloudWatch Logs 日志组。MyCanaryName-randomId