Umgebungseigenschaften und andere Softwareeinstellungen
Auf der Konfigurationsseite Modify software (Software ändern) können Sie die Software auf den Elastic Compute Cloud (Amazon EC2)-Instances konfigurieren, auf denen Ihre Anwendung ausgeführt wird. Sie können Umgebungseigenschaften, AWS X-Ray Debugging, das Speichern und Streamen von Instance-Protokollen sowie plattformspezifische Einstellungen konfigurieren.

Themen
Plattformspezifische Einstellungen konfigurieren
Für die meisten Elastic Beanstalk-Plattformen können Sie neben den standardmäßigen Optionen für alle Umgebungen auch sprach- und Framework-spezifische Einstellungen festlegen. Diese werden im Abschnitt Platform options (Plattformoptionen) der Seite Modify software (Software ändern) angezeigt und können die folgenden Formen annehmen.
-
Vordefinierte Umgebungseigenschaften – Die Ruby-Plattform verwendet Umgebungseigenschaften für Framework-Einstellungen wie
RACK_ENV
undBUNDLE_WITHOUT
. -
Platzhalter-Umgebungseigenschaften – Die Tomcat-Plattform definiert eine Umgebungseigenschaft namens
JDBC_CONNECTION_STRING
, die keinen bestimmten Wert erhält. Solche Einstellungen waren auf älteren Plattformversionen gängiger. -
Konfigurationsoptionen – Die meisten Plattformen legen Konfigurationsoptionen in plattformspezifischen oder freigegebenen Namespaces wie
aws:elasticbeanstalk:xray
oderaws:elasticbeanstalk:container:python
fest.
So konfigurieren Sie plattformspezifische Einstellungen in der Elastic Beanstalk-Konsole
Öffnen Sie die Elastic-Beanstalk-Konsole
und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus. -
Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.
Anmerkung Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.
Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.
-
Wählen Sie in der Konfigurationskategorie Software Edit (Bearbeiten) aus.
-
Nehmen Sie unter Platform options (Plattformoptionen) die erforderlichen Änderungen an der Optionseinstellung vor.
-
Wählen Sie Apply (Anwenden) aus.
Informationen zu den plattformspezifischen Optionen und zum Abrufen von Umgebungseigenschaftswerten in Ihrem Code finden Sie im Thema zu Plattformen für Ihre Sprache bzw. Ihr Framework:
-
Docker – Konfigurieren von Docker-Umgebungen
-
.NET Core unter Linux – Verwenden der .NET Core unter Linux-Plattform
Konfigurieren von Umgebungseigenschaften
Mithilfe von Environment properties (Umgebungseigenschaften) können Sie Verschlüsselungen, Endpunkte, Debugging-Einstellungen und andere Informationen an Ihre Anwendung übergeben. Mithilfe von Umgebungseigenschaften können Sie Anwendungen zu unterschiedlichen Zwecken in mehreren Umgebungen ausführen, z. B. Entwicklung, Testing, Staging und Produktion.
Wenn Sie darüber hinaus eine Datenbank zu Ihrer Umgebung hinzufügen, legt Elastic Beanstalk Umgebungseigenschaften wie RDS_HOSTNAME
fest, die Sie im Anwendungscode auslesen können, um ein Verbindungsobjekt oder eine Verbindungszeichenfolge zu erstellen.
In den meisten Fällen werden Umgebungseigenschaften als Umgebungsvariablen übergeben, das Verhalten ist jedoch abhängig von der Plattform. Die Java SE-Plattform legt beispielsweise Umgebungsvariablen fest, die Sie mit System.getenv
abrufen. Die Tomcat-Plattform dagegen legt Java-Systemeigenschaften fest, die Sie mit System.getProperty
abrufen. Im Allgemeinen sind Eigenschaften nicht sichtbar, wenn Sie eine Verbindung zu einer Instance herstellen und env
ausführen.
So konfigurieren Sie Umgebungseigenschaften in der Elastic Beanstalk-Konsole
Öffnen Sie die Elastic-Beanstalk-Konsole
und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus. -
Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.
Anmerkung Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.
Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.
-
Wählen Sie in der Konfigurationskategorie Software Edit (Bearbeiten) aus.
-
Geben Sie unter Environment properties (Umgebungseigenschaften) Schlüssel/Wert-Paare ein.
-
Wählen Sie Apply (Anwenden) aus.
Beschränkungen von Umgebungseigenschaften
-
Schlüssel dürfen beliebige alphanumerische Zeichen sowie die folgenden Symbole enthalten:
_ . : / + \ - @
Die aufgeführten Symbole gelten für Umgebungseigenschaftsschlüssel, möglicherweise aber nicht für Umgebungsvariablennamen auf der Plattform Ihrer Umgebung. Wenn Sie sicherstellen möchten, dass Ihre Umgebungsvariablen mit allen Plattformen kompatibel sind, beschränken Sie sich auf folgendes Muster:
[A-Z_][A-Z0-9_]*
-
Werte dürfen beliebige alphanumerische Zeichen, Leerzeichen sowie die folgenden Symbole enthalten:
_ . : / = + \ - @ ' "
Anmerkung Einfache und doppelte Anführungszeichen in Werten müssen durch das Escape-Zeichen geschützt werden.
-
Schlüssel können bis zu 128 Zeichen enthalten. Werte können bis zu 256 Zeichen enthalten.
-
Bei Schlüsseln und Werten wird die Groß-/Kleinschreibung berücksichtigt.
-
Die Gesamtgröße aller Umgebungseigenschaften darf 4.096 Bytes nicht überschreiten, wenn diese als Zeichenfolgen im Format
Schlüssel
=Wert
gespeichert werden.
Softwareeinstellung Namespaces
Mithilfe einer Konfigurationsdatei können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Konfigurationsoptionen können durch den Elastic Beanstalk-Service oder die verwendete Plattform definiert und in Namespaces organisiert werden.
Sie können mit den Konfigurationsdateien von Elastic Beanstalk Umgebungseigenschaften und Konfigurationsoptionen in Ihrem Quellcode festlegen. Verwenden Sie den aws:elasticbeanstalk:application:environmentNamespace, um Umgebungseigenschaften zu definieren.
Beispiel .ebextensions/options.config
option_settings:
aws:elasticbeanstalk:application:environment:
API_ENDPOINT: www.example.com/api
Wenn Sie AWS CloudFormationbenutzerdefinierte Ressourcen mithilfe von Konfigurationsdateien oder -Vorlagen erstellen, können Sie mit einer AWS CloudFormation-Funktion Informationen zu der Ressource abrufen und diese während der Bereitstellung dynamisch einer Umgebungseigenschaft zuweisen. Im folgenden Beispiel aus dem GitHub-Repository elastic-beanstalk-samplesNOTIFICATION_TOPIC
zugewiesen wird.
-
Wenn Sie eine AWS CloudFormation-Funktion verwenden, um eine Umgebungseigenschaft zu definieren, zeigt die Elastic-Beanstalk-Konsole den Wert der Eigenschaft an, bevor die Funktion ausgewertet wird. Sie können das get-config-Plattformskript verwenden, um die Werte der Umgebungseigenschaften zu bestätigen, die für Ihre Anwendung verfügbar sind.
-
Die Multicontainer-Docker-Plattform verwendet kein AWS CloudFormation zum Erstellen von Container-Ressourcen. Dies hat zur Folge, dass diese Plattform die Definition von Umgebungseigenschaften mit AWS CloudFormation-Funktionen nicht unterstützt.
Beispiel .Ebextensions/sns-topic.config
Resources:
NotificationTopic:
Type: AWS::SNS::Topic
option_settings:
aws:elasticbeanstalk:application:environment:
NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'
Sie können mithilfe dieser Funktion auch Informationen aus AWS CloudFormation-Pseudoparametern bereitstellen. In diesem Beispiel wird die derzeitige Region abgerufen und einer Eigenschaft namens zugewiesen AWS_REGION
.
Beispiel .Ebextensions/env-regionname.config
option_settings:
aws:elasticbeanstalk:application:environment:
AWS_REGION: '`{"Ref" : "AWS::Region"}`'
Die meisten Elastic Beanstalk-Plattformen definieren zusätzliche Namespaces mit Optionen zur Konfiguration von Software, die auf der Instance ausgeführt wird, wie den Reverse-Proxy, der Anforderungen an Ihre Anwendung weiterleitet. Weitere Informationen zu den für Ihre Plattform verfügbaren Namespaces finden Sie unter:
-
Java SE – Java SE-Konfigurations-Namespace
-
Tomcat – Tomcat-Konfigurations-Namespaces
-
.NET Core unter Linux – .NET Core unter Linux-Konfigurations-Namespace
-
.NET – Der Namespace aws:elasticbeanstalk:container:dotnet:apppool
-
Node.js – Namespace für Node.js-Konfigurationen
-
PHP – Der Namespace aws:elasticbeanstalk:container:php:phpini
-
Python – Namespaces der Python-Konfiguration
Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie die Konfigurationsoptionen auch unter Verwendung der Konsole, gespeicherter Konfigurationen, der EB CLI oder der einrichten AWS CLI. Weitere Informationen finden Sie unter Konfigurationsoptionen.
Zugreifen auf Umgebungseigenschaften
In den meisten Fällen können Sie in Ihrem Anwendungscode auf Umgebungseigenschaften wie Umgebungsvariablen zugreifen. In der Regel werden Umgebungseigenschaften jedoch nur an die Anwendung übergeben und können nicht angezeigt werden, indem Sie sich mit einer Instance in Ihrer Umgebung verbinden und ausführen env
.
-
Go –
os.Getenv
endpoint := os.Getenv("API_ENDPOINT")
-
Java SE –
System.getenv
String endpoint = System.getenv("API_ENDPOINT");
-
Tomcat –
System.getProperty
String endpoint = System.getProperty("API_ENDPOINT");
-
.NET Core unter Linux –
Environment.GetEnvironmentVariable
string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
-
.NET –
appConfig
NameValueCollection appConfig = ConfigurationManager.AppSettings; string endpoint = appConfig["API_ENDPOINT"];
-
Node.js –
process.env
var endpoint = process.env.API_ENDPOINT
-
PHP –
$_SERVER
$endpoint = $_SERVER['API_ENDPOINT'];
-
Python –
os.environ
import os endpoint = os.environ['API_ENDPOINT']
-
Ruby –
ENV
endpoint = ENV['API_ENDPOINT']
Außerhalb des Anwendungscodes, beispielsweise in Skripten, die während der Bereitstellung ausgeführt werden, können Sie auf Umgebungseigenschaften mit dem get-config-Plattformskript zugreifen. Im GitHub-Repository elastic-beanstalk-samplesget-config
verwendet wird.