1
我在Azure WebApp中有一個Django項目。該項目的設置都配置了環境變量,例如:使用Django的Azure WebJob中的環境變量
而且settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.getenv("POSTGRES_DB"),
'USER': os.getenv("POSTGRES_USER"),
'PASSWORD': os.getenv("POSTGRES_PASSWOR),
'HOST': os.getenv("POSTGRES_HOST"),
'PORT': '',
}
}
在另一方面,該項目有一個運行的Django命令WebJob:
app_data
|--jobs
|--triggered
|--my_webjob
|--run.py
|--settings.job
的WebJob的腳本,run.py:
import sys
sys.path.append(r"D:\\home\\site\\wwwroot\\env\\Lib\\site-packages")
sys.path.append(r"D:\\home\\site\\wwwroot")
import django
from django.core.management import call_command
django.setup()
call_command('my_webjob')
我的命令「my_webjob」嘗試着做一些東西,但沒有得到Web應用程序, 的環境變量,如果我打印環境,這是結果:
my_webjob.py
class Command(BaseCommand):
def handle(self, *args, **options):
print "================="
print "DEBUG: ENVS"
print "================="
print "POSTGRES_USER:"
print os.getenv("POSTGRES_USER", "")
print "---------------"
print "POSTGRES_DB:"
print os.getenv("POSTGRES_DB", "")
當WebJob已運行的輸出:
[04/29/2016 08:32:51 > 5d941a: INFO] =================
[04/29/2016 08:32:51 > 5d941a: INFO] DEBUG: ENVS
[04/29/2016 08:32:51 > 5d941a: INFO] =================
[04/29/2016 08:32:51 > 5d941a: INFO] POSTGRES_USER:
[04/29/2016 08:32:51 > 5d941a: INFO]
[04/29/2016 08:32:51 > 5d941a: INFO] ---------------
[04/29/2016 08:32:51 > 5d941a: INFO] POSTGRES:
[04/29/2016 08:32:51 > 5d941a: INFO]
的Web應用程序和Web除了這個問題之外,工作正常工作。 一個簡單的解決方案是將我的環境變量寫入文件並在webjobs中讀取,但我需要將所有密碼,url ...存儲在環境變量中,
我怎樣才能共享這些環境變量項目和WebJobs?
嗨@Avara,還有更新嗎? –
這是現在的作品。這很奇怪,因爲我沒有改變任何東西。也許,第一次部署時,webapp會自動更新。我正在努力確認這一點。謝謝@ GaryLiu-MSFT :) – Avara