亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查是否已配置 AWS X-Ray

如何檢查是否已配置 AWS X-Ray

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

1 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

在 lambda 的情況下,這段代碼執行時沒有任何恐慌,因為 lambda 創建了一個外觀段,然后您的代碼將創建子段。在非 lambda 環境中,您必須先創建一個段,然后再創建一個子段。如果你不這樣做,它會產生恐慌。現在,如果您想記錄這個恐慌并繼續執行您的單元測試,那么我建議您將 AWS_XRAY_CONTEXT_MISSING 環境變量設置為 LOG_ERROR。它基本上會記錄你的恐慌并繼續執行你的單元測試。



查看完整回答
反對 回復 2022-05-18
  • 1 回答
  • 0 關注
  • 84 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號