使用节点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()