如何从 lambda@edge 访问云端源?
How to hit the cloudfront origin from lambda@edge?
我在 Cloudfront 中使用 lambda@edge 完成了重定向。
如何在特定条件下从 lambda@edge 返回原点??
这可能吗??
在请求触发器中,如果您想 return 控制 CloudFront 并允许它继续正常处理请求,您可以使用原始请求和 return.[=15 调用回调=]
return callback(null, event.Records[0].cf.request);
如果您之前在处理程序中捕获了请求对象...
const request = event.Records[0].cf.request;
...那么您可以 return 那个副本:
return callback(null, request);
请注意,您可以在没有 return
的情况下调用 callback()
,但使用上面显示的样式可确保处理函数立即退出并且不会执行此点以下的代码。
当您处于请求触发器中并且回调的第二个参数看起来像请求(而不是响应)时,CloudFront 会继续处理并假定您不想生成响应。请求将发送到源。
如果您修改源请求触发器中的请求对象,然后 return 如上所示,这会修改 CloudFront 发送到源的内容,或者在某些情况下甚至可以更改请求将发送到哪个源如果您的分发有多个来源,则发送至。
我在 Cloudfront 中使用 lambda@edge 完成了重定向。
如何在特定条件下从 lambda@edge 返回原点??
这可能吗??
在请求触发器中,如果您想 return 控制 CloudFront 并允许它继续正常处理请求,您可以使用原始请求和 return.[=15 调用回调=]
return callback(null, event.Records[0].cf.request);
如果您之前在处理程序中捕获了请求对象...
const request = event.Records[0].cf.request;
...那么您可以 return 那个副本:
return callback(null, request);
请注意,您可以在没有 return
的情况下调用 callback()
,但使用上面显示的样式可确保处理函数立即退出并且不会执行此点以下的代码。
当您处于请求触发器中并且回调的第二个参数看起来像请求(而不是响应)时,CloudFront 会继续处理并假定您不想生成响应。请求将发送到源。
如果您修改源请求触发器中的请求对象,然后 return 如上所示,这会修改 CloudFront 发送到源的内容,或者在某些情况下甚至可以更改请求将发送到哪个源如果您的分发有多个来源,则发送至。