Этот код, кажется, не делает много. Это просто подключение к сервису AWS.
Эквивалент boto3, вероятно, равен:
client = boto3.client(serviceName)
Регион может быть определен в стандартном .aws/config
файле или как:
client = boto3.client(serviceName, region_name='ap-southeast-2')
Я недавно преобразовал некоторый код из boto
в boto3
, и каждая строка в значительной степени нуждалась в изменении. Результат, однако, оказался намного чище.
Стоит также попытаться понять разницу между:
boto3
клиент: делает обычные вызовы API для AWS
boto3
resource: набор объектов более высокого уровня, который облегчает взаимодействие с ресурсами, а не использует стандартные вызовы 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