我正在建立一个类似这样的系统:
ValueError Traceback (most recent call last)
<ipython-input-9-e4da8990335b> in <module>()
116 trainPredictPlot = numpy.empty_like(Y1)
117
--> 118 trainPredictPlot[look_back:len(trainPredict)+look_back] = trainPredict
119
120 testPredictPlot = numpy.empty_like(Y1)
ValueError: could not broadcast input array from shape (11253,1) into shape (11253)
因此,API网关调用会触发一个lambda,并将其保存到DynamoDB。其他lambda由该DynamoDB save触发,后者进行一些计算并将新数据保存到dynamodb
我添加了AWS X-Ray跟踪,但是AWS X-Ray将其显示为三个不同的树:
图像中的底部跟踪是由API Gateway触发的,而前两个跟踪是由DynamoDB触发的,然后将其写回
如果我通过DynamoDB手动将跟踪ID传递给下游Lambda,是否可以通过X射线告诉下游Lambda来自DynamoDB?
答案 0 :(得分:1)
是的,那是可能的。本质上,您只需要添加一个X-Amzn-Trace-Id
标头,并将您的持久跟踪ID作为值即可。
来自AWS X-Ray documentation(尽管意图稍有不同):
跟踪标头安全性
跟踪标头可以源自X-Ray SDK,AWS服务或 客户要求。您的应用程序可以从中删除
X-Amzn-Trace-Id
传入请求,以避免用户添加跟踪ID或 根据他们的要求抽样决策。
初始化X-Ray客户端之前如何添加标头取决于您使用的编程语言和X-Ray SDK。如果您的Lambda函数被可能也传递此类标头的服务调用,则还应考虑可能存在的X-Amzn-Trace-Id
标头。