Azure:Web 应用程序 - 从已部署的 nodejs 应用程序中列出应用程序设置
Azure: Web Apps - List Application Settings from deployed nodejs app
我已经将 nodeJs 应用程序部署到 Linux Azure AppService。现在我想 list 相同应用程序服务的服务器设置。在 Identity
选项卡下,我为此 AppService 启用了托管身份。在我的 NodeJs 应用程序中,我尝试了以下操作:
const { DefaultAzureCredential } = require("@azure/identity");
const credential = new DefaultAzureCredential();
credential.getToken().then(token => {
...
});
我不太确定这是在做什么,但我不认为它有联系,因为 getToken
永远不会解决。有什么我在这里遗漏的建议吗?
如果您想在应用程序服务中获取服务器设置值,您可以按 this doc 所示尝试 process.env.NODE_ENV
。而不是调用 Azure 管理 API.
如果您想在应用服务之外获取服务器设置值,您的代码无法直接访问服务器设置值,因此您应该调用 Azure 管理 API。如果 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 应用程序并为其分配角色以使其有权调用 Azure mgmt APIs 的信息,请参阅 this doc。
我已经将 nodeJs 应用程序部署到 Linux Azure AppService。现在我想 list 相同应用程序服务的服务器设置。在 Identity
选项卡下,我为此 AppService 启用了托管身份。在我的 NodeJs 应用程序中,我尝试了以下操作:
const { DefaultAzureCredential } = require("@azure/identity");
const credential = new DefaultAzureCredential();
credential.getToken().then(token => {
...
});
我不太确定这是在做什么,但我不认为它有联系,因为 getToken
永远不会解决。有什么我在这里遗漏的建议吗?
如果您想在应用程序服务中获取服务器设置值,您可以按 this doc 所示尝试 process.env.NODE_ENV
。而不是调用 Azure 管理 API.
如果您想在应用服务之外获取服务器设置值,您的代码无法直接访问服务器设置值,因此您应该调用 Azure 管理 API。如果 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 应用程序并为其分配角色以使其有权调用 Azure mgmt APIs 的信息,请参阅 this doc。