本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
测试函数
在将CloudFront 函数部署到上线阶段(生产)之前,您可以测试该函数以确保其按预期运行。要测试函数,您需要提供一个事件对象,该对象表示您的 CloudFront 发行版可能在生产环境中收到的 HTTP 请求或响应。 CloudFront 函数执行以下操作:
-
将提供的事件对象作为输入来运行函数。
-
返回函数的结果(修改后的事件对象)和任何函数日志或错误消息以及函数的计算利用率。有关计算利用率的更多信息,请参阅了解计算利用率。
设置事件对象
在测试函数之前,必须设置用于测试函数的事件对象。有多种选择。
- 选项 1:在不保存的情况下设置事件对象
-
您可以在 CloudFront控制台的可视化编辑器中设置事件对象,而不必将其保存。
您可以使用此事件对象从 CloudFront控制台测试该函数,即使它未保存。
- 选项 2:在可视化编辑器中创建事件对象
-
您可以在 CloudFront控制台的可视化编辑器中设置事件对象,而不必将其保存。您可以为每个函数创建 10 个事件对象,以便您可以测试不同的可能输入。
以这种方式创建事件对象时,您可以使用事件对象在 CloudFront 控制台中测试该函数。您不能使用它通过 Amazon API 或 SDK 来测试函数。
- 选项 3:使用文本编辑器创建事件对象
-
您可以使用文本编辑器以 JSON 格式创建事件对象。有关事件对象结构的信息,请参阅事件结构。
您可以使用此事件对象通过 CLI 测试函数。但是你不能用它来测试 CloudFront控制台中的功能。
使用选项 1 或 2 创建
-
在 CloudFront 控制台中显示 “函数” 页面,然后选择要测试的函数。
-
在函数详细信息页面上,选择测试选项卡。将显示测试函数部分,其中包含包括编辑 JSON 和测试函数的按钮。
-
填写事件类型:
-
如果您的函数修改了 HTTP 请求或根据请求生成了响应,请选择查看器请求。已显示的请求部分适用于此类型。
-
或者选择查看器响应。已显示的请求部分适用于此类型。此外,还会出现响应部分。
-
-
填写您希望在事件中包含的所有字段。处理时,您可以选择编辑 JSON 来查看原始 JSON。
-
如果需要,请保存事件。
您也可以选择 “编辑 JSON” 并复制原始 JSON,然后将其保存在您自己的文件中,而不是 CloudFront。
使用选项 3 创建
使用文本编辑器创建事件对象。将文件存储在计算机可以连接到的目录中。
务必遵循以下指导原则:
-
忽略
distributionDomainName
、distributionId
和requestId
字段。 -
确保标头、Cookie 和查询字符串的名称为小写。
以这种方式创建事件对象的一个选项是使用可视化编辑器创建示例。您可以确保示例的格式正确。然后,您可以复制原始 JSON,并将其粘贴到文本编辑器中,然后保存文件。
有关事件的结构的详细信息,请参阅事件结构。
测试此函数
您可以在 CloudFront 控制台中测试功能,也可以使用测试函数Amazon CLI。
注意:
-
FunctionExecutionLogs
包含函数在console.log()
语句中写入的日志行列表(如果有)。 -
ComputeUtilization
。请参阅了解计算利用率。 -
FunctionOutput
包含函数返回的事件对象。
了解计算利用率
Compute utilization(计算利用率)是函数运行所花费的时间占最大允许时间的百分比。例如,值为 35 表示函数在最大允许时间的 35% 内完成。
如果函数持续超过允许的最大时间,则 CloudFront 会限制该函数。以下列表说明了函数根据计算利用率值受到限制的可能性。
计算利用率值:
-
1 – 50 – 该函数远低于最大允许时间,应在不受限制的情况下运行。
-
51 – 70 – 函数正在接近最大允许时间。考虑优化函数代码。
-
71 — 100 — 该函数非常接近或超过允许的最大时间。 CloudFront 如果将此函数与分布相关联,则可能会限制该函数。