Как я могу получить доступ к низкоуровневому клиенту из экземпляра ресурса Boto 3?

Например, у меня есть этот код:

import boto3 ec2 = boto3.resource('ec2') # Where is the client??? 

Нужно ли мне называть boto3.client('ec2') или есть другой способ?

One Solution collect form web for “Как я могу получить доступ к низкоуровневому клиенту из экземпляра ресурса Boto 3?”

Каждый объект ресурса имеет специальный атрибут, называемый meta , который является типом Python, содержащим информацию об услуге, доступ к клиенту низкого уровня, а иногда и кэш-атрибуты ресурса с ленивым загрузчиком. Вы можете получить к нему доступ так:

 client = ec2.meta.client response = client.reboot_instances(InstanceIds=[...]) 

Это особенно полезно, если вы создали ресурс, используя пользовательские параметры, которые вы не хотите отслеживать позже:

 ec2 = boto3.resource('ec2', region_name='us-west-2') # This client is now a US-West-2 client client = ec2.meta.client 

Как всегда, обязательно ознакомьтесь с официальной документацией . Примечание : этот интерфейс изменен в boto3 # 45 . Раньше meta была dict .

  • boto3 поиск неиспользуемых групп безопасности
  • Как использовать Boto3 для запуска экземпляра EC2 с ролью IAM?
  • Получение общедоступных dns экземпляра EC2 с BOTO3
  • snapshot.wait_until_completed не показывает прогресс и не завершает
  • Ошибка кодирования AWS Boto3 BASE64 при вызове метода client.request_spot_instances
  • Как я могу назвать шлюз API с учетными данными Cognito в Python
  • Как использовать botocore.response.StreamingBody как stdin PIPE
  • Простой способ сохранить содержимое ключа S3 в строке в boto3?
  • Python - лучший язык программирования в мире.