Ошибка аутентификации с помощью Azure с использованием узла SDK:

Я следую учебному руководству Windows Azure SDK для Node.js - Управление вычислениями для управления виртуальными машинами.

Я скачал файл pem, используя azure account cert export в <Subscription GUID>.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)

1 ответ

Решение

Вопрос с pem: fs.readFileSync(pem), SDK не преобразует буфер узла в строку. Есть проблема на Github.

Пока это не фиксированное использование toString в буфере:

pem: fs.readFileSync(pem).toString()
Другие вопросы по тегам