Amazon web services lambda@edge日志和调用计数未显示?
我已经创建了云端分布,并用触发器连接了lambdaAmazon web services lambda@edge日志和调用计数未显示?,amazon-web-services,amazon-cloudfront,aws-lambda-edge,Amazon Web Services,Amazon Cloudfront,Aws Lambda Edge,我已经创建了云端分布,并用触发器连接了lambda `Event type: viewer-requestPath pattern: something/index.html` Event type: origin-requestPath pattern: something/index.html 根据我的lambda,当我点击端点时,它会重定向到我想要重定向的页面 但我在任何地区都看不到我的lambda日志 它也没有显示调用计数 有人面对过这个问题吗 这是我的lambda代码 'use
`Event type: viewer-requestPath pattern: something/index.html`
Event type: origin-requestPath pattern: something/index.html
根据我的lambda,当我点击端点时,它会重定向到我想要重定向的页面
但我在任何地区都看不到我的lambda日志
它也没有显示调用计数
有人面对过这个问题吗
这是我的lambda代码
'use strict';
exports.handler = (event, context, callback) => {
/*
* Generate HTTP redirect response with 302 status code and Location header.
*/
console.log('event',event);
const response = {
status: '302',
statusDescription: 'Found',
headers: {
location: [{
key: 'Location',
value: 'http://<domainname>/something/root.html',
}],
},
};
callback(null, response);
};
“严格使用”;
exports.handler=(事件、上下文、回调)=>{
/*
*生成带有302状态代码和位置头的HTTP重定向响应。
*/
console.log('event',event);
常数响应={
状态:“302”,
statusDescription:'找到',
标题:{
地点:[{
键:'位置',
值:'http:///something/root.html',
}],
},
};
回调(空,响应);
};
如下修改您的函数:
const response = {
status: '302',
statusDescription: 'Found',
headers: {
location: [{
key: 'Location',
value: 'http://<domainname>/something/root.html',
}],
'x-lae-region': [ { key: 'x-lae-region', value: process.env.AWS_REGION } ],
},
};
const响应={
状态:“302”,
statusDescription:'找到',
标题:{
地点:[{
键:'位置',
值:'http:///something/root.html',
}],
'x-lae-region':[{key:'x-lae-region',值:process.env.AWS_region}],
},
};
它所做的是捕获lambda函数正在运行的区域——它将在测试期间显示us-east-1,但在部署后会显示一个准确的值
您的浏览器、curl等捕获的响应现在将包括x-lae-region:some aws region
,以指示链接到处理您的特定请求的边缘的区域。检查特定区域的日志——您应该在那里看到日志和调用
还要注意,对于原始请求(而不是查看器请求)触发器,CloudFront缓存Lambda生成的响应,因此只有在缓存未命中时才会调用该函数。如果CloudFront缓存了响应,触发器将不会触发——缓存的响应将在不联系源的情况下提供。如果您启用此函数,但没有看到响应中的更改,则几乎可以肯定您正在查看缓存的响应,并希望执行失效处理。我遇到了一个非常类似的问题,它让我耽搁了几个小时。对于Lambda@EdgeAWS控制台选项卡中Lambda指标上的数据对于调用和日志来说似乎并不准确。至少它们还不完整
我在这个选项卡上只看到了与源自控制台的“测试”事件调用相关的指标。我能够在CloudWatch中找到我的完整调用指标,该指标与我的Lambda以us-east-1.LambdaName-EdgeLambda-14DOC7T1Y1SGR的名称部署到的区域相同,测试调用以类似的指标减去该区域列出。日志也以Lambda部署到的区域命名。例如,/aws/lambda/us-east-1.LambdaName-EdgeLambda-14DOC7T1Y1SGR。我的测试日志列在一个单独的日志组中,名称中没有区域。感谢您的回复。我改变了lambda密码。我仍然没有得到日志。除了弗吉尼亚州,我没有在任何其他地区找到日志组/lambda。我创建了新的缓存行为,并对其进行了测试。当您访问站点时,您在响应头中看到了哪个区域?非常感谢。它可以工作,我可以看到日志,但没有指标lambda计数保持0。太好了。。。但是您在响应标题中看到了哪个区域?谢谢。您可能会考虑使用更改您的连接似乎来自的地理区域,以便您可以看到其他区域的行为,以帮助确定该问题是否也存在于其他区域。