programing

Azure 웹 앱 설정에서 배열을 사용합니다.

showcode 2023. 4. 25. 23:47
반응형

Azure 웹 앱 설정에서 배열을 사용합니다.

제 ASP에서요NET 5(RC1) 코드 다음과 같은 appsetting.json이 있습니다.

{
    "SomeSettings": {
        "PropA": "ValueA",
        "PropB": [
            "ValueB1",
            "ValueB2"
        ]
    }
}

이 값은 가 개발 시스템에서 코드를 실행할 때 사용됩니다(즉,로컬 호스트)를 선택합니다.Wep 앱에 대한 Azure의 응용 프로그램 설정에서 "SomeSettings"를 덮어쓰려면 "PropB" 배열을 어떻게 지정해야 합니까?

정보를 저장할 SomeSettings.cs 클래스는 다음과 같습니다.

public class SomeSettings
{
    public string PropA { get; set; }
    public List<string> PropB { get; set; }
}

문제는 "PropB" - Azure에서 어레이 또는 목록을 문자열로 지정하는 방법 - 이 방법이 가능합니까?

내 스타트업 클래스의 생성자에는 다음이 있습니다.

var builder = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddEnvironmentVariables();

그리고 내 스타트업 클래스의 구성 방법에는 다음이 있습니다.

var someSettings = configuration.GetSection("SomeSettings").Get<SomeSettings>();

이렇게 "앱 설정"에서 설정을 추가하면 문제가 해결됩니다.아래의 ":0" 및 ":1"에 주목하십시오.

형식: 키 -> 값입니다.

SomeSettings:PropA -> AzureValueA
SomeSettings:PropB:0 -> AzureValueB1
SomeSettings:PropB:1 -> AzureValueB2

Windows에서 실행 중이 아니면 콜론을 바꿉니다.:밑줄 두 개 찍어서요.__앱에서 설정을 볼 수 있습니다.그래서 예를 들면요? SomeSettings:PropB:1, 를 사용합니다.SomeSettings__PropB__1.

배열 값이 개체인 경우(아래의 WriteTo 값 참조) 전체 WriteTo 값을 복사하고 필요에 따라 값을 업데이트하고 다음과 같이 응용 프로그램 설정을 만들 수 있습니다.

  "Serilog": {
    "WriteTo": [
      {
        "Name": "ApplicationInsights",
        "Args": {
          "restrictedToMinimumLevel": "Information",
          "telemetryConverter": "Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights",
          "instrumentationKey": "YOUR-KEY"
        }
      },
      {
        "Name": "UmbracoFile",
        "Args": {
          "RestrictedToMinimumLevel": "Error"
        }
      },
      {
        "Name": "Async",
        "Args": {
          "configure": [
            {
              "Name": "Console"
            }
          ]
        }
      }

    ]
  }

여기에 이미지 설명을 입력하십시오.

설명서에 따라 값은 다음과 같아야 합니다.

['entry1', 'entry2', 'entry3']

https://learn.microsoft.com/en-us/azure/app-service/configure-common?tabs=portal#configure-arrays-in-app-settings

간단한 방법은 JSON을 AppSetting에 문자열로 저장하고 직접 직렬화를 해제하는 것입니다.

var serializer = new JavaScriptSerializer();
var settings = serializer.Deserialize<SomeSettings>(configuration.GetSection("SomeSettings"));

그렇지 않으면 직접 고객 구성을 만들어야 할 것입니다.https://msdn.microsoft.com/en-us/library/2tw134k3.aspx

언급URL : https://stackoverflow.com/questions/34063167/using-an-array-in-azure-web-app-settings 입니다.

반응형