我在本地运行react应用程序时收到以下错误,该应用程序通过AWS-SDK向AWS发出API请求:
CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
我试过:
- 我试过exporting my aws credentials directly
- 我已经在~/.aws/credentials中设置了我的aws凭据,我每天都使用CLI,没有任何问题
- 我尝试将~/.aws目录复制到项目根目录
- 我尝试使用dotenv和配置文件as suggested in these replies
我是这样提出请求的
import AWS from 'aws-sdk';
import { useState, useEffect } from 'react';
const ssm = new AWS.SSM({ region: 'eu-west-1' });
export const useFetchParams = (initialValue) => {
const [result, setResult] = useState(initialValue);
useEffect(() => {
const params = {
Path: '/',
MaxResults: '2',
Recursive: true,
WithDecryption: true
};
ssm.getParametersByPath(params, function (err, data) {
if (err) console.log(err, err.stack);
else setResult(data);
});
}, []);
return result;
};
export default useFetchParams;
任何帮助将不胜感激。谢谢.
2条答案
按热度按时间pgccezyw1#
该错误指出凭据丢失,因此这是一个身份验证问题,您可以尝试直接在SSM构造函数上设置
accessKeyId
和secretAccessKey
或credentials
字段。因此,只需保持代码原样,只需进行以下更改:
kdfy810k2#
像这样硬编码凭证是一种不好的做法。我会使用像dotenv这样的库,然后用你的凭证创建一个
.env.local
文件,如下所示:在您的脚本中,使用以下命令配置AWS SDK: