Сохраняйте и загружайте настройки приложения функций в виде объекта JSON с помощью функций C # и Azure 2.x

#azure #azure-functions

#azure #azure-функции

Вопрос:

Приведенные ниже настройки приложения сохраняются и читаются следующим образом:

Сохраненные:

local.settings.json

 {
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "Car_Id": "id",
    "Car_Name": "name"
  }
}
  

Загружено:

 GetEnvironmentVariable("Car_Id");

private static string GetEnvironmentVariable(string name)
    {
        return (string)System.Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Process)[name];
    }
  

Возможно ли сохранить настройки как object и загрузить их в объект?

local.settings.json

 {
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
  Car: {  
   "Id": "id",
   "Name": "name"
  }
}

class Car{
  public int Id {get;set;}
  public string Name {get;set;}
}
  

Visual studio 2017

Udpate

Решение должно быть совместимым с настройками в настройках приложения функций Azure. То есть, можно ли изменять настройки в local.settngs.json будет сохранен в настройках приложения функций Azure?

Ответ №1:

Возможно ли сохранить настройки как object и загрузить их в объект?

Да, вы могли бы использовать приведенный ниже код для достижения этой цели.

   public static async Task<IActionResult> Car(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "Car")]
    HttpRequest httpRequest, ILogger log, ExecutionContext context)
  {
      log.LogInformation("C# HTTP trigger function processed a request.");

      var config = new ConfigurationBuilder()
          .SetBasePath(context.FunctionAppDirectory)
          .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
          .AddEnvironmentVariables()
          .Build();
      var cars= new Car();
      config.Bind("Car", cars);
      var b = cars.Id.ToString();
      log.LogInformation($"Car id is: {b}");
      return (ActionResult)new OkObjectResult($"Hello, {b}");
  }
  

local.settings.json Как показано ниже:

 {
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "xxxxx",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  },
  "Car": {
    "Id": "123456",
    "Name": "name_1"
  }
}
  

Класс Car:

 public class Car
{
    public int Id { get; set; }
    public string Name { get; set; }
}
  

Снимок:

введите описание изображения здесь

Для получения более подробной информации вы могли бы обратиться к этой статье.

Надеюсь, это поможет вам 🙂

Комментарии:

1. ответил за ссылку