ERROR 验证错误:Lambda 函数结果验证失败,该函数尝试删除只读标头,标头名称:Content-Length
Posted
技术标签:
【中文标题】ERROR 验证错误:Lambda 函数结果验证失败,该函数尝试删除只读标头,标头名称:Content-Length【英文标题】:ERROR Validation error: Lambda function result failed validation, the function tried to delete read-only header, headerName : Content-Length 【发布时间】:2021-10-26 12:47:41 【问题描述】:每当我尝试添加响应标头时,CloudFront 都会向我抛出
ERROR 验证错误:Lambda 函数结果验证失败,函数尝试删除只读标头,标头名称:Content-Length。
ERROR 验证错误:Lambda 函数结果验证失败,函数尝试删除只读标头,标头名称:Content-Encoding。
const response =
status: '302',
statusDescription: 'Found',
headers:
'location': [
key: 'location',
value: 'https://abc.test.io'
],
'set-cookie': [
key: 'set-cookie',
value: 'sessiontoken='+sessionObjectData.session.sessionId+'; Secure; HttpOnly'
]
callback(null, response)
有人可以让我知道我在这里做错了什么吗?顺便说一句,我正在使用查看器响应事件
【问题讨论】:
任何人,谁对此有任何想法? 看起来没有解决方法 【参考方案1】:如CloudFront functions docs 中所述,无法修改边缘函数的某些响应标头(包括“Content-Length”)。您可以尝试只更新您需要更改的标题,而不影响其他标题:
const response = event.Records[0].cf.response;
response.status = 302;
response.statusDescription = 'Found';
response.headers['location'] = [ key: 'Location', value:'https://abc.test.io'];
【讨论】:
以上是关于ERROR 验证错误:Lambda 函数结果验证失败,该函数尝试删除只读标头,标头名称:Content-Length的主要内容,如果未能解决你的问题,请参考以下文章
如何在 cloudwatch 上跟踪 appsync 验证错误?
Alexa 技能工具包 -Lambda 函数 - 无法验证 SpeechletRequest (java)