Verwenden des offiziellen AWS CLI-Docker-Image Version 2 - AWS Command Line Interface

Python 2.7, 3.4 und 3.5 sind für AWS CLI-Version 1 veraltet. Weitere Informationen finden Sie im Abschnitt AWS CLI-Version 1 von Über die AWS CLI-Versionen.

Verwenden des offiziellen AWS CLI-Docker-Image Version 2

In diesem Thema wird beschrieben, wie Sie die AWS CLI Version 2 in Docker ausführen, konfigurieren und die Version kontrollieren. Weitere Informationen zur Verwendung von Docker finden Sie in der Dokumentation von Docker.

Offizielle Docker-Images bieten Isolation, Portabilität und Sicherheit, die AWS direkt unterstützt und verwaltet. Auf diese Weise können Sie die AWS CLI Version 2 in einer containerbasierten Umgebung verwenden, ohne die Installation selbst verwalten zu müssen.

Anmerkung

Die AWS CLI Version 2 ist das einzige Tool, das auf dem offiziellen AWS-Docker-Image unterstützt wird.

Prerequisites

Sie müssen Docker installiert haben. Installationsanweisungen finden Sie auf der Docker-Website.

Um Ihre Installation von Docker zu überprüfen, führen Sie den folgenden Befehl aus und stellen Sie sicher, dass eine Ausgabe vorhanden ist.

$ docker --version Docker version 19.03.1

Ausführen des offiziellen AWS CLI-Docker-Image Version 2

Das offizielle AWS CLI-Docker-Image Version 2 wird auf DockerHub im amazon/aws-cli-Repository gehostet. Wenn Sie den docker run-Befehl zum ersten Mal verwenden, wird das neueste Docker-Image auf Ihren Computer heruntergeladen. Jede nachfolgende Verwendung des docker run-Befehls wird von Ihrer lokalen Kopie ausgeführt.

Verwenden Sie den docker run-Befehl, um das AWS CLI-Docker-Image Version 2 auszuführen.

$ docker run --rm -it amazon/aws-cli command

So funktioniert der Befehl:

  • docker run --rm -it amazon/aws-cli – Das Äquivalent zur aws ausführbaren Datei. Jedes Mal, wenn Sie diesen Befehl ausführen, erstellt Docker einen Container Ihres heruntergeladenen amazon/aws-cli-Image und führt Ihren aws-Befehl aus. Standardmäßig verwendet das Docker-Image die neueste Version von AWS CLI Version 2.

    Um beispielsweise den aws --version-Befehl in Docker aufzurufen, führen Sie Folgendes aus.

    $ docker run --rm -it amazon/aws-cli --version aws-cli/2.1.29 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.0.0dev10
  • --rm – gibt an, dass der Container nach dem Beenden des Befehls bereinigt wird.

  • -it – gibt an, ein Pseudo-TTY mit zu öffnen stdin. Auf diese Weise können Sie Eingaben für die AWS CLI Version 2 bereitstellen, während sie in einem Container ausgeführt wird, z. B. mit den aws configure- und aws help-Befehlen. Wenn Sie Skripte ausführen, ist -it nicht erforderlich. Wenn bei Ihren Skripts Fehler auftreten, lassen Sie -it in Ihrem Docker-Aufruf weg.

Weitere Informationen zum docker run-Befehl finden Sie im Docker-Referenzhandbuch.

Verwenden bestimmter Versionen und Tags

Das offizielle AWS CLI-Docker-Image Version 2 beinhaltet mehrere Versionen, die Sie verwenden können, beginnend mit Version 2.0.6. Wenn Sie eine bestimmte Version der AWS CLI Version 2 ausführen möchten, fügen Sie das entsprechende Tag an Ihren docker run-Befehl an. Wenn Sie den docker run-Befehl zum ersten Mal mit einem Tag verwenden, wird das neueste Docker-Image für dieses Tag auf Ihren Computer heruntergeladen. Jede nachfolgende Verwendung des docker run-Befehls mit diesem Tag wird von Ihrer lokalen Kopie ausgeführt.

Sie können zwei Arten von Tags verwenden:

  • latest – Definiert die neueste Version der AWS CLI Version 2 für das Docker-Image. Wir empfehlen Ihnen, das latest Tag zu verwenden, wenn Sie die neueste Version von AWS CLI Version 2 verwenden möchten. Es gibt jedoch keine Rückwärtskompatibilitätsgarantien, wenn Sie sich auf dieses Tag gebrauchen. Das latest Tag wird standardmäßig im docker run-Befehl verwendet. Um das latest Tag explizit zu verwenden, fügen Sie das Tag an den Container-Image-Namen an.

    $ docker run --rm -it amazon/aws-cli:latest command
  • <major.minor.patch> – Definiert eine bestimmte Version der AWS CLI Version 2 für das Docker-Image. Wenn Sie das Docker-Image in der Produktion verwenden möchten, empfehlen wir Ihnen, eine bestimmte Version der AWS CLI Version 2 zu verwenden, um die Abwärtskompatibilität sicherzustellen. Wenn Sie beispielsweise Version 2.0.6 ausführen möchten, fügen Sie die Version an den Container-Image-Namen an.

    $ docker run --rm -it amazon/aws-cli:2.0.6 command

Aktualisieren auf das neueste Docker-Image

Da das neueste Docker-Image nur bei der ersten Verwendung des docker run-Befehls auf Ihren Computer heruntergeladen wird, müssen Sie ein aktualisiertes Image manuell abrufen. Um manuell auf die neueste Version zu aktualisieren, empfehlen wir Ihnen, das mit latest markierte Image zu beziehen. Wenn Sie das Docker-Image abrufen, wird die neueste Version auf Ihren Computer heruntergeladen.

