在AWS EB中,如何将 environment.properties (包含应用运行时配置,如端口,日志目录,数据库信息,安全密钥等)放置在 / var下/ env_config / myapp ,那么应用可以在运行时引用它吗?
尽管我的进一步计划是将 environment.properties 放置在本地或远程文件系统的安全非应用程序目录中,因为它包含敏感信息。
global.env = propsReader(path.join(process.env.ENV_PATH, 'env-main.properties'));
在EB上,我添加了一个环境属性'ENV_PATH = / var / env_config / myapp'
EB日志:
web: > myapp@1.0.0 start /var/app/current
web: > node src/app-main.js
web: 8266 [
web: '/opt/elasticbeanstalk/node-install/node-v12.18.1-linux-x64/bin/node',
web: '/var/app/current/src/app-main.js'
web: ]
web: /var/env_config/myapp
web: internal/fs/utils.js:230
web: throw err;
web: ^
web: Error: ENOENT: no such file or directory, open '/var/env_config/myapp/env-main.properties'
我只是想以相同的方式在AWS EB或Docker或VM或本地计算机上部署我的应用程序,只用一个环境属性来说明所需的运行时输入文件在哪里。
答案 0 :(得分:0)
如何访问Elastic Beanstalk文件系统以配置我的.properties文件?
不确定“访问文件系统”是什么意思,但是通常您会在项目目录中创建.ebextensions
文件夹。扩展程序通常用于在部署应用程序时运行命令或脚本。有一些特殊的部分:
commands:您可以使用命令键在EC2实例上执行命令。在安装应用程序和Web服务器之前,之前运行命令。提取应用程序版本文件。
container_commands:您可以使用container_commands键执行影响您的应用程序源代码的命令。容器命令在安装了应用程序和Web服务器并提取了应用程序版本归档文件之后,但在部署应用程序版本之前运行。
因此,您可以在将应用程序部署到EB期间,使用以上部分来修改.properties
文件。