嗨,我正在用Azure函数编写一个nodejs代码来捕获保存在Azure密钥库中的用户名。这是我写的代码
module.exports = async function (context, req) {
var msRestAzure = require('ms-rest-azure');
var KeyVault = require('azure-keyvault');
function getKeyVaultCredentials() {
return msRestAzure.loginWithAppServiceMSI({
resource: 'https://vault.azure.net/'
});
}
function getKeyVaultSecret(credentials) {
let keyVaultClient = new KeyVault.KeyVaultClient(credentials);
return keyVaultClient.getSecret('https://myDNS.vault.azure.net/', 'username', '');
}
const username = getKeyVaultCredentials()
.then(getKeyVaultSecret)
.then(function (secret){
context.log(`Your secret value is: ${secret.value}.`);
return secret.value;})
.catch(function (err) {throw (err);});
context.log(username)
context.res = {
body: username
};
}我想捕获用户名,但它给我的输出是
promise {pending}如何等待函数结束,以便我可以提取用户名。
我是非常新的nodejs,请让我知道我做错了什么,什么应该是确切的解决方案。
谢谢
发布于 2020-06-23 06:49:23
实际上,您已经使用了then来获取秘密值。如果依赖项和配置没有问题,则返回该值。
getKeyVaultCredentials()
.then(getKeyVaultSecret)
.then(function (secret){
context.log(`Your secret value is: ${secret.value}.`);
return secret.value;})
.catch(function (err) {throw (err);});但是当使用这个sdk时,您会遇到一些问题,而这里是github问题供您参考。
建议您改用新的Azure键库SDK。使用起来更方便。这里是在Azure函数中使用、MSI、和密钥库的详细步骤。
https://stackoverflow.com/questions/62522194
复制相似问题