$ docker pull amazon/aws-cli:latest

Freigeben von Hostdateien, Anmeldeinformationen, Umgebungsvariablen und Konfiguration

Da die AWS CLI Version 2 in einem Container ausgeführt wird, kann die CLI standardmäßig nicht auf das Host-Dateisystem zugreifen, welches Konfiguration und Anmeldeinformationen enthält. Wenn Sie das Host-Dateisystem, die Anmeldeinformationen und die Konfiguration für den Container freigeben möchten, mounten Sie das ~/.aws-Verzeichnis des Hostsystems in den Container unter /root/.aws mit dem an den -v-Befehl angehängten docker run-Flag. Dies ermöglicht es der im Container ausgeführten AWS CLI Version 2, Hostdateiinformationen zu finden.

Linux and macOS
$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli command
Windows Command Prompt
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli command
Windows PowerShell
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli command

Weitere Informationen zum -v-Flag und Mounting finden Sie im Docker-Referenzhandbuch.

Beispiel 1: Bereitstellen von Anmeldeinformationen und Konfiguration

In diesem Beispiel stellen wir Host-Anmeldeinformationen und -konfiguration durch Ausführung des s3 ls-Befehls bereit, um Ihre Buckets in der Amazon Simple Storage Service (Amazon S3) aufzulisten. Die folgenden Beispiele verwenden den Standardspeicherort für AWS CLI-Anmeldeinformationen und Konfigurationsdateien, um einen anderen Speicherort zu verwenden, ändern Sie den Dateipfad.

Linux and macOS
$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo
Windows Command Prompt
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo
Windows PowerShell
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli s3 ls

Sie können Umgebungsvariablen des Systems mithilfe des -e-Flag aufrufen. Um eine Umgebungsvariable zu verwenden, rufen Sie sie nach Namen auf.

Linux and macOS
$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo
Windows Command Prompt
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo
Windows PowerShell
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls

Beispiel 2: Download einer Amazon-S3-Datei auf Ihr Hostsystem

Bei einigen Befehlen bei der AWS CLI-Version 2 können Sie Dateien aus dem Hostsystem im Container lesen oder Dateien aus dem Container in das Hostsystem schreiben.

In diesem Beispiel laden wir das S3-Objekt s3://aws-cli-docker-demo/hello in Ihr lokales Dateisystem herunter, indem wir das aktuelle Arbeitsverzeichnis in das /aws-Verzeichnis des Containers mounten. Durch den Download des hello-Objekts in das /aws-Verzeichnis des Containers wird die Datei auch im aktuellen Arbeitsverzeichnis des Hostsystems gespeichert.

Linux and macOS
$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello
Windows Command Prompt
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello
Windows PowerShell
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v /aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .

Führen Sie Folgendes aus, um sicherzustellen, dass die heruntergeladene Datei im lokalen Dateisystem vorhanden ist.

Linux and macOS
$ cat hello Hello from Docker!
Windows
$ type hello Hello from Docker!

Beispiel 3: Verwenden der Umgebungsvariablen AWS_PROFILE

Sie können Umgebungsvariablen des Systems mithilfe des -e-Flag aufrufen. Rufen Sie jede Umgebungsvariablen auf, die Sie verwenden möchten. In diesem Beispiel stellen wir Host-Anmeldeinformationen, Konfiguration und die Umgebungsvariable AWS_PROFILE bereit, wenn wir den s3 ls-Befehl ausführen, um Ihre Buckets in Amazon Simple Storage Service (Amazon S3) aufzulisten.

Linux and macOS
$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo
Windows
$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo
Windows PowerShell
C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls

Verkürzen des Docker-Befehls

Um den Docker-aws-Befehl zu verkürzen, empfehlen wir Ihnen, die Funktion Ihres Betriebssystems,um einen symbolic link (symlink) oder alias unter Linux und macOS oder doskey unter Windows zu erstellen. Um den aws-Alias festzulegen, können Sie einen der folgenden Befehle ausführen.

  • Für einfachen Zugriff auf aws-Befehle führen Sie Folgendes aus.

    Linux and macOS
    $ alias aws='docker run --rm -it amazon/aws-cli'
    Windows Command Prompt
    C:\> doskey aws=docker run --rm -it amazon/aws-cli $*
    Windows PowerShell
    C:\> Function AWSCLI {docker run --rm -it amazon/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
  • Für den Zugriff auf das Host-Dateisystem und die Konfigurationseinstellungen bei Verwendung von aws-Befehlen führen Sie Folgendes aus.

    Linux and macOS
    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'
    Windows Command Prompt
    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli $*
    Windows PowerShell
    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v /aws amazon/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
  • Wenn Sie eine bestimmte Version zuweisen möchten, die in Ihrem aws-Alias verwendet werden soll, fügen Sie Ihr Versionstag an.

    Linux and macOS
    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli:2.0.6'
    Windows Command Prompt
    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli:2.0.6 $*
    Windows PowerShell
    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v /aws amazon/aws-cli:2.0.6 $args} Set-Alias -Name aws -Value AWSCLI

Nachdem Sie Ihren Alias festgelegt haben, können Sie die AWS CLI Version 2 so in einem Docker-Container ausführen, als ob sie auf Ihrem Hostsystem installiert wäre.

$ aws --version aws-cli/2.1.29 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.0.0dev10