DynamoDB JavaScript v3 API的GetItemCommand操作引发未知异常。

0

【以下的问题经过翻译处理】 我正在尝试使用JavaScript v3 API在nodejs lambda中从DynamoDB中检索单个项目。我得到了UnknownOperationException错误。这是我传递给GetItemCommand的参数对象:

{
    "TableName": "test_biblestudy_tools_user",
    "Key": {
        "userid": {
            "S": "06f4dc4b-3368-4277-9dbe-892edec668c6"
        }
    },
    "ProjectionExpression": "email"
}

该lambda的执行角色具有对该表的GetItem权限。

我想做的一件事是在这个过程中启用HTTP线路跟踪,但我没有看到如何在使用JavaScript v3 API时执行该操作的任何示例。现在我正在配置的只是区域,我不知道如何配置其他任何东西:

import { DynamoDBClient, GetItemCommand, TransactWriteItemsCommand } from '@aws-sdk/client-dynamodb';
const db_client = new DynamoDBClient({ region: 'us-east-1' });

我该如何为此客户端配置http线路跟踪?那是否可能向我显示有用的信息?我尝试过CloudTrail数据平面事件日志记录,但失败的调用不会创建日志。

以下是来自CloudWatch日志的完整错误消息:

UnknownOperationException: UnknownError
      at throwDefaultError (/var/task/node_modules/@aws-sdk/client-dynamodb/node_modules/@aws-sdk/smithy-client/dist-cjs/default-error-handler.js:8:22)
      at deserializeAws_json1_0GetItemCommandError (/var/task/node_modules/@aws-sdk/client-dynamodb/dist-cjs/protocols/Aws_json1_0.js:1740:51)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async /var/task/node_modules/@aws-sdk/client-dynamodb/node_modules/@aws-sdk/middleware-serde/dist-cjs/deserializerMiddleware.js:7:24
      at async StandardRetryStrategy.retry (/var/task/node_modules/@aws-sdk/middleware-retry/dist-cjs/StandardRetryStrategy.js:51:46)
      at async /var/task/node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js:6:22
      at async Runtime.handler (file:///var/task/index.js:139:23) {
    '$fault': 'client',
    '$metadata': {
      httpStatusCode: 400,
      requestId: 'c688c34f-7c64-4d9a-9eb4-3258ee5aecf6',
      extendedRequestId: undefined,
      cfId: undefined,
      attempts: 1,
      totalRetryDelay: 0
    },
    __type: 'com.amazon.coral.service#UnknownOperationException'
  }```
profile picture
EXPERTE
gefragt vor 5 Monaten19 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 我发现了我的错误。我使用一个从不同的服务实例化的客户端调用了client.send(new GetItemCommand(...))!这就解释了UnknownOperationException的原因。感谢你要求我发布我正在运行的整个代码片段。这帮助我发现了错误。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen