Verwenden Sie das AWS SDK für Python (boto) in einer Proxy-Umgebung

Als ich ein Python-Skript mit der Boto-Bibliothek zum Spielen mit AWS erstellt habe, habe ich es notiert, da es in die Proxy-Umgebung passt. Bitte beachten Sie, dass es sich um schlechtes Know-how handelt, was nicht die beste Vorgehensweise ist.

Umgebung

・ Linux (RHEL6.5) ・ Python 3.3.6 ・ AWS SDK für Python (boto2.34.0) ・ In der HTTP-Proxy-Umgebung

Veranstaltung

Wenn Sie Proxy verwenden, wird beim Aufrufen der API die folgende Fehlermeldung angezeigt.

# python3
>>> import boto.ec2
>>> conn = boto.ec2.connect_to_region(‘ap-northeast-1’)
>>> conn.get_only_instances(instance_ids=[‘i-0de8dc14’])
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/ec2/connection.py”, line 623, in get_only_instances
    next_token=next_token)
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/ec2/connection.py”, line 682, in get_all_reservations
    [(‘item’, Reservation)], verb=‘POST’)
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/connection.py”, line 1166, in get_list
    response = self.make_request(action, params, path, verb)
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/connection.py”, line 1112, in make_request
    return self._mexe(http_request)
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/connection.py”, line 913, in _mexe
    self.is_secure)
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/connection.py”, line 705, in get_http_connection
    return self.new_http_connection(host, port, is_secure)
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/connection.py”, line 747, in new_http_connection
    connection = self.proxy_ssl(host, is_secure and 443 or 80)
  File “/opt/python3.3.6/lib/python3.3/site-packages/boto/connection.py”, line 796, in proxy_ssl
    sock.sendall(“CONNECT %s HTTP/1.0\r\n” % host)
TypeError: ‘str’ does not support the buffer interface

Vorläufige Massnahmen

Es sieht so aus, als ob die SSL-Kommunikation nicht gut verlaufen ist Beim Herstellen einer Verbindung konnte ich eine Verbindung herstellen, indem ich "is_secure = False" hinzufügte. Wie der Name des Einstellungswerts jedoch andeutet, handelt es sich wahrscheinlich um eine Nicht-SSL-Kommunikation. Sie sollten daher vorsichtig mit der Verwendungsszene sein.

>>> conn = boto.ec2.connect_to_region(‘ap-northeast-1’,is_secure=False)
>>> conn.get_only_instances(instance_ids=[‘i-0de8dc14’])
>>> [Instance:i-0de8dc14]

boto config

Es scheint, dass die Boto-Bibliothek zur Laufzeit mit einigen Einstellungen geladen werden kann.

  • /etc/boto.cfg - for site-wide settings that all users on this machine > will use
  • ~/.boto - for user-specific settings
  • ~/.aws/credentials - for credentials shared between SDKs

Boto Config — boto v2.35.1

In Bezug auf Proxy scheint es gut zu sein, Folgendes zu beschreiben.

~/.boto


[Boto]
proxy = myproxy.com
proxy_port = 8080

In meiner Umgebung schien dies jedoch aus irgendeinem Grund nicht gut lesbar zu sein, weshalb ich als vorübergehende Maßnahme eine harte Codierung entwickelte. Wenn Sie Know-how in diesem Bereich haben, kommentieren Sie bitte.

Recommended Posts

