lambda@edge 没有被云端触发
lambda@edge not getting triggered with cloudfront
我正在使用 lambda@edge 通过云端重定向我的网站。
我已将版本化的 lambda arn 附加到我的云前端缓存行为到它具有的所有 4 个事件。
当我访问我的云端端点时,它显示
502 ERROR
The request could not be satisfied.
The Lambda function returned invalid json: The json output must be an object type.
当我检查我的 lambda 日志/调用指标时,我根本没有看到任何命中。
这背后的原因可能是什么?
我尽力找到了为什么我的 lambda 没有被触发的修复程序??
Lambda@Edge 和 CloudFront 有一些共同点 "gotchas"。您需要:
- 发布 Lambda 函数的新版本
- 将 CloudFront Lambda 关联更新为您的新版本,例如
arn:aws:lambda:us-east-1:572007530218:function:gofaas-WebAuthFunction:45
- 在 请求者
的区域中查找 Lambda@Edge 日志
这与 "normal" Lambda Web 控制台流程不同,后者保存代码更改并从监控选项卡跳转到日志。
我错过了在我的 lambda 代码中的 header 下添加区域。
由于 lambda@edge 在边缘位置运行,我们需要动态提及该区域,以便它知道在 运行 在最近的边缘位置时将日志写入何处。
'x-lae-region': [ { key: 'x-lae-region', value: process.env.AWS_REGION } ]
const response = {
status: '302',
statusDescription: 'Found',
headers: {
location: [{
key: 'Location',
value: 'http://<destinationdomainname>/goto/hello.html',
}],
'x-lae-region': [ { key: 'x-lae-region', value: process.env.AWS_REGION } ],
},
};
我正在使用 lambda@edge 通过云端重定向我的网站。
我已将版本化的 lambda arn 附加到我的云前端缓存行为到它具有的所有 4 个事件。
当我访问我的云端端点时,它显示
502 ERROR
The request could not be satisfied.
The Lambda function returned invalid json: The json output must be an object type.
当我检查我的 lambda 日志/调用指标时,我根本没有看到任何命中。
这背后的原因可能是什么?
我尽力找到了为什么我的 lambda 没有被触发的修复程序??
Lambda@Edge 和 CloudFront 有一些共同点 "gotchas"。您需要:
- 发布 Lambda 函数的新版本
- 将 CloudFront Lambda 关联更新为您的新版本,例如
arn:aws:lambda:us-east-1:572007530218:function:gofaas-WebAuthFunction:45
- 在 请求者 的区域中查找 Lambda@Edge 日志
这与 "normal" Lambda Web 控制台流程不同,后者保存代码更改并从监控选项卡跳转到日志。
我错过了在我的 lambda 代码中的 header 下添加区域。
由于 lambda@edge 在边缘位置运行,我们需要动态提及该区域,以便它知道在 运行 在最近的边缘位置时将日志写入何处。
'x-lae-region': [ { key: 'x-lae-region', value: process.env.AWS_REGION } ]
const response = {
status: '302',
statusDescription: 'Found',
headers: {
location: [{
key: 'Location',
value: 'http://<destinationdomainname>/goto/hello.html',
}],
'x-lae-region': [ { key: 'x-lae-region', value: process.env.AWS_REGION } ],
},
};