Как я могу получить доступ к переменным окружения, установленным wfastcgi, из отдельного файла настроек секретов - PullRequest
0 голосов
/ 29 ноября 2018

Я следовал этому руководству, чтобы обслуживать приложение Flask из IIS:

https://medium.com/@bilalbayasut/deploying-python-web-app-flask-in-windows-server-iis-using-fastcgi-6c1873ae0ad8

В настоящее время мой исходный код выглядит следующим образом:

MyApp.py:

from flask import Flask
import os
app = Flask(__name__)

@app.route("/")
def hello():

    return "PYTHONPATH: {0}".format(os.getenv('PYTHONPATH'))

if __name__ == "__main__":
    app.run()

И мой web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appSettings file='C:\app_secrets\secrets.config' >
        <add key="PYTHONPATH" value="C:\inetpub\wwwroot\MyApp" />
        <add key="WSGI_HANDLER" value="MyApp.app" />
    </appSettings>
</configuration>

Я следую советам нескольких мест в Интернете, чтобы заполнять секреты, имея отдельный файл appSettings внеИсходный код и ссылка на него в web.config, поэтому «C: \ app_secrets \ secrets.config» выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appSettings>
        <add key="SECRETTHING" value="THING" />
    </appSettings>
</configuration>

Я обнаружил, что хотя web.config <add key=...биты работают так, как я ожидал, и я могу получить к ним доступ в MyApp.py, используя os.getenv(), то же самое нельзя сказать о ключах, добавленных в secrets.config;изменение строки return "PYTHONPATH: {0}".format(os.getenv('PYTHONPATH')) на return "PYTHONPATH: {0}".format(os.getenv('SECRETTHING')) возвращает «None», а не «THING».

Почему я не могу получить доступ к этим envars?

...