首页 > 解决方案 > 无法从 Gitlab 获取 AWS S3 的环境变量

问题描述

我正在尝试将图像从我的 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.jsamazon-web-servicesamazon-s3gitlabenvironment-variables

解决方案


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


推荐阅读