Я застрял на этом некоторое время ...
Я использовал aws, чтобы настроить свои учетные данные / регион, но каждый раз, когда я пытаюсь сохранить их в DynamoDB, я получаю ' Отсутствие учетных данных в config 'ошибка. Я использую Javascript, и при тестировании путем жесткого кодирования региона он будет жаловаться на отсутствие моих учетных данных. Наконец, если я жестко закодирую все, это работает безупречно. Проблема не в учетных данных, а в возможности найти их локально.
файл конфигурации (Users / myuseraccount / .aws / config):
[default]
region = us-east-1
output = json
файл учетных данных ( Users / myuseraccount / .aws / credentials):
[default]
aws_access_key_id = <MyAccessKey>
aws_secret_access_key = <MySecretKey>
Я не до конца понимаю смысл приведенного ниже текста, но это происходит, когда я запускаю aws configure list (возможно, это поможет кому-то понять проблема). Я только что удалил ключи из списка, но они отображаются для меня.
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <accesskeyremoved> shared-credentials-file
secret_key <secretkeyremoved> shared-credentials-file
region us-east-1 config-file ~/.aws/config
Редактировать: Добавлено подключение к DynamoDB
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
export async function putUser(userId, firstName, lastName, email, school, program, password) {
var ddb = new AWS.DynamoDB();
var params = {
TableName: 'loci-users',
Item: {
'user_id' : { S: userId },
'first_name' : { S: firstName },
'last_name' : { S: lastName },
'email' : { S: email },
'password' : { S: password },
'school' : { S: school },
'program' : { S: program},
}
}
ddb.putItem(params, function(err, data) {
if (err) {
console.log("Error", err);
return false;
} else {
console.log("Success", data);
}
return true;
});
}
export async function getUser(email) {
var ddb = new AWS.DynamoDB.DocumentClient();
var params = {
TableName: 'loci-users',
IndexName: 'email-index',
KeyConditionExpression: "email = :email",
ExpressionAttributeValues: { ":email": email }
}
let userData = await ddb.query(params).promise()
return userData.Items.pop()
}