I have a very simple node js
application.
in the code I want to use x-ray
and catch the calls I do with the AWS sdk. In my case the secrets manager.
I always get this error "Error: Failed to get the current sub/segment from the context." when I run it localy.
const AWS = require('aws-sdk');
const AWSXRay = require('aws-xray-sdk');
AWS.config.update({ region: 'eu-west-1' });
// Initialize the AWS X-Ray SDK
AWSXRay.captureAWS(require('aws-sdk'));
// Create a Secrets Manager client with X-Ray instrumentation
const secretsManager = AWSXRay.captureAWSClient(new AWS.SecretsManager());
// Retrieve the secret value with X-Ray instrumentation
AWSXRay.captureAsyncFunc('getSecretValue', function(subsegment) {
// Define the parameters for the secret
const params = {
SecretId: 'thesecretId'
};
return secretsManager.getSecretValue(params).promise().then(data => {
if (AWSXRay.getSegment()) {
AWSXRay.getSegment().addMetadata('SecretId', params.SecretId);
}
return JSON.parse(data.SecretString).password;
});
}).then(password => {
console.log('got password:');
}).catch(err => {
console.error(err);
});