【问题标题】:No RDS environ when using SSH on AWS EC2在 AWS EC2 上使用 SSH 时没有 RDS 环境
【发布时间】:2021-12-26 01:22:11
【问题描述】:

我在 AWS EC2 上安装了 Django,一切正常。

在尝试运行命令来管理 Django 时,我收到一个错误,因为我缺少一些环境变量。

环境详情:

  • 平台:arn:aws:elasticbeanstalk:us-east-2::platform/Python 3.8 在 64 位 Amazon Linux 2/3.3.7 上运行
  • 层级:WebServer-Standard-1.0

例如,从 ssh 会话运行此命令将失败并说密钥不存在:

source /var/app/venv/*/bin/activate
python3


import os
   print(os.environ['RDS_DB_NAME'])

我怎样才能在 SSH 中设置和使用环境变量?

注意:当 Django 从服务器运行时,一切都按预期工作并且 Django 可以访问数据库,目标是能够手动运行命令。

谢谢

【问题讨论】:

  • 失败,出现什么错误?将您的代码显示为 minimal reproducible example,并清楚地说明您的尝试有什么问题。
  • 完成,希望对您有所帮助
  • 你是否设置了那些 ENV 变量?如果有,怎么做?
  • @Marcin 只要您将 RDS 数据库附加到您的环境,这些变量就会自动出现。事实上,Django 完美运行并连接到它。

标签: amazon-web-services amazon-elastic-beanstalk aws-cli


【解决方案1】:

如果您 ssh 到您的实例,您必须在 EB 中手动加载这些环境变量:

export $(sudo cat /opt/elasticbeanstalk/deployment/env | xargs)

【讨论】:

  • @PierreAnken 然后你必须用更多细节更新你的问题。比如你用的是什么EB环境​​版本?你究竟是如何运行你的脚本的?一步一步来。
  • 我又更新了。
  • @PierreAnken 我的回答按预期工作。它按应有的方式加载 env RDS 变量。你必须仔细检查你在做什么。该命令必须以 root 身份运行。
  • 谢谢我终于明白了,来自 SSH 的正确命令他:export $(sudo cat /opt/elasticbeanstalk/deployment/env | xargs) 以 root 身份获取它
  • @PierreAnken 很高兴它成功了。如果我的回答有帮助,我们将不胜感激。
猜你喜欢
  • 2014-06-12
  • 2018-07-22
  • 1970-01-01
  • 2014-11-14
  • 2021-07-29
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 2019-05-28
相关资源
最近更新 更多