Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Plattform-Skripttools für Ihre Elastic Beanstalk Beanstalk-Umgebungen
In diesem Thema werden Tools beschrieben, die AWS Elastic Beanstalk bietet Umgebungen, die Amazon Linux-Plattformen verwenden. Die Tools befinden sich auf den EC2 Amazon-Instances der Elastic Beanstalk Beanstalk-Umgebungen.
get-config
Verwenden Sie das Tool get-config
, um Umgebungsvariablenwerte und andere Plattform- und Instance-Informationen abzurufen. Das Tool steht unter /opt/elasticbeanstalk/bin/get-config
zur Verfügung.
get-config-Befehle
Jeder get-config
-Tool-Befehl gibt einen bestimmten Typ von Informationen zurück. Verwenden Sie die folgende Syntax, um einen der Befehle des Tools auszuführen.
$ /opt/elasticbeanstalk/bin/get-config command
[ options
]
Im folgenden Beispiel wird der Befehl environment
ausgeführt:
$ /opt/elasticbeanstalk/bin/get-config environment -k PORT
Je nachdem, welchen Befehl und welche Optionen Sie wählen, gibt das Tool ein Objekt (JSONoderYAML) mit Schlüssel-Wert-Paaren oder einem einzelnen Wert zurück.
Sie können dies testen, get-config
indem Sie eine Verbindung SSH zu einer EC2 Instance in Ihrer Elastic Beanstalk Beanstalk-Umgebung herstellen.
Anmerkung
Wenn Sie get-config
zum Testen ausführen, benötigen einige Befehle möglicherweise Stammbenutzerrechte, um auf die zugrunde liegenden Informationen zuzugreifen. Wenn Sie einen Zugriffsberechtigungsfehler erhalten, führen Sie den Befehl unter sudo
erneut aus.
Sie müssen sudo
nicht hinzufügen, wenn Sie das Tool in den Skripts verwenden, die Sie in Ihrer Umgebung bereitstellen. Elastic Beanstalk führt alle Ihre Skripte als Stammbenutzer aus.
In den folgenden Abschnitten werden die Befehle des Tools beschrieben.
Der Befehl get-config optionsettings
gibt ein Objekt zurück, das die Konfigurationsoptionen auflistet, die für die Umgebung festgelegt und von der Plattform auf Umgebungs-Instances verwendet werden. Sie sind nach Namespace organisiert.
$ /opt/elasticbeanstalk/bin/get-config optionsettings
{"aws:elasticbeanstalk:application:environment":{"JDBC_CONNECTION_STRING":""},"aws:elasticbeanstalk:container:tomcat:jvmoptions":{"JVM Options":"","Xms":"256m","Xmx":"256m"},"aws:elasticbeanstalk:environment:proxy":{"ProxyServer":"nginx","StaticFiles":[""]},"aws:elasticbeanstalk:healthreporting:system":{"SystemType":"enhanced"},"aws:elasticbeanstalk:hostmanager":{"LogPublicationControl":"false"}}
Um einen bestimmten Wert für die Konfigurationsoption zurückzugeben, verwenden Sie die Option --namespace
(-n
), um einen Namespace anzugeben, und die Option --option-name
(-o
), um einen Optionsnamen anzugeben.
$ /opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:container:php:phpini
-o memory_limit
256M
Der Befehl get-config environment
gibt ein Objekt zurück, das eine Liste der Umgebungseigenschaften enthält. Dazu gehören sowohl benutzerkonfigurierte als auch die von Elastic Beanstalk bereitgestellten Eigenschaften.
$ /opt/elasticbeanstalk/bin/get-config environment
{"JDBC_CONNECTION_STRING":"","RDS_PORT":"3306","RDS_HOSTNAME":"anj9aw1b0tbj6b.cijbpanmxz5u.us-west-2.rds.amazonaws.com","RDS_USERNAME":"testusername","RDS_DB_NAME":"ebdb","RDS_PASSWORD":"testpassword1923851"}
Elastic Beanstalk bietet beispielsweise Umgebungseigenschaften für die Verbindung zu einer integrierten RDS Amazon-DB-Instance (z. B.RDS_HOSTNAME
). Diese RDS Verbindungseigenschaften erscheinen in der Ausgabe von. get-config environment
Sie werden jedoch nicht in der Ausgabe von get-config optionsettings
angezeigt. Dies liegt daran, dass sie in Konfigurationsoptionen nicht festgelegt wurden.
Wenn Sie eine bestimmte Umgebungseigenschaft zurückzugeben möchten, verwenden Sie die Option --key
(-k
), um einen Eigenschaftsschlüssel anzugeben.
$ /opt/elasticbeanstalk/bin/get-config environment -k TESTPROPERTY
testvalue
Der Befehl get-config container
gibt ein Objekt zurück, das Plattform- und Umgebungskonfigurationswerte für Umgebungs-Instances auflistet.
Das folgende Beispiel zeigt die Ausgabe des Befehls in einer Amazon Linux 2-Tomcat-Umgebung.
$ /opt/elasticbeanstalk/bin/get-config container
{"common_log_list":["/var/log/eb-engine.log","/var/log/eb-hooks.log"],"default_log_list":["/var/log/nginx/access.log","/var/log/nginx/error.log"],"environment_name":"myenv-1da84946","instance_port":"80","log_group_name_prefix":"/aws/elasticbeanstalk","proxy_server":"nginx","static_files":[""],"xray_enabled":"false"}
Um den Wert eines bestimmten Schlüssels zurückzugeben, verwenden Sie die Option --key
(-k
), um den Schlüssel anzugeben.
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name
myenv-1da84946
Der Befehl get-config addons
gibt ein Objekt zurück, das Konfigurationsinformationen von Umgebungs-Add-Ons enthält. Verwenden Sie es, um die Konfiguration einer RDS Amazon-Datenbank abzurufen, die mit der Umgebung verknüpft ist.
$ /opt/elasticbeanstalk/bin/get-config addons
{"rds":{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}}
Sie können das Ergebnis auf zwei Arten einschränken. Um Werte für ein bestimmtes Add-On abzurufen, geben Sie mit der Option --add-on
(-a
) den Namen des Add-On an.
$ /opt/elasticbeanstalk/bin/get-config addons -a rds
{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}
Um den Wert eines bestimmten Schlüssels in einem Add-On zurückzugeben, fügen Sie die Option --key
(-k
) hinzu, um den Schlüssel anzugeben.
$ /opt/elasticbeanstalk/bin/get-config addons -a rds
-k RDS_DB_NAME
ebdb
Der Befehl get-config platformconfig
gibt ein Objekt zurück, das Plattformkonfigurationsinformationen enthält, die mit der Plattformversion konstant sind. Die Ausgabe ist in allen Umgebungen, in denen dieselbe Plattformversion ausgeführt wird, gleich. Das Ausgabeobjekt des Befehls verfügt über zwei eingebettete Objekte:
-
GeneralConfig
– Enthält Informationen, die in den neuesten Versionen aller Amazon-Linux-2- und Amazon-Linux-2023-Plattformzweige konstant sind. -
PlatformSpecificConfig
– Enthält Informationen, die für die Plattformversion konstant sind und für diese spezifisch sind.
Das folgende Beispiel zeigt die Ausgabe des Befehls in einer Umgebung, die den Corretto 11-Plattformzweig Tomcat 8.5 verwendet.
$ /opt/elasticbeanstalk/bin/get-config platformconfig
{"GeneralConfig":{"AppUser":"webapp","AppDeployDir":"/var/app/current/","AppStagingDir":"/var/app/staging/","ProxyServer":"nginx","DefaultInstancePort":"80"},"PlatformSpecificConfig":{"ApplicationPort":"8080","JavaVersion":"11","TomcatVersion":"8.5"}}
Um den Wert eines bestimmten Schlüssels zurückzugeben, verwenden Sie die Option --key
(-k
), um den Schlüssel anzugeben. Diese Schlüssel sind in den beiden eingebetteten Objekten eindeutig. Sie müssen das Objekt, das den Schlüssel enthält, nicht angeben.
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k AppStagingDir
/var/app/staging/
get-config-Ausgabeoptionen
Verwenden Sie die Option --output
, um das Format des Ausgabeobjekts anzugeben. Gültige Werte sind JSON
(Standard) und YAML
. Dies ist eine globale Option. Sie müssen es vor dem Befehlsnamen angeben.
Das folgende Beispiel gibt Werte der Konfigurationsoptionen im folgenden YAML Format zurück.
$ /opt/elasticbeanstalk/bin/get-config --output YAML optionsettings
aws:elasticbeanstalk:application:environment:
JDBC_CONNECTION_STRING: ""
aws:elasticbeanstalk:container:tomcat:jvmoptions:
JVM Options: ""
Xms: 256m
Xmx: 256m
aws:elasticbeanstalk:environment:proxy:
ProxyServer: nginx
StaticFiles:
- ""
aws:elasticbeanstalk:healthreporting:system:
SystemType: enhanced
aws:elasticbeanstalk:hostmanager:
LogPublicationControl: "false"
Pkg-Repo
Anmerkung
Das pkg-repo
-Tool ist nicht für Umgebungen verfügbar, die auf Amazon-Linux-2023-Plattformen basieren. Sie können Paket- und Betriebssystemupdates jedoch manuell auf eine AL2 023-Instanz anwenden. Weitere Informationen finden Sie unter Verwalten von Paketen und Betriebssystem-Updates im Benutzerhandbuch für Amazon Linux 2023
In dringenden Fällen müssen Sie Ihre EC2 Amazon-Instances möglicherweise mit einem Amazon Linux 2-Sicherheitspatch aktualisieren, der noch nicht mit den erforderlichen Elastic Beanstalk-Plattformversionen veröffentlicht wurde. Sie können standardmäßig keine manuelle Aktualisierung für Ihre Elastic-Beanstalk-Umgebungen durchführen. Dies liegt daran, dass die Plattformversionen an eine bestimmte Version des Amazon Linux 2-Repositorys gesperrt sind. Diese Sperre stellt sicher, dass Instances unterstützte und konsistente Softwareversionen ausführen. Für dringende Fälle erlaubt das Tool pkg-repo
eine Problemumgehung. Sie können Yum-Pakete in Amazon Linux 2 manuell aktualisieren, wenn Sie es in einer Umgebung installieren müssen, bevor es in einer neuen Elastic-Beanstalk-Plattformversion veröffentlicht wird.
Das Tool pkg-repo
der Amazon Linux 2-Plattformen bietet die Möglichkeit, die yum
Paket-Repositorys zu entsperren. Sie können dann manuell eine yum update für einen Sicherheitspatch durchführen. Umgekehrt können Sie der Aktualisierung folgen, indem Sie das Tool verwenden, um die Yum-Paket-Repositorys zu sperren, um weitere Aktualisierungen zu verhindern. Das pkg-repo
Tool ist im /opt/elasticbeanstalk/bin/pkg-repo
Verzeichnis aller EC2 Instances in Ihren Elastic Beanstalk Beanstalk-Umgebungen verfügbar.
Änderungen, die das pkg-repo
Tool verwenden, werden nur an der EC2 Instance vorgenommen, auf der das Tool verwendet wird. Sie wirken sich nicht auf andere Instances aus und verhindern nicht zukünftige Aktualisierungen der Umgebung. Die Beispiele später in diesem Thema erklären, wie Sie die Änderungen auf alle Instances anwenden können, indem Sie die pkg-repo
-Befehle aus Skripts und Konfigurationsdateien verwenden.
Warnung
Wir empfehlen dieses Tool für die meistenBenutzer. Alle manuellen Änderungen, die auf eine Version der freigeschalteten Plattform angewendet werden, gelten als Out-of-Band. Diese Option ist nur für Benutzer unter dringenden Umständen geeignet, die die folgenden Risiken akzeptieren können:
-
Für Paketversionen können nicht garantiert werden, dass sie über alle Instances hinweg in Ihren Umgebungen konsistent sind.
-
Wir empfehlen das Tool
pkg-repo
für die meisten Benutzer. Sie wurden nicht auf Elastic Beanstalk unterstützten Plattformen getestet und überprüft.
Wir empfehlen dringend, Best Practices anzuwenden, die Test- und Backout-Pläne beinhalten. Um Best Practices zu vereinfachen, können Sie die Elastic Beanstalk Beanstalk-Konsole und EB verwenden, um eine Umgebung CLI zu klonen und die Umgebung auszutauschen. URLs Weitere Informationen zur Verwendung dieser Vorgänge finden Sie unter BluBlue/Green-Bereitstellungen im Kapitel Managing environments (Verwalten von Umgebungen) in diesem Handbuch.
Wenn Sie vorhaben, Yum-Repository-Konfigurationsdateien manuell zu bearbeiten, führen Sie zuerst das Tool pkg-repo
aus. Das Tool pkg-repo
funktioniert in einer Amazon Linux 2-Umgebung mit manuell bearbeiteten Yum-Repository-Konfigurationsdateien möglicherweise nicht wie vorgesehen. Dies liegt daran, dass das Tool die Konfigurationsänderungen möglicherweise nicht erkennt.
Weitere Informationen zum Amazon Linux-Paket-Repository finden Sie unter dem Thema Paket-Repository im EC2Amazon-Benutzerhandbuch.
pkg-repo-Befehle
Verwenden Sie die folgende Syntax, um einen der Befehle des Tools pkg-repo
auszuführen.
$ /opt/elasticbeanstalk/bin/pkg-repo command
[options
]
Folgende pkg-repo
-Befehle müssen ausgeführt werden:
-
lock— Sperrt das
yum
-Paketrepositorys für eine bestimmte Version -
unlock— Entsperrt das
yum
-Paketrepositorys aus einer bestimmten Version -
status— Listet alle
yum
-Paket-Repositorys und ihren aktuellen Sperrstatus auf -
help— Zeigt allgemeine Hilfe oder Hilfe für einen Befehl an
Die Optionen gelten für die folgenden Befehle:
-
lock
,unlock
undstatus
— Optionen:-h
,--help
oder keine (Standard). -
help
— Optionen:lock
,unlock
,status
oder keine (Standard).
Im folgenden Beispiel wird der Befehl unlock ausgeführt:
$ sudo /opt/elasticbeanstalk/bin/pkg-repo unlock
Amazon Linux 2 core package repo successfully unlocked
Amazon Linux 2 extras package repo successfully unlocked
Im folgenden Beispiel wird der Befehl lock ausgeführt:
$ sudo /opt/elasticbeanstalk/bin/pkg-repo lock
Amazon Linux 2 core package repo successfully locked
Amazon Linux 2 extras package repo successfully locked
Im folgenden Beispiel wird der Befehl status ausgeführt:
$ sudo /opt/elasticbeanstalk/bin/pkg-repo status
Amazon Linux 2 core package repo is currently UNLOCKED
Amazon Linux 2 extras package repo is currently UNLOCKED
Im folgenden Beispiel wird der help-Befehl für den lock-Befehl ausgeführt.
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help lock
Im folgenden Beispiel wird der help-Befehl für das Tool pkg-repo
ausgeführt.
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help
Sie können dies testen, pkg-repo
indem Sie eine Verbindung SSH zu einer Instance in Ihrer Elastic Beanstalk Beanstalk-Umgebung herstellen. Eine SSH Option ist der CLI eb sshEB-Befehl.
Anmerkung
Die Tool pkg-repo
benötigt zum Ausführen Stammbenutzer-Berechtigungen. Wenn Sie einen Zugriffsberechtigungsfehler erhalten, führen Sie den Befehl unter sudo
erneut aus.
Sie müssen sudo
nicht hinzufügen, wenn Sie das Tool in den Skripts verwenden, die Sie in Ihrer Umgebung bereitstellen. Elastic Beanstalk führt alle Ihre Skripte als Stammbenutzer aus.
Beispiele für pkg-repo
Der vorherige Abschnitt enthält Befehlszeilenbeispiele für Tests auf einer einzelnen EC2 Instanz einer Elastic Beanstalk Beanstalk-Umgebung. Diese Vorgehensweise kann beim Testen hilfreich sein. Es aktualisiert jedoch jeweils nur eine Instance, daher ist es nicht praktisch, Änderungen an allen Instances in einer Umgebung anzuwenden.
Ein pragmatischerer Ansatz ist die Verwendung von Plattform-Hook-Skripten oder einer .ebextensions Konfigurationsdatei, um die Änderungen auf alle Instances konsistent anzuwenden.
Im folgenden Beispiel wird pkg-repo
aus einer Konfigurationsdatei im .ebextensions-Folder aufgerufen. Elastic Beanstalk führt die Befehle in der update_package.config
-Datei aus, wenn Sie das Quell-Bundle der Anwendung bereitstellen.
.ebextensions
└── update_package.config
Um die neueste Version des Docker-Pakets zu erhalten, gibt diese Konfiguration das Docker-Paket im yum update-Befehl an.
### update_package.config ### commands: update_package: command: | /opt/elasticbeanstalk/bin/pkg-repo unlock yum update docker -y /opt/elasticbeanstalk/bin/pkg-repo lock yum clean all -y rm -rf /var/cache/yum
Bei dieser Konfiguration werden keine Pakete im yum update-Befehl angegeben. Alle verfügbaren Updates werden als Ergebnis angewendet.
### update_package.config ### commands: update_package: command: | /opt/elasticbeanstalk/bin/pkg-repo unlock yum update -y /opt/elasticbeanstalk/bin/pkg-repo lock yum clean all -y rm -rf /var/cache/yum
Das folgende Beispiel ruft pkg-repo
von einem Bash-Skript als Plattform-Hook auf. Elastic Beanstalk führt die update_package.sh
-Skriptdatei aus, die sich in dem Unterverzeichnis prebuild
befindet.
.platform
└── hooks
└── prebuild
└── update_package.sh
Um die neueste Version des Docker-Pakets zu erhalten, gibt dieses Skript das Docker-Paket im yum update-Befehl an. Wenn der Paketname ausgelassen wird, werden alle verfügbaren Updates angewendet. Das vorherige Beispiel der Konfigurationsdatei zeigt dies.
### update_package.sh ### #!/bin/bash /opt/elasticbeanstalk/bin/pkg-repo unlock yum update docker -y /opt/elasticbeanstalk/bin/pkg-repo lock yum clean all -y rm -rf /var/cache/yum
download-source-bundle (AMInur Amazon Linux)
In Branches der Amazon AMI Linux-Plattform (vor Amazon Linux 2) bietet Elastic Beanstalk ein zusätzliches Tool, nämlich. download-source-bundle
Verwenden Sie dieses, um den Quellcode Ihrer Anwendung während der Bereitstellung Ihrer Plattform herunterzuladen. Das Tool steht unter /opt/elasticbeanstalk/bin/download-source-bundle
zur Verfügung.
Das Beispielskript 00-unzip.sh
befindet sich auf Umgebungs-Instances im Ordner appdeploy/pre
. Es demonstriert, wie download-source-bundle
verwendet wird, um den Anwendungsquellcode während der Bereitstellung in den Ordner /opt/elasticbeanstalk/deploy/appsource
herunterzuladen.