【发布时间】:2020-09-10 11:38:57
【问题描述】:
如文档所述,我们可以使用 patch_all 自动为 s3 和 sqs 等 aws 服务创建子段。我的问题是我应该在哪里调用这个方法。
例如,假设有 2 个文件使用 boto3 并且我们要修补。
因为它们是独立的,所以我们必须在它们两个中调用patch_all。因此,我们会:
文件a.py:
import boto3
from xray_recorder import patch_all
patch_all()
文件b.py:
import boto3
from xray_recorder import patch_all
patch_all()
现在,假设我们有一个名为 c.py 的模块,它同时导入了 a.py 和 b.py:
import a
import b
在此流程中,boto3 将被修补两次。
我找到的唯一解决方案是仅从文件内部导入boto3,例如命名为my_boto3.py,该文件导入boto3 并对其进行修补。
修补boto3 的最佳做法是什么?谢谢
【问题讨论】:
标签: python amazon-web-services aws-xray