Как я могу получить доступ к переменным среды, установленным wfastcgi, из отдельного файла настроек секретов
Я следовал этому руководству, чтобы обслуживать приложение Flask от IIS:
Мой исходный код в настоящее время выглядит следующим образом:
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'))
возвращает "Нет", а не "ВЕЩЬ".
Почему я не могу получить доступ к этим envars?