问题描述
在本地运行我的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;
任何帮助将不胜感激。谢谢。
解决方法
该错误表明凭据丢失,因此这是身份验证问题,您可以尝试直接在SSM构造函数上设置accessKeyId
和secretAccessKey
或credentials
字段。
因此只需按原样维护您的代码,只需进行以下更改:
// From
const ssm = new AWS.SSM({ region: 'eu-west-1' });
// To
const ssm = new AWS.SSM({
region: 'eu-west-1',accessKeyId: 'your-access-key',secretAccessKey: 'your-secret-key'
});
// Or To
const ssm = new AWS.SSM({
region: 'eu-west-1',credentials: {
accessKeyId: 'your-access-key',secretAccessKey: 'your-secret-key'
}
});