Попытка выполнить операции CRUD (создание, чтение, обновление, удаление) для таблиц DynamoDB, имеющих определенные разрешения пользователя.
Итак, я создал политику IAM для своей таблицы и роли пользователей, связанные сполитика.Я также создал своих пользователей и пулы удостоверений.Осталось, я полагаю, что мне нужно выполнить фактическое кодирование.
Так что я нашел этот CRUD SDK, предлагаемый amazon: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Js.03.html
SDK предлагает функции для выполнения операций CRUD на желаемомстолы.Это замечательно.Хотя я не совсем уверен, как интегрировать конкретного пользователя, основываясь на разрешениях, которые я настроил для таблицы.
<html>
<head>
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.7.16.min.js">.
</script>
<script>
AWS.config.update({
region: "us-west-2",
endpoint: 'http://localhost:8000',
// accessKeyId default can be used while using the downloadable version of DynamoDB.
// For security reasons, do not store AWS Credentials in your files. Use Amazon Cognito instead.
accessKeyId: "fakeMyKeyId",
// secretAccessKey default can be used while using the downloadable version of DynamoDB.
// For security reasons, do not store AWS Credentials in your files. Use Amazon Cognito instead.
secretAccessKey: "fakeSecretAccessKey"
});
var docClient = new AWS.DynamoDB.DocumentClient();
function conditionalDelete() {
var table = "Movies";
var year = 2015;
var title = "The Big New Movie";
var params = {
TableName:table,
Key:{
"year":year,
"title":title
},
ConditionExpression:"info.rating <= :val",
ExpressionAttributeValues: {
":val": 5.0
}
};
docClient.delete(params, function(err, data) {
if (err) {
document.getElementById('textarea').innerHTML = "The conditional delete failed: " + "\n" + JSON.stringify(err, undefined, 2);
} else {
document.getElementById('textarea').innerHTML = "The conditional delete succeeded: " + "\n" + JSON.stringify(data, undefined, 2);
}
});
}
</script>
</head>
<body>
<input id="conditionalDelete" type="button" value="Conditional Delete" onclick="conditionalDelete();" />
<br><br>
<textarea readonly id= "textarea" style="width:400px; height:800px">
</textarea>
</body>
</html>
Это действительно полезный код.Хотя в config.update им требуются accessKeyId: "fakeMyKeyId"
и secretAccessKey: "fakeSecretAccessKey"
Как бы я заменил их аутентифицированным пользователем Cognito?
У кого-нибудь есть идеи или ресурсы для этого?Я смотрел везде.Заранее спасибо!