Ich habe in letzter Zeit an einer Django-Anwendung gearbeitet und versucht, sie mit Amazon Elastic Beanstalk zu kombinieren.
In meiner Datei .ebextensions/python.config
habe ich Folgendes festgelegt:
Wenn ich jedoch auf den Server schaue, werden keine solchen Umgebungsvariablen gesetzt (und daher nicht zugänglich, wenn ich os.getenv('ProductionBucket')
Ich stieß auf diese Seite , die anscheinend versucht, alle Namespaces zu dokumentieren. Ich habe auch versucht, PARAM1
als Optionsname zu verwenden, aber ähnliche Ergebnisse erzielt.
Wie kann ich Umgebungsvariablen in Amazon Elastic Beanstalk festlegen?
BEARBEITEN :
Ich habe auch versucht, einen Befehl vor allen anderen Befehlen hinzuzufügen, die nur eine Umgebungsvariable exportieren würden:
... Das war auch nicht erfolgreich
Ich habe die Verwendung eines modernen (d. h. nicht vorhandenen) Containers geprüft und unter / opt / elasticbeanstalk / deploy / configuration / containerconfiguration als JSON-Datei gefunden.
Das Verhalten scheint plattformabhängig zu sein: Ich erinnere mich insbesondere an PHP, dass es auch einige Shell-Skripte mit den Werten erstellt.
Unabhängig davon, schauen Sie in / opt / elasticbeanstalk / hooks / configdeploy nach.
Java Fall noch einmal, es führt dieses Python-Skript, das für Sie ziemlich praktisch aussieht:
Ich hatte das gleiche Problem.
Ob Sie es glauben oder nicht, Sie müssen das Verzeichnis .exextensions und alle * .config-Dateien vor der Bereitstellung an die Versionskontrolle übergeben, damit sie als Umgebungsvariablen auf dem Server angezeigt werden.
Um Ihre sensiblen Informationen von der Versionskontrolle fernzuhalten, können Sie eine Konfigurationsdatei wie folgt verwenden:
%Vor%und bearbeiten Sie später das AWS Admin-Panel (Umgebungsdetails - & gt; Konfiguration bearbeiten - & gt; Container) und aktualisieren Sie die Werte dort
Ich habe Folgendes getan, um auch meine Umgebungsvariablen zu erhalten, die ich in der Cloud-Konfiguration in der Nicht-Container-Phase konfiguriere, zB die regulären Befehle
%Vor%Sobald Sie diesen Befehl ausgeführt haben, haben Sie eine Datei in / tmp / eb_env mit all Ihren Umgebungsvariablen. Führen Sie Folgendes vor einem Befehl aus, der die Umgebungsvariablen benötigt
%Vor%Beispiel
%Vor%In der Konfigurationsdatei von elastic beanstalk sieht das so aus:
%Vor%Option 1:
Sie können Umgebungsvariablen mit eb setenv FOO=bar
Sie können die Umgebungsvariablen mit eb printenv
Option 2:
Sie können eine Konfigurationsdatei in Ihrem .extenxtensions-Verzeichnis erstellen, zum Beispiel 00_environment.config
. Fügen Sie dann Ihre Umgebungsvariablen wie folgt hinzu:
option_settings:
- option_name: MY_FIRST_ENV_VAR
value: abc
- option_name: ANOTHER_ENV_VAR
value: 123
Wenn Sie jedoch mehrere Umgebungen haben, habe ich festgestellt, dass es sinnvoller ist, die Umgebungsvariablen direkt mit der Option # 1 festzulegen.
Ich habe auch die eb config
-Befehle als hilfreich gefunden: Ссылка
Mit diesen Befehlen können Sie Konfigurationsdateien in Ihrer eb-Umgebung abrufen, ablegen, auflisten oder löschen.
Der Befehl eb config get
speichert Ihre Konfiguration einschließlich der Umgebungsvariablen in einer lokalen Datei in .elasticbeanstalk/saved_configs
.
Um Variablen in einem lokalen Lauf festzulegen, können Sie Folgendes tun:
%Vor%Dies funktioniert auch mit Docker MultiContainers, die Ihre Umgebung sonst nicht sehen.
Tags und Links python amazon-web-services environment-variables elastic-beanstalk