I am using opentelemetry http instrumentation in my code. When I am using the aws-sdk to give a call to aws-sdk, I get an error -
SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.
Without the instrumentation of http, the issue is not reproduced.
const opentelemetry = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/node");
const { SimpleSpanProcessor } = require("@opentelemetry/tracing");
const exporter = new JaegerExporter({ serviceName: "test" });
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.register();
const AWS = require("aws-sdk");
const main = async () => {
const cwl = new AWS.CloudWatchLogs({ region: "us-east-1" });
const promises = new Array(100).fill(true).map(() => new Promise((resolve, reject) => {
cwl.describeLogGroups(function (err, data) {
if (err) {
console.log(err.name);
reject(err);
return;
}
resolve(data);
});
}));
const result = await Promise.all(promises);
console.log(result.length);
};
main().catch(console.error);
I have checked a similar post in stackoverflow but I cannot upgrade to aws sdk v3.