Weird AWS region bug
I've been fighting a weird error coming from AWS SDK for Node.js:
ConfigError: Missing region in config
I was setting the region like that:
// Setup AWS SDK
const AWS = require('aws-sdk');
AWS.config.update({
region: aws_region
});
Turns out that despite the fact that AWS is a singleton, it's config passed to service instances is not.
What is a service instance. E.g. this:
new AWS.SQS()
In other words, SQS instance will have it's config baked in, and subsequent changes to AWS.config won't affect it.
So the order of execution is important. Consider:
AWS.config.update({ region: A })
const sqs = new AWS.SQS()
AWS.config.update({ region: B })
sqs.sendMessage(...) // the region from the sqs perspective is A!