Angular 自动气象站Lambda@Edge将查询字符串附加到响应
简要概述 我在S3存储桶上托管一个角度应用程序。我还得到了一个Cloudfront发行版来处理HTTPS和重定向 我尝试根据用户连接到的URL来形成querystring参数 2个例子Angular 自动气象站Lambda@Edge将查询字符串附加到响应,angular,amazon-web-services,aws-lambda,amazon-cloudfront,aws-lambda-edge,Angular,Amazon Web Services,Aws Lambda,Amazon Cloudfront,Aws Lambda Edge,简要概述 我在S3存储桶上托管一个角度应用程序。我还得到了一个Cloudfront发行版来处理HTTPS和重定向 我尝试根据用户连接到的URL来形成querystring参数 2个例子 test.example.com --> example.com?id=test hello.example.com --> example.com?id?hello 到目前为止,我试图实现一个AWSlambda@Edge功能但到目前为止没有任何效果。如果我试图操纵请求它不会有任何效果,如果我试图操
test.example.com --> example.com?id=test
hello.example.com --> example.com?id?hello
到目前为止,我试图实现一个AWSlambda@Edge功能但到目前为止没有任何效果。如果我试图操纵请求
它不会有任何效果,如果我试图操纵响应
重定向不起作用,我会得到一个S3 bucket错误或Cloudfront错误
'use strict';
const remove_suffix = '.example.com';
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
const headers = request.headers;
const host_header = headers.host[0].value;
if(host_header.endsWith(remove_suffix)){
request.querystring = 'id=' + host_header.substring(0,host_header.length - remove_suffix.length);
}
return callback(null,request);
};
1) 我应该使用哪个触发器
2) Cloudfront设置中可能缺少哪些设置
3) 我的Lambda函数是否错误?您可能希望确保在Cloudfront发行版的
行为设置中,选项查询字符串转发和缓存
设置为非无(提高缓存)
您可以在中找到有关该选项的更多信息。您可能希望确保在Cloudfront发行版的
行为
设置中,选项查询字符串转发和缓存
未设置为无(改进缓存)
有关该选项的更多信息,请参见thx中的建议。我收到folliwing错误
502错误,请求无法满足。Lambda函数结果验证失败:该函数尝试添加、删除或更改只读标头你介意帮我做这个吗?问题中的代码有什么变化吗?正如我所看到的,原始headers对象没有在那里修改。根据文档中的示例,覆盖request.querystring
是完全有效的:我发布的代码仍然是一样的。我目前正在使用查看器响应
触发器。好的,我会尝试将触发器更改为查看器请求
,看看这是否有什么不同。现在我被重定向到s3存储桶,但没有任何查询字符串,我可以访问thx以获取建议。我收到folliwing错误502错误,请求无法满足。Lambda函数结果验证失败:该函数尝试添加、删除或更改只读标头你介意帮我做这个吗?问题中的代码有什么变化吗?正如我所看到的,原始headers对象没有在那里修改。根据文档中的示例,覆盖request.querystring
是完全有效的:我发布的代码仍然是一样的。我目前正在使用查看器响应
触发器。好的,我会尝试将触发器更改为查看器请求
,看看这是否有什么不同。现在我被重定向到s3存储桶,但没有任何我可以访问的查询字符串