in aws-greengrass-core-sdk/secretsmanager.js [75:117]
getSecretValue(params, callback) {
const secretId = Util.getParameter(params, KEY_SECRET_ID);
const versionId = Util.getParameter(params, KEY_VERSION_ID);
const versionStage = Util.getParameter(params, KEY_VERSION_STAGE);
const isJSONResultFlagSet = Util.getParameter(params, KEY_JSON_RESULT_FLAG);
if (secretId === undefined) {
callback(new Error(`"${KEY_SECRET_ID}" is a required parameter`), null);
return;
}
// TODO: Remove this once we support query by VersionId
if (versionId !== undefined) {
callback(new Error('Query by VersionId is not yet supported'), null);
return;
}
if (versionId !== undefined && versionStage !== undefined) {
callback(new Error('VersionId and VersionStage cannot both be specified at the same time'), null);
return;
}
const getSecretValueRequestBytes = SecretsManager._generateGetSecretValueRequestBytes(secretId, versionId, versionStage);
const invokeParams = {
FunctionName: SECRETS_MANAGER_FUNCTION_ARN,
Payload: getSecretValueRequestBytes,
};
console.log(`Getting secret value from secrets manager: ${getSecretValueRequestBytes}`);
this.lambda.invoke(invokeParams, (err, data) => {
if (err) {
callback(err, null); // an error occurred
} else if (SecretsManager._is200Response(data.Payload)) {
// successful response
if (isJSONResultFlagSet) {
callback(null, JSON.parse(data.Payload));
}
callback(null, data.Payload);
} else {
callback(new Error(JSON.stringify(data.Payload)), null); // error response
}
});
}