我有一个存储在 AWS Systems Manager Parameter Store 中的数据库连接字符串,我想将其传递给 Elastic Beanstalk 实例的环境变量。我不想将它提交到源代码,也不想依赖部署者在部署时设置值或通过 Web 控制台手动执行。
我尝试过动态引用{{resolve:ssm:DATABASE_CONNECTION_STRING:1}}(有和没有反勾),它们在 CloudFormation 堆栈中工作,但在 Elastic Beanstalk 配置中无效。
我试过使用container_commands像
export DATABASE_CONNECTION_STRING=`aws ssm get-parameter --name DATABASE_CONNECTION_STRING --region eu-west-1 --query Parameter.Value --output text
但是 Elastic Beanstalk 实例没有正确的权限,我不确定如何设置它们。
我曾尝试使用 S3 文件的内容创建一个文件files:,source:但出现错误。
理想情况下,动态引用可以工作,例如.ebextensions/env.config=>
OptionSettings:
aws:elasticbeanstalk:application:environment:
DATABASE_CONNECTION_STRING: {{resolve:ssm:ANNOTATOR_DATABASE_CONNECTION_STRING:1}}
Run Code Online (Sandbox Code Playgroud) 我正在处理一个浏览器扩展项目,并希望background.js在开发时间和构建时间使用不同的 URL 。我想这样做而不必记住在开发和构建之间更改代码。对于服务器项目,我只需使用 dotenv/环境变量,但这不适用于有效运行客户端的扩展。
在background.js我有一个fetch使用这个api_base_url(我们也开发了 API);
...
const api_base_url = 'http://127.0.0.1:8000/v1/'
...
Run Code Online (Sandbox Code Playgroud)
在我构建 ( web-ext build)之前,我必须手动将其转换为类似的内容;
...
const api_base_url = 'http://a.domain.com/v1/'
...
Run Code Online (Sandbox Code Playgroud)
理想情况下,它应该是这样的;
...
const api_base_url = ENV['API_BASE_URL']
...
Run Code Online (Sandbox Code Playgroud)
我有一个.env在本地开发的;
API_BASE_URL='http://127.0.0.1:8000/v1/'
Run Code Online (Sandbox Code Playgroud)
和.env.production(或.env.build)的;
API_BASE_URL='http://a.domain.com/v1/'
Run Code Online (Sandbox Code Playgroud)
这也是manifest.json我需要将不同 URL 列入白名单的问题,permissions例如
"permissions": [
"storage",
"tabs",
"https://a.domain.com/v1/*",
"http://127.0.0.1:8000/v1/*"
]
Run Code Online (Sandbox Code Playgroud)
这不是一个运行时每个用户的选项,因此browser.storage而options.js不是我们所要找的。