PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie übergebe ich das DB-AWS-Geheimnis an Tomcat context.xml?

Wenn Sie die DB-Anmeldeinformationen dynamisch laden möchten. Dies ist nur für die Zeit möglich, in der Tomcat context.xml lädt einmal (weil Tomcat die Umgebungsvariable nur einmal beim Start liest).

Beachten Sie, dass zur Laufzeit immer dann contxt.xml Ändern Sie die relevanten Webanwendungs-Neuladungen. Tomcat wird nicht neu gestartet.

Der Trick besteht also darin, DB-Anmeldeinformationen als JVM-Parameter/-Argument bereitzustellen, wie der obige ${catalina.base}

Es gibt 3 Stufen:

  1. Deklarieren und setzen Sie den Wert für die Umgebungsvariable:

    export DB_CREDENTIALS='*****'
    

    Ein guter Ort ist Tomcats Benutzeranmeldeskript .bash_profile , oder Tomcat-Umgebungen setenv.sh

  2. Erstellen Sie einen JVM-Parameter (Systemvariable) für die Umgebungsvariable:Fügen Sie die folgende Zeile zu setenv.sh hinzu vor der letzten Zeile.

    -Denvironment.db.credentials=${DB_CREDENTIALS} \
    
  3. Verwenden/rufen Sie den deklarierten JVM-Parameter in context.xml auf. Zum Beispiel:

    url="jdbc:postgresql://**********:****/${environment.db.credentials}"