第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

環(huán)境屬性不會傳遞到 Elastic Beanstalk 中的應(yīng)用程序

環(huán)境屬性不會傳遞到 Elastic Beanstalk 中的應(yīng)用程序

DIEA 2023-12-29 16:01:06
部署我的 Django 項目時,未配置數(shù)據(jù)庫設(shè)置,因為'RDS_HOSTNAME' in os.environ返回false. 事實上,部署時沒有可用的環(huán)境屬性。所有這些屬性在部署后都可用。運行/opt/elasticbeanstalk/bin/get-config environment返回如下:{"DJANGO_SETTINGS_MODULE":"myApp.settings","PYTHONPATH":"/var/app/venv/staging-LQM1lest/bin:$PYTHONPATH","RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"xxxx.amazonaws.com","RDS_PASSWORD":"xxxx","RDS_PORT":"xxxx","RDS_USERNAME":"xxxx"}所有 RDS 前綴屬性均已設(shè)置,但仍os.environ無法讀取。setting.py文件:# [...]if 'RDS_HOSTNAME' in os.environ:    DATABASES = {        'default': {            'ENGINE': 'django.db.backends.mysql',            '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'],        }    }# [...]我是否需要進(jìn)行任何更改才能使這些屬性在部署時可用?
查看完整描述

3 回答

?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗 獲得超10個贊

看起來這是一個嚴(yán)重的錯誤,AWS 并不關(guān)心它。我想出了幾種方法來完成這項工作,但所有這些方法都需要登錄到 EB 環(huán)境并執(zhí)行一些手動工作。

解決方案1

  1. 創(chuàng)建 AWS 秘密管理器

  2. 檢查IAM instance profileEB的環(huán)境Configuration->Security->Edit。

  3. 然后轉(zhuǎn)到 IAM 用戶控制臺并轉(zhuǎn)到Roles.?從那里,您可以將策略附加到秘密管理器的實例配置文件。

  4. 完成后,部署項目

  5. 然后登錄環(huán)境(eb ssh environment_name)。

  6. 轉(zhuǎn)到/var/app/current/目錄并運行以下命令:source /var/app/venv/*/bin/activate。

  7. 終于跑了python3 manage.py migrate。

解決方案2

  1. 編輯.bash_profile并在文件末尾添加導(dǎo)出這些變量:

    ?export?RDS_DB_NAME=your_dbname
    ?export?RDS_USERNAME=user
    ?export?RDS_PASSWORD=pass
    ?export?RDS_HOSTNAME=host_endpoint
    ?export?RDS_PORT=3306
  2. 跑步source ~/.bash_profile

  3. 現(xiàn)在您可以部署您的項目了。

解決方案3

  1. 在 EB 環(huán)境配置中設(shè)置所有環(huán)境屬性。(轉(zhuǎn)到Configuration->Software->Edit->Environment properties并添加鍵和值)。

https://img1.sycdn.imooc.com/658e7d1d00014e0006190116.jpg

2. 在開頭添加此代碼片段settings.py


? ? from pathlib import Path

? ? import os

? ? import subprocess

? ? import ast



? ? def get_environ_vars():

? ? ? ? completed_process = subprocess.run(

? ? ? ? ? ? ['/opt/elasticbeanstalk/bin/get-config', 'environment'],

? ? ? ? ? ? stdout=subprocess.PIPE,

? ? ? ? ? ? text=True,

? ? ? ? ? ? check=True

? ? ? ? )


? ? ? ? return ast.literal_eval(completed_process.stdout)

轉(zhuǎn)到數(shù)據(jù)庫部分并將其替換為此代碼片段


?if 'RDS_HOSTNAME' in os.environ:

? ? ?DATABASES = {

? ? ? ? ?'default': {

? ? ? ? ?'? ? ENGINE': 'django.db.backends.mysql',

? ? ? ? ? ? ? '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:

? ? ?env_vars = get_environ_vars()

? ? ?DATABASES = {

? ? ? ? ?'default': {

? ? ? ? ?'ENGINE': 'django.db.backends.mysql',

? ? ? ? ?'NAME': env_vars['RDS_DB_NAME'],

? ? ? ? ?'USER': env_vars['RDS_USERNAME'],

? ? ? ? ?'PASSWORD': env_vars['RDS_PASSWORD'],

? ? ? ? ?'HOST': env_vars['RDS_HOSTNAME'],

? ? ? ? ?'PORT': env_vars['RDS_PORT'],

? ? ?}

?}

  1. 部署項目。

  2. 登錄環(huán)境 (?eb ssh environment_name)。

  3. 轉(zhuǎn)到/var/app/current/目錄并運行以下命令:source /var/app/venv/*/bin/activate

  4. 終于跑了python3 manage.py migrate。

結(jié)論:

解決方案 1不太復(fù)雜,而且秘密管理器不是免費的(僅限 30 天試用)。
解決方案 2最簡單的一種,但我不建議在 EB 上手動調(diào)整任何文件。
解決方案 3是一個干凈的解決方案,我將使用它。該解決方案還可以在將來修復(fù)此錯誤。


查看完整回答
反對 回復(fù) 2023-12-29
?
哆啦的時光機

TA貢獻(xiàn)1779條經(jīng)驗 獲得超6個贊

在系統(tǒng)中使用環(huán)境屬性,例如。運行 Symfony 命令(使用 envs)你可以簡單地運行這個:

/opt/elasticbeanstalk/bin/get-config environment | jq -r "to_entries|map(\"export \(.key)='\(.value|tostring)'\")|.[]" >> /home/ec2-user/.bash_profile

它將在 .bash_profile 中添加您的所有道具,因此當(dāng)您通過 SSH 登錄時,它們將全部設(shè)置完畢。當(dāng)然,最好將其添加到 .ebextensions/*.config 的 Commands: 部分下。


查看完整回答
反對 回復(fù) 2023-12-29
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

AWS 官方提供的從 EC2 級別提供環(huán)境變量的解決方案也解決了這個問題:

https://aws.amazon.com/premiumsupport/knowledge-center/elastic-beanstalk-env-variables-shell/


查看完整回答
反對 回復(fù) 2023-12-29
  • 3 回答
  • 0 關(guān)注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號