使用节点sdk进行Azurevalidation时出错:

我正在学习Node.js教程Windows Azure SDK – 计算pipe理来pipe理虚拟机。

我使用azure account cert export<Subscription GUID>.pem下载了pem文件。

该脚本目前包含:

 var subscriptionId ="<Subscription GUID>"; var pem = "<Subscription GUID>.pem"; var computeManagementClient = computeManagement.createComputeManagementClient(computeManagement.createCertificateCloudCredentials({ subscriptionId: subscriptionId, pem: fs.readFileSync(pem) })); 

而当我从Node.js运行它会产生错误:

 C:\Apps\azure\node_modules\azure-mgmt-compute\node_modules\azure-common\lib\util\validate.js:416 throw new Error('Required argument ' + name + ' for function ' + func + ' is ^ Error: Required argument credentials.pem for function CertificateCloudCredentials is not defined at throwMissingArgument (C:\Apps\azure\node_modules\azure-mgmt-compute\node_modules\azure-common\lib\util\validate.js:416:9) at ArgumentValidator._.extend.string (C:\Apps\azure\node_modules\azure-mgmt-compute\node_modules\azure-common\lib\util\validate.js:426:7) at C:\Apps\azure\node_modules\azure-mgmt-compute\node_modules\azure-common\lib\services\credentials\certificateCloudCredentials.js:35:9 at Object.validateArgs (C:\Apps\azure\node_modules\azure-mgmt-compute\node_modules\azure-common\lib\util\validate.js:478:3) at new CertificateCloudCredentials (C:\Apps\azure\node_modules\azure-mgmt-compute\node_modules\azure-common\lib\services\credentials\certificateCloudCredentials.js:32:14) at Object.exports.createCertificateCloudCredentials (C:\Apps\azure\node_modules\azure-mgmt-compute\lib\compute.js:54:10) at Object.<anonymous> (C:\Apps\azure\setup.js:14:97) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) 

问题是用pem: fs.readFileSync(pem) 。 SDK不会将节点缓冲区转换为string。 Github上有个问题 。

在此之前,修正在缓冲区上使用toString

 pem: fs.readFileSync(pem).toString()