Есть ли способ для эффективного сброса инстанцированного ресурса boto3? Я пишу тесты для некоторого кода и издеваюсь над окружающей средой, используя мото. В каждом тестовом примере используется общий ресурс boto3, поэтому в настоящее время мне приходится разбирать любые макеты Например, в настоящее время, если я вызываю run_instances()
, то впоследствии должен быть вызван метод terminate_instances()
.
Я попытался установить для объекта значение None, затем снова вызвал метод resource()
, но безуспешно.
import boto3
from moto import mock_ec2
m = mock_ec2()
m.start()
aws_ec2_resource = boto3.resource('ec2', region_name='us-west-2')
print('Fresh ec2 resource')
# Get mocked vpc_id
for vpc in aws_ec2_resource.vpcs.all():
vpc_id = vpc.id
print(f'vpc_id: {vpc_id}')
print('Setting ec2 resource to None')
aws_ec2_resource = None
print('Instantiating new resource')
aws_ec2_resource = boto3.resource('ec2', region_name='us-west-2')
print('New ec2 resource')
# Get mocked vpc_id
for vpc in aws_ec2_resource.vpcs.all():
vpc_id = vpc.id
print(f'New vpc_id: {vpc_id}')
Вывод:
Fresh ec2 resource
vpc_id: vpc-186689a0
Setting ec2 resource to None
Instantiating new resource
New ec2 resource
New vpc_id: vpc-186689a0
Одним из способов может быть просто смоделировать новый VP C, например, в начале теста и использовать этот вновь созданный VP C. Тем не менее, по-прежнему любопытно сбросить ресурс.