在使用之前使用boto2的函数时必须完成的所有更改以及如何对boto3进行更改是一个这样的函数示例,它位于boto2上,需要更改为boto3
def aws(serviceName, module=boto):
conn = connections.get(serviceName)
if conn is None:
service = getattr(module, serviceName)
conn = service.connect_to_region(region)
connections[serviceName] = conn
return conn
该代码似乎没有做太多。它只是连接到AWS服务。
boto3等价物可能是:
client = boto3.client(serviceName)
该区域可以在标准的.aws/config
文件中定义,或者:
client = boto3.client(serviceName, region_name='ap-southeast-2')
我最近将一些代码从boto
转换为boto3
,每一行都非常需要改变。然而,结果更清洁了。
值得尝试理解之间的区别:
boto3
客户端:对AWS进行正常的API调用boto3
资源:更高级别的对象集,使其更容易与资源交互,而不是使用标准API调用(例如vpc.subnets()
vs describe-subnets(VPC=xxx)
)原始代码块似乎将其信息存储在connections
数组(在别处定义)中以供重用。因此,等效代码块将是:
def aws(serviceName):
conn = connections.get(serviceName)
if conn is None:
conn = boto3.client(serviceName, region)
connections[serviceName] = conn
return conn