繁体   English   中英

使用本地放大模拟 api 时出错:请求有一个 'X-Amzn-Trace-Id' HTTP header 保留给 AWS X-Ray 跟踪 header

[英]Getting error when using local amplify mock api: The request has a 'X-Amzn-Trace-Id' HTTP header which is reserved for AWS X-Ray trace header

我目前正在使用 Amplify 来设置我的后端,因为 Appsync 是我堆栈的关键部分。

但是,我还使用 SQS 将某些消息发布到队列中。 使用 lambda 的代码内编辑器可以轻松完成此操作,但由于我现在在本地运行 lambda 函数,因此我现在无法将消息发送到队列,并出现以下错误:

InvalidParameterValue:请求具有“X-Amzn-Trace-Id”HTTP header,这是为 AWS X-Ray 跟踪 header 保留的,并且具有无效值“amplify-mock-x-amzn-trace-id”

这是我将消息发送到队列中的代码。

response = await sqs.sendMessageBatch(slackParams).promise().catch(async (err) => { console.log( response from sqs: ${err} ); });

一旦我放大推送,代码在云 lambda 上运行良好,但只有当我放大模拟 api 时才会出现问题。(在本地测试期间,我无法添加到队列中)

有什么方法可以在本地模拟我的 SQS 设置吗? 任何帮助表示赞赏!

我刚开始收到同样的错误,但是在向 sns 发送消息时。 它已经工作了很长一段时间,但问题是昨天开始出现的。

当您在本地运行时,您可以通过环境变量向标头添加有效的跟踪 ID,例如process.env._X_AMZN_TRACE_ID = 'Root=1-63b6ffe7-2c48b4e36086hhhf21d16c8c;Parent=51740oo32a9d2e68;Sampled=0'它应该停止打扰你。 绝对是亚马逊方面的一个错误,他们会使用无效值自动填充此 header,但似乎如果您传入任何有效X-Amzn-Trace-Id它将起作用。 我在我的 function 中添加了一行来打印跟踪 ID,在云端运行它,并检查日志以获取有效 ID。 也许上面建议的代码对你有用,但你可能必须在云上运行才能自己获得一个 id。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM