Festlegen einer Umgebungsvariablen in Amazon Elastic Beanstalk (Python)

8

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:

%Vor%

Wenn ich jedoch auf den Server schaue, werden keine solchen Umgebungsvariablen gesetzt (und daher nicht zugänglich, wenn ich os.getenv('ProductionBucket')

probiere)

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:

%Vor%

... Das war auch nicht erfolgreich

    
NT3RP 08.01.2013, 01:04
quelle

5 Antworten

1

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:

Ссылка

    
aldrinleal 09.01.2013, 20:23
quelle
15

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

Ссылка

    
idrinkpabst 12.04.2013 01:08
quelle
2

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%     
user16423 18.11.2015 13:36
quelle
2

Option 1:

Sie können Umgebungsvariablen mit eb setenv FOO=bar

festlegen

Sie können die Umgebungsvariablen mit eb printenv

anzeigen

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 .

    
trex 18.07.2016 23:07
quelle
0

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.

    
Pieter Ennes 06.10.2016 20:59
quelle