azure - 更新应用程序设置:Azure Functions
问题描述
我正在尝试使用以下请求仅更新一个应用程序设置。我的设置正在正确更新,但我的所有其他应用程序设置都消失了。我在那里只看到一个具有我尝试更新的正确更新值的设置。我不想松动或更改所有其他应用程序设置。
我在这里错过了什么或者我做错了什么?
我正在关注以下给定的文章:
https://docs.microsoft.com/en-us/rest/api/appservice/webapps/updateapplicationsettings
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/appsettings
我正在使用他们的在线工具发送请求: https ://docs.microsoft.com/en-us/rest/api/appservice/webapps/updateapplicationsettings
由于我使用的是在线工具,它正在生成授权令牌。但我想以编程方式进行。如果我能获得示例代码来生成令牌并更新应用程序设置,那就太好了。
授权:承载
eyJ0eXAiOixxxxxxxeyE_rd3Cw
内容类型:application/json
解决方案
我重现了您的问题,如果您想更新应用程序设置,您需要记下所有应用程序设置,否则它将被一个应用程序设置覆盖。
准备:
1.Register an App registration
在 Azure Active Directory 中获取 appid 和 appsecret。请参考这篇文章。
2.将注册的应用添加Role assignments
到Access control
.
这是您可以参考的 C# 代码示例。
var appId = "xxxxxxxxxxxxxxxxxxxx";
var secretKey = "xxxxxxxxxxxxxxxxxxxx";
var tenantId = "xxxxxxxxxxxxxxxxxxx";
var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
ClientCredential clientCredential = new ClientCredential(appId, secretKey);
var tokenResponse = context.AcquireTokenAsync("https://management.azure.com/", clientCredential).Result;
var accessToken = tokenResponse.AccessToken;
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
var baseUrl = new Uri($"https://management.azure.com/");
var requestURl = baseUrl +
@"subscriptions/xxxxxxxxxxxxxxxxxxx/resourceGroups/xxxxxx/providers/Microsoft.Web/sites/xxxxxx/config/appsettings?api-version=2016-08-01";
string body = "{\"kind\": \"webapp\",\"properties\": {\"WEBSITE_NODE_DEFAULT_VERSION\": \"6.9.1\",\"aaa\": \"bbb\"}}";
var stringContent = new StringContent(body, Encoding.UTF8, "application/json");
var response = client.PutAsync(requestURl, stringContent).Result;
}
结果如下:
推荐阅读
- r - dplyr 中的函数和非标准评估
- visual-studio - 如何添加不属于代码库的“评论”?
- python - Python - Lark - 语法 - 无法生成 AST
- hadoop - Hortonworks HDP 3:启动 ResourceManager 时出错
- sql - 如果我想将两个不同表中的 2 个值相乘,我应该在迁移中输入什么?ASP.NET MVC 实体框架
- javascript - 如何在 Javascript 中设置循环迭代之间的延迟?
- html - 可以将元素强制到隐式网格的最后一行吗?
- powershell - Powershell Like 运算符调用 REST 错误
- c# - Windows或浏览器是否保存X509证书的签名?
- inno-setup - Inno Setup:只运行一次卸载脚本