我們有一個(gè)在 Go 中運(yùn)行的 AWS Lambda,在初始化時(shí)運(yùn)行以下命令來初始化 AWS X-Rayerr := xray.Configure(xray.Config{ LogLevel: "info", ServiceVersion: "1.2.3",})在一個(gè)單獨(dú)的存儲(chǔ)庫中,我們有一個(gè) utils 存儲(chǔ)庫,它為我們的內(nèi)部內(nèi)容公開了一個(gè) HTTP 庫。這作為 git 子模塊導(dǎo)入到所有其他 Lambda。代碼如下:ctx, subseg := xray.BeginSubsegment(incomingContext, "Outbound HTTP call")client := xray.Client(&http.Client{Transport: tr})// further downclient.Do(req)// finallysubseg.Close(resp)這在 AWS 上部署時(shí)按預(yù)期工作,生成了一個(gè)漂亮的圖表。問題是在 utils 存儲(chǔ)庫上運(yùn)行單元測試。僅在該存儲(chǔ)庫的上下文中,尚未配置 X-Ray,因此在BeginSubsegment調(diào)用時(shí)我感到恐慌:panic: failed to begin subsegment named 'Outbound HTTP call': segment cannot be found.我想優(yōu)雅地處理未配置 X-Ray 的情況,記錄它并繼續(xù)執(zhí)行。當(dāng) BeginSubsegment 不返回錯(cuò)誤對象時(shí),如何確保正確處理對它的調(diào)用?
如何檢查是否已配置 AWS X-Ray
動(dòng)漫人物
2022-05-18 16:15:45