aws-lambda - 如何为自包含的 lambda@edge 函数创建没有源的 CloudFront 分配?
问题描述
我在 AWS Lambda 上有一个小的 Node.js 函数,它返回一个非常简单的动态响应,例如:
exports.handler = async (event, context) => {
const response = {
statusCode: 200,
body: "Hello World " + Math.random(),
};
return response;
};
我想通过 lambda@edge 在公共网络上部署它。为此,我需要将它连接到 CloudFront 分配。但是,CloudFront 要求我选择一个源。此功能不需要原点。
是否可以在没有 CloudFront 源的情况下部署它,或者我是否需要创建一个虚拟页面,例如 S3 上的静态文件?
解决方案
不要创建虚拟页面。您可以将任意域名设置为分发来源。
如果将函数用作查看器请求处理程序,则可以设置任何域名,例如dev.null
.
如果将函数用作 Origin Request 处理程序,则域名必须是现有的有效名称,例如example.com
. 正如 AWS 支持所说,CloudFront 对源域执行 DNS 有效性检查,但不会向域发送请求(如果函数返回响应)。
推荐阅读
- python - Excel 公式重新计算不起作用
- javascript - 在 Node.js 中处理“原始数据”并在 Node Express 端点中传递数据
- unit-testing - 模拟基接口属性不能通过派生接口的模拟工作
- python - Opencv:如何在图像上绘制圆形轮廓
- react-native-android - 如何在 react-native 中播放和暂停视频?
- pandas - python中具有条件的列的总和
- php - 使用 php 从 url 获取传递的变量
- hangouts-chat - 如何在google hangout chat中删除Webhook发送的消息
- security - 绕过 Origin 标头检查和 CSRF 攻击
- excel - 当 SAP 弹出消息告诉我们没有找到数据时,如何继续运行 VBA 宏?