我已經構建了一個簡單的Django應用程序併成功地將它部署到了Beanstalk。該應用程序在RDS實例上使用PostgreSQL後端。從瀏覽器中,我可以成功訪問管理員並在其中創建和刪除模型。但是,我也試圖運行更新數據庫的cron。我在服務器上安裝了cron,但它不起作用。於是我接着進去,手動運行這些命令,並得到以下錯誤:服務器是否在主機「127.0.0.1」上運行,並在端口5432上接受TCP/IP連接?Cron不能在Python和PostgreSQL上使用Amazon Elastic Beanstalk
從我的谷歌搜索中,我猜這與安全組,允許的主機或JDBC有關。也許允許Beanstalk的EC2實例和RDS實例互相交互。但我迷路了。我試着從這個AWS tutorial的指示。
爲了記錄,在本地運行時,cron運行的腳本完美地工作爲python manage.py runscript scrape
。
其他東西: The tutorial I followed for deploying my app。 The tutorial I followed for the cron
克朗settings.py
if 'RDS_DB_NAME' in os.environ:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ['RDS_DB_NAME'],
'USER': os.environ['RDS_USERNAME'],
'PASSWORD': os.environ['RDS_PASSWORD'],
'HOST': os.environ['RDS_HOSTNAME'],
'PORT': os.environ['RDS_PORT'],
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db',
'USER': 'user',
'PASSWORD': 'password',
'HOST': '127.0.0.1',
'PORT': '',
}
}
只需在cron中使用「python3」而不是「python3.4」,然後檢查它是否運行 – error2007s
我也注意到另一個錯誤:KeyError:'RDS_DB_NAME'。看起來環境變量可能因任何原因而未定義。 –
python3仍然導致錯誤 –