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