【发布时间】:2020-11-07 19:44:03
【问题描述】:
我正在尝试使用 Elastic Beanstalk 将 Flask 应用程序部署到 AWS EC2 linux 实例。在我的 app.py 中,我正在使用 app.config.from_envvar('FLASK_SETTINGS_FILE', silent=True) 加载特定于环境的配置。我正在设置环境。 EB Web 控制台中 Software 下的变量 FLASK_SETTINGS_FILE,值为 '/home/ec2-user/myappconfig/flask_sit.cfg'。在路径/home/ec2-user 处有一个文件夹myappconfig 包含flask_sit.cfg,并且该文件包含我的配置。当我部署应用程序时,我在 error_log 中得到以下信息:
Unable to load configuration file (Permission denied): '/home/ec2-user/myappconfig/flask_sit.cfg'
flask_sit.cfg 文件和myappconfig 文件夹的权限设置为所有用户均可读取。
我无法确定应该将 flask_sit.cfg 文件放在哪里。我无法在根文件夹 (/) 中创建文件夹。 Flask docs 仅使用示例路径 (/path/to/settings.cfg)。我做错了什么?
编辑: 感谢@marcin,我了解这个问题。所以这就是我最终决定做事的方式。在这里分享,FWIW:
- 使用我的 ec2-user 密钥通过 SSH 连接到远程服务器。
- 导航到文件系统根文件夹 (/)。使用
sudo mkdir myappconfig,创建了一个文件夹。 - 使用
sudo chown -R ec2-user myappconfig,使 ec2-user 成为文件夹的所有者。 - 然后在我的本地 Windows 计算机上打开命令提示符并导航到我拥有配置文件本地副本的文件夹 (
flask_sit.cfg)。 - 使用 scp 将文件从本地文件夹传输到远程文件夹。
scp -i ~/.ssh/<my key name> flask_sit.cfg ec2-user@<remoteServerIP>:/myappconfig - 部署应用程序。没有更多错误。
- 接下来的步骤,一旦我确定了应用程序在哪个用户下运行,我就会将该用户的权限更改为只读。
【问题讨论】:
标签: python amazon-web-services flask amazon-elastic-beanstalk