从本地反应应用程序调用时,AWS凭证错误“配置中缺少凭证,如果使用AWS_CONFIG_FILE,则设置AWS_SDK_LOAD_CONFIG = 1”

问题描述

在本地运行我的react应用程序时出现以下错误,该应用程序通过AWS-SDK向AWS发出api请求:

CredentialsError: Missing credentials in config,if using AWS_CONfig_FILE,set AWS_SDK_LOAD_CONfig=1

我尝试过:

这是我发出请求的方式:

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构造函数上设置accessKeyIdsecretAccessKeycredentials字段。

因此只需按原样维护您的代码,只需进行以下更改:

// 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'
    }
});

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...