【问题标题】:Can't get Environment Variables for AWS S3 from Gitlab无法从 Gitlab 获取 AWS S3 的环境变量
【发布时间】:2020-09-23 07:07:42
【问题描述】:

我正在尝试将图像从我的 Node.js 后端存储到 AWS S3 存储桶。该应用程序托管在 heroku 上。这在我的本地环境中运行良好,但是一旦我使用 gitlab CI/CD 将应用程序部署到 heroku,我就会收到以下错误:

Missing credentials in config, if using AWS_CONFIG_FILE, set 
AWS_SDK_LOAD_CONFIG=1","errno":"ECONNREFUSED","code":"CredentialsError","syscall":"connect"

在我的本地环境中,我将 API 密钥存储在 .env 文件中,如下所示:

BUCKET_NAME=XYZ
AWS_KEY_ID=XYZ
AWS_ACCESS_KEY=XYZ

我的节点服务器会得到这样的变量:

const s3 = new AWS.S3({
 accessKeyId: process.env.AWS_KEY_ID,
 secretAccessKey: process.env.AWS_ACCESS_KEY
});
const BUCKET_NAME = process.env.BUCKET_NAME

这适用于我的本地环境。在 Gitlab 上,我使用完全相同的名称存储相同的变量

但是当我尝试存储文件时出现上述错误。

【问题讨论】:

标签: node.js amazon-web-services amazon-s3 gitlab environment-variables


【解决方案1】:

环境变量需要存在于您的 Heroku 实例中。

【讨论】:

  • 我的数据库连接也有 ENV 变量,它们在 gitlab 中定义并且在 heroku 上运行良好。为什么 AWS 变量的工作方式不同?
  • 我不确定为什么它适用于您的数据库。您的服务器在 Heroku 上运行,因此是 Heroku 使环境变量可用于 Node.js,而不是 Gitlab。
  • 谢谢,成功了(heroku config:set GITHUB_USERNAME=joesmith from heroku doku)
猜你喜欢
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 2017-06-24
  • 2018-07-07
相关资源
最近更新 更多