【发布时间】:2021-10-12 00:36:39
【问题描述】:
我是使用 AWS 的新手,我可以手动获取所需的密钥,但我正在尝试使用 AWS 中提供的代码 sn-p 来获取密钥值,但我尝试的所有操作都返回未定义,请谁能告诉我我做错了什么?
// Load the AWS SDK
var AWS = require('aws-sdk'),
region = "REMOVED",
secretName = "REMOVED",
secret,
decodedBinarySecret;
// Create a Secrets Manager client
var client = new AWS.SecretsManager({
region: region
});
// In this sample we only handle the specific exceptions for the 'GetSecretValue' API.
// See https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
// We rethrow the exception by default.
client.getSecretValue({SecretId: secretName}, function(err, data) {
if (err) {
if (err.code === 'DecryptionFailureException')
// Secrets Manager can't decrypt the protected secret text using the provided KMS key.
// Deal with the exception here, and/or rethrow at your discretion.
throw err;
else if (err.code === 'InternalServiceErrorException')
// An error occurred on the server side.
// Deal with the exception here, and/or rethrow at your discretion.
throw err;
else if (err.code === 'InvalidParameterException')
// You provided an invalid value for a parameter.
// Deal with the exception here, and/or rethrow at your discretion.
throw err;
else if (err.code === 'InvalidRequestException')
// You provided a parameter value that is not valid for the current state of the resource.
// Deal with the exception here, and/or rethrow at your discretion.
throw err;
else if (err.code === 'ResourceNotFoundException')
// We can't find the resource that you asked for.
// Deal with the exception here, and/or rethrow at your discretion.
throw err;
}
else {
// Decrypts secret using the associated KMS CMK.
// Depending on whether the secret is a string or binary, one of these fields will be populated.
if ('SecretString' in data) {
secret = data.SecretString;
} else {
let buff = new Buffer(data.SecretBinary, 'base64');
decodedBinarySecret = buff.toString('ascii');
}
}
// Your code goes here.
var x = client.getSecretValue("REMOVED")
【问题讨论】:
-
这段代码在哪里运行?在 EC2 上,Lambda ...?您为执行设置了什么角色?这可能是权限问题。
-
当你说它返回undefined时,你的意思是回调中
data的值是undefined吗?您是否 100% 确定err也未定义? -
我只是想在我的笔记本电脑上运行它
-
您没有处理回调中的所有潜在错误。任何不属于所列错误之一的错误都将被静默抑制。在你的回调中打印出错误和数据。
标签: javascript node.js amazon-web-services aws-sdk