Issue sending message to SQS when authenticating with cognito

567 views Asked by At

When attempting to send a message to sqs I get a missing config credentials warning. If switch to just displaying my accesskey and password I can send the message to sqs just fine. I've included the code I'm using and the errors I get from the browser below.

Code below:

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: 'xxxxxx',
});
var params = {
  MessageBody: 'some random message',
  QueueUrl: 'xxxxxx'
};
AWS.config.credentials.get(function(err) {
  if (err) console.log(err);
  else console.log(AWS.config.credentials);
});

var sqs = new AWS.SQS();
sqs.sendMessage(params, function (err, data) {
  if (!err) {
    console.log('Message sent.');
  } else {
    console.log(err);
  }
});

Errors from console.log:

Error: Missing region in config at null. (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:5:10470) at r.SequentialExecutor.r.util.inherit.callListeners (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:27635) at r.SequentialExecutor.r.util.inherit.emit (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:27431) at n.Request.o.emitEvent (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:15837) at e (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:12148) at r.runTo (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:7:23197) at n.Request.o.runTo (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:13657) at n.Request.o.send (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:13550) at t.Service.i.makeUnauthenticatedRequest (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:30572) at t.util.update.getId (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:7:2224) index.html:57 Error: Missing credentials in config at null. (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:5:10470) at r.SequentialExecutor.r.util.inherit.callListeners (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:27635) at r.SequentialExecutor.r.util.inherit.emit (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:27431) at n.Request.o.emitEvent (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:15837) at e (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:12148) at r.runTo (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:7:23197) at n.Request.o.runTo (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:13657) at n.Request.o.send (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:13550) at t.Service.i.makeUnauthenticatedRequest (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:6:30572) at t.util.update.getId (https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js:7:2224)

Take note that I've tried adding region various different ways.

1

There are 1 answers

2
jarmod On

I don't see anything in your posted code that sets the region.

[Following copied from the Configuring the SDK in Node.js documentation]

The AWS SDK for Node.js doesn't select the region by default. You can choose a region similarly to setting credentials by either loading from disk or using AWS.config.update():

AWS.config.update({region: 'us-west-1'});