node.js - 无法从 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 上,我使用完全相同的名称存储相同的变量
但是当我尝试存储文件时出现上述错误。
解决方案
环境变量需要存在于您的 Heroku 实例上。
推荐阅读
- python - Keras 中自定义层的 trainable_variables 属性返回空列表
- c# - 使用 EvilDICOM 的错误输出像素颜色(灰度)
- apache-spark - CombineByKey 对象不可迭代
- java - 如何限制 JFileChooser 只允许选择特定数量的文件?
- java - 有没有办法只在一个函数中使用多线程?
- opengl - 从远处查看对象时,如何在 OpenGL/GLFW 中设置纹理参数以避免纹理混叠(对象边界上的波动行为)?
- python - 旅行推销员的实施未按预期循环
- java - 尝试使用 Buffered Writer 将文件保存在文档文件夹中不起作用
- r - 根据行的值向列添加标题
- python - 使用 setuptools 构建 Python 源代码分发包时忽略 git 存储库