Обновление настроек приложения удаленного приложения-функции в C# - PullRequest
0 голосов
/ 18 июня 2020

В настоящее время я пишу запланированное приложение-функцию, которое частично должно будет обновить настройку приложения другого приложения-функции, к которому я предоставил доступ субъекту-службе. Приложение-функция, которое мне нужно обновить, размещено в том же плане службы приложений. узнать, возможно ли это в C#

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Похоже, это возможно с использованием библиотек расширений Microsoft. Azure .Management.AppService.Fluent и Microsoft. Azure .Management.ResourceManager.Fluent , которые являются оболочками вокруг вызовов REST.

using Microsoft.Azure.Management.AppService.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent.Core;
using System;
using System.Threading.Tasks;

namespace Azure_Storage_Account_Key_Rotation
{
    internal async Task UpdateApplicationSetting(string appServiceResourceGroupName, string appServiceName, string appSettingName, string appSettingValue)
    {
        var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"),
                                                                                    Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET"),
                                                                                    Environment.GetEnvironmentVariable("AZURE_TENANT_ID"),
                                                                                    AzureEnvironment.AzureGlobalCloud);

        RestClient restClient = RestClient.Configure()
                                    .WithEnvironment(AzureEnvironment.AzureGlobalCloud)
                                    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
                                    .WithCredentials(credentials)
                                    .Build();

        WebSiteManagementClient webSiteManagementClient = new WebSiteManagementClient(restClient) { SubscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID") };

        var appServiceSettings = await webSiteManagementClient.WebApps.ListApplicationSettingsAsync(appServiceResourceGroupName, appServiceName);

        if (appServiceSettings.Properties.ContainsKey(appSettingName))
        {
            appServiceSettings.Properties[appSettingName] = appSettingValue;
            await webSiteManagementClient.WebApps.UpdateApplicationSettingsAsync(appServiceResourceGroupName, appServiceName, appServiceSettings);
        }
    }
}
0 голосов
/ 18 июня 2020

Azure CLI или Azure PowerShell Module - это не что иное, как способ выполнить Azure REST API . Таким образом, вы можете вызывать REST API напрямую, используя C# HttpClient.

Здесь вы можете проверить, как вызывать конечные точки REST API с помощью почтальона (т.е. как получить токены и т.д. c.) Чтобы изменить настройку приложений, вам понадобится эта конечная точка. Веб-приложения - Создать Или обновить конфигурацию -> properties.appSettings .

...