在哪里使用AWS X射线所有修补程序python

问题描述

如前所述,我们可以使用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.pyb.py

import a
import b

在此流程中,boto3将被修补两次。

我找到的唯一解决方案是仅从文件内部导入boto3,例如my_boto3.py,该文件将导入boto3并对其进行修补。

修补boto3有什么好的做法?谢谢

解决方法

您可以简单地在主函数中调用patch_all()。只需遵循说明here,它就可以在同一应用程序中修补的所有库(functions and classes)中工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...