BenB
BenB

Reputation: 1

AWS Kendra sdk call will not return results

I have been following the AWS-Kendra react-search app example you can find here:

https://docs.aws.amazon.com/kendra/latest/dg/deploying.html

After importing the Kendra client with:

const kendra = require('aws-sdk/clients/kendra');
const kendraClient = new kendra({apiVersion: '2019-02-03', region: 'us-east-1'});

Any call on kendraClient to any of the kendra services returns null. I have been executing queries with:

const results = kendraClient.query({ IndexId: INDEX_ID, QueryText: queryText});

Which returns a request object with null data and error fields.

I have calls to S3 which execute correctly in the same file so I do not believe it to be an authentication problem. If I had to guess it's some issue with how I created the kendra object and client, the usual

kendra = new AWS.Kendra();

doesn't work because Kendra is not part of the browser version of the SDK.

Upvotes: 0

Views: 1195

Answers (1)

TestingInProd
TestingInProd

Reputation: 379

Are you trying to run js from browser directly? Here is a sample nodejs code

var kendra = require("aws-sdk/clients/kendra");
var kendraClient = new kendra({apiVersion: "2019-02-03", region: "us-west-2"});
exports.handler = function (event)  {
    try{
        console.log("Starting....");
        var params = {
            IndexId: "<<Enter your indexId here>>",
            QueryText: "<<Enter your queryText here>>",
            QueryResultTypeFilter: "DOCUMENT",
            PageNumber: 1
        };
        
        var kendraResponse = kendraClient.query(params, function(err, data) {
                      if (err) console.log(err, err.stack); // an error occurred
                      else     console.log("Kendra result is", data);           // successful response
                    });
                    
    const response = {
                "dialogAction":
                    {
                     "fulfillmentState":"Fulfilled",
                     "type":"Close","message":
                        {
                          "contentType":"PlainText"
                        }
                    }
                }

    return response;
    } catch (error) {
        console.log(error)
    }
};

Upvotes: 1

Related Questions