Низкоуровневый API DyanmoDB DAX

#amazon-dynamodb #amazon-dynamodb-dax

#amazon-dynamodb #amazon-dynamodb-dax

Вопрос:

Возможно ли распечатать низкоуровневый API с помощью DAX-клиента? Когда я использую обычный клиент DynamoDB, он работает нормально, но он не работает, когда я использую DAX-клиент.

Низкоуровневый API DynamoDB:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming .LowLevelAPI.html

пример кода для печати низкоуровневого API:

         const request = this.getDocumentClient().get(getRequest);

        request.on("httpDone", (response) => {
            const debugInfo = {
                retryCount: response.retryCount,
                redirectCount: response.redirectCount,
                headers: response.httpResponse.headers,
            };


        request.send((err: AWSError, data: DocumentClient.GetItemOutput) => {
            if (err) {
                reject(err);
            }
            else {
                resolve(data.Item as T);
            }
        });
  

Ответ №1:

Найдено решение этой проблемы, клиент DAX использует другие прослушиватели событий для захвата http-вызовов. Вместо использования «httpDone» должно быть «полное» кодовое решение:

 const request = this.getDocumentClient().get(getRequest);

    request.on("complete", (response) => {
        const debugInfo = {
            retryCount: response.retryCount,
            redirectCount: response.redirectCount,
            headers: response.httpResponse.headers,
        };


    request.send((err: AWSError, data: DocumentClient.GetItemOutput) => {
        if (err) {
            reject(err);
        }
        else {
            resolve(data.Item as T);
        }
    });