Да, это возможно в узле. В Azure все SDK создаются путем переноса REST API. Поэтому, если вы можете узнать REST API нужной вам функции, вы также можете использовать соответствующий SDK API для вашего используемого языка.
Существует REST API PublicIPAddress(Preview) - List All
, ответ которого совпадает с результатом команды az network public-ip list
. Мы должны отметить, что значение обязательного параметра api-version
равно 2018-11-01
, и это самая новая версия ARM API.
Учитывая различные значения api-version
, используемые в разных версиях SDK, сначала обновите версию пакета azure-arm-network
до новейшей с помощью npm update azure-arm-network --save
, а затем запустите код, подобный приведенному ниже, который ссылается на пример кода vm-sample.js
`в GitHub.
var util = require('util');
var path = require('path');
var msRestAzure = require('ms-rest-azure');
var NetworkManagementClient = require('azure-arm-network');
var FileTokenCache = require('../../lib/util/fileTokenCache');
var tokenCache = new FileTokenCache(path.resolve(path.join(__dirname, '../../test/tmp/tokenstore.json')));
//Environment Setup
_validateEnvironmentVariables();
var clientId = process.env['CLIENT_ID'];
var domain = process.env['DOMAIN'];
var secret = process.env['APPLICATION_SECRET'];
var subscriptionId = process.env['AZURE_SUBSCRIPTION_ID'];
var credentials = new msRestAzure.ApplicationTokenCredentials(clientId, domain, secret, { 'tokenCache': tokenCache });
var networkClient = new NetworkManagementClient(credentials, subscriptionId);
function listAllPublicIP(options, callback) {
return networkClient.publicIPAddresses.listAll(options, callback);
}
Вы можете проверить приведенный выше вызов API, правильно ли вызывает правильный API REST с параметром запроса api-version=2018-11-01
через Fiddler
.
Кроме того, вы можете напрямую вызвать REST API с заголовком Authorization
, значение которого получено из переменной credentials
приведенного выше кода.