Azure: веб-приложения - список параметров приложения из развернутого приложения nodejs

Я развернул приложение nodeJs в службе приложений Linux Azure. Теперь я хотел бы перечислить настройки сервера того же приложения-сервиса. Под Identitytab Я включил управляемую идентификацию для этого AppService. В моем приложении NodeJs я пробовал следующее:

      const { DefaultAzureCredential } = require("@azure/identity");

const credential = new DefaultAzureCredential();

credential.getToken().then(token => {
  ...
});

Я не совсем уверен, что это делает, но я не думаю, что это связано, потому что getTokenникогда не разрешается. Любые предложения, что мне здесь не хватает?

1 ответ

Если вы хотите получить значения настроек сервера внутри службы приложения, вы можете просто попробовать process.env.NODE_ENVкак указано в этом документе . Вместо вызова API управления Azure.

Если вы хотите получать значения параметров сервера за пределами службы приложения, ваш код не может напрямую обращаться к значениям параметров сервера, поэтому вам следует вызвать API управления Azure. Если у вас есть проблемы с DefaultAzureCredential, можешь попробовать ClientSecretCredential. Просто попробуйте приведенный ниже код:

      const { ClientSecretCredential } = require("@azure/identity");

const fetch = require("node-fetch")

let  tenantId='';
let  clientID = '';
let clientSecret = '';

let subscriptionID = ''
let resourceGroup = ''
let appServiceName = ''

new ClientSecretCredential(tenantId,clientID,clientSecret).getToken(['https://management.azure.com/.default']).then(result=>{
    accessToken = result.token
    reqURL = `https://management.azure.com/subscriptions/${subscriptionID}/resourceGroups/${resourceGroup}/providers/Microsoft.Web/sites/${appServiceName}/config/appsettings/list?api-version=2019-08-01`
    fetch(reqURL, {
        method: 'post',
        headers: { 'Authorization': 'Bearer ' +  accessToken},
    })
    .then(res => res.json())
    .then(json => console.log(json));

})

Результат :

Чтобы узнать, как создать приложение Azure AD и назначить ему роль, чтобы у него было разрешение на вызов API-интерфейсов управления Azure, см. Этот документ .

Другие вопросы по тегам