使用boto3更改连接到aws服务

问题描述 投票:0回答:1

在使用之前使用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
amazon-web-services boto3 botocore
1个回答
0
投票

该代码似乎没有做太多。它只是连接到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
© www.soinside.com 2019 - 2024. All rights reserved.