Verwenden Sie das AWS SDK für Python (boto) in einer Proxy-Umgebung
boto3 (AWS SDK für Python) Hinweis
Verwenden Sie die Ressourcen-API anstelle der Client-API im AWS SDK für Python (Boto3).
Von Boto3 verwendete Anmeldeinformationen (AWS SDK für Python)
Entwicklung des AWS SDK für Python (Boto3) in Visual Studio 2017
Verwenden Sie smbus mit python3 in einer pyenv-Umgebung
Verwendung von pip3 in einer Proxy-Umgebung Hinweis
Rufen Sie Polly aus dem AWS SDK für Python auf
Docker unter Proxy-Umgebung
Wartung der Python-Umgebung für Projekte
Flottenbereitstellung mit AWS IoT SDK für Python v2
Verwenden Sie Python, das von pyenv für die PL / Python-Ausführungsumgebung installiert wurde
Aufbau einer Python-Umgebung für Mac
Python3-Umgebungskonstruktion (für Anfänger)
Erstellen einer Python-Umgebung unter Windows 7
[Zum Organisieren] Python-Entwicklungsumgebung
Führen Sie das AWS IoT Device SDK für Python auf Raspberry Pi aus
Pip-Installation (Windows) unter Proxy-Umgebung
Python Memo Pip unter Proxy, easy_install
Verwenden Sie als nächstes Python (Flask) für Heroku!
Installieren Sie Networkx in der Python 3.7-Umgebung zur Verwendung in Malware Data Science-Büchern
Optionen für die Python-Entwicklungsumgebung für Mai 2020
Emacs-Einstellungen für die Python-Entwicklungsumgebung
AWS Layer Creation Script für Python
Python3 TensorFlow für Mac-Umgebungskonstruktion
Web Scraping für Anfänger in Python (1)
Kurzreferenztabelle unter Proxy-Umgebung
Web Scraping für Anfänger in Python (4) -1
Ich habe problemlos eine Betriebsumgebung für Python3 + Tornado unter AWS EC2 erstellt.
(Für mich) Flask_AWS_1 (Installieren Sie PHP, MySQL, phpMyAdmin, Python in einer virtuellen AWS-Umgebung)
[AWS] Hinweise zur Problemvermeidung bei der Installation von awscli und boto3 in einer Python 2.7-Umgebung
Verwenden Sie den Befehl pip in einer HTTP-Proxy-Umgebung, für die eine Authentifizierung erforderlich ist
Erstellen Sie eine Umgebung für das in Blender integrierte Python
Python-Entwicklungsumgebung für macOS mit venv 2016
Verwenden Sie DeepL mit Python (für die Artikelübersetzung)
Konstruktionsverfahren für die Python-Projektumgebung (für Windows)
AWS ~ Für diejenigen, die es verwenden werden ~
Vergleichstabelle für Python-Umgebungstools für Rubyist
Erstellen wir eine virtuelle Umgebung für Python
Die Einstellung für die Amateur-Python-Umgebung (für MAC) wird erstellt
[Mac] Erstellen einer virtuellen Umgebung für Python
[Python] Organisieren der Verwendung für Anweisungen
Installieren Sie Python3 mit Pythonz in einer Macports-Umgebung
Verwendung von Tensorflow unter Docker-Umgebung
Verwendung von "deque" für Python-Daten
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten
Erstellen einer Python-Entwicklungsumgebung für die KI-Entwicklung
Vorbereitung der Python-Umgebung (erste Verwendung)
Bereiten Sie die Entwicklungsumgebung für Python unter AWS Cloud9 vor (Pip-Installation und Zeitumstellung)
Selen + WebDriver (Chrome) + Python | Erstellen einer Umgebung zum Scraping
Verwenden Sie Azure ML Python SDK 2: Verwenden Sie ein Dataset als Eingabe-Teil 2
Erstellen einer Umgebung zum Ausführen von Python-Skripten (für Mac)
Verwenden Sie vorerst Logger mit Python
Verwenden Sie mit pyenv mehrere Versionen der Python-Umgebung
Wickeln Sie C mit Cython für Python ein
Mit dem Evernote SDK für Python 3 erhalten Sie Informationen zu Notizen
Bildverarbeitung mit Python Environment Setup für Windows
Verwenden Sie Python in Ihrer Umgebung von Win Automation
Verwalten Sie AWS mit der Python-Bibliothek Boto