【问题标题】:How to access DynamoDB web service with javascript如何使用 javascript 访问 DynamoDB Web 服务
【发布时间】:2023-04-01 07:45:01
【问题描述】:

我正在尝试通过浏览器中的 amazon cognito 使用 javascript 访问 DynamoDB。但是我遇到了多个错误,我不知道如何解决它们。

<script>
    AWS.config.region = "eu-west-1"; 

    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: "eu-west-1:...",
        RoleArn: "arn:aws:iam::..."
    });

    var db = new AWS.DynamoDB.DocumentClient();

    function readItem() {
        var table = "parklot";
        var date = "2019-07-17 08:27:27.524955";

        var params = {
            TableName: table,
            Key:{
                "date": date
            }
        };

        db.get(params, function(err, data) {
            if (err) {
                document.getElementById('textarea').innerHTML = "Unable to read item: " + "\n" + JSON.stringify(err, undefined, 2);
            } else {
                document.getElementById('textarea').innerHTML = "GetItem succeeded: " + "\n" + JSON.stringify(data, undefined, 2);
            }
        });
    }

    readItem();

</script>`

这是 readItem() 函数打印的错误信息:

无法读取项目:{ "message": "Missing credentials in config", "code": "CredentialsError", "time": "2019-07-19T08:42:08.570Z", "requestId": " 1953c431-aa01-11e9-9128-415a65efdf67", "statusCode": 403, "retryable": false, "retryDelay": 63.05053729604022, "originalError": { "message": "Could not load credentials from constructor", "code" :“CredentialsError”,“时间”:“2019-07-19T08:42:08.570Z”,“requestId”:“1953c431-aa01-11e9-9128-415a65efdf67”,“statusCode”:403,“可重试”:false, “retryDelay”:63.05053729604022,“originalError”:{“message”:“Access denied”,“code”:“AccessDenied”,“time”:“2019-07-19T08:42:08.567Z”,“requestId”:“ 1953c431-aa01-11e9-9128-415a65efdf67", "statusCode": 403, "retryable": false, "retryDelay": 63.05053729604022 } } }

【问题讨论】:

    标签: javascript amazon-web-services amazon-dynamodb amazon-cognito


    【解决方案1】:

    如错误消息中所述,您确实缺少一些访问 DynamoDB 的凭据。 您没有提供 AWS 访问密钥和 AWS 秘密访问密钥。 查看更多信息:How to get started with AWS for Browser with Javascript。

    【讨论】:

    • 这是关于使用 Cognito 进行身份验证的问题,而不是使用访问密钥。
    • 该错误确切地表明它在尝试请求时缺少身份验证凭据。无论是使用 Cognito 还是任何其他 AWS 身份验证系统。这就是他显然缺少的。
    • OP 缺少凭据,但解决方案不是提供访问密钥 ID 和秘密访问密钥。 Cognito 不使用这些。这不是给定问题的解决方案。
    猜你喜欢
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多