ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Azure Functions - Azure Functions 설정 Azure App Configuration 연결
    C# 2022. 7. 1. 12:29
    728x90

    Azure Functions - Azure Functions 설정 Azure App Configuration 연결

    클라우드에서 속성의 관리가 가능한 Azure App Configuration을 연결하는 방법에 대해 알아보자.

    Azure App Configuration 리소스 만들기

    1. Azure Potal 에서 'App Configuration'를 선택해 '만들기'

      image
    2. '리소스 그룹', 위치, 리소스 이름, 가격 등급을 선택 후 생성

      image
    3. 'Access Keys' 메뉴에서 'Connection String'을 복사한다. 이후 해당 리소스에 접속을 하기위해 필요하다.

      image
    4. 설정값을 한번 지정해보자. 'Configuration exploer' 메뉴로 들어와 + Create 클릭 후 'key-value'를 선택한다.
    5. 'key' 항목에는 속성의 Key 값, 'Value' 항목에는 'Value' 항목에는 속성의 값 을 입력하고 설명을 추가하려면 'Label'항목에 설명을 추가하고 type까지 지정해두려면 'Content type'항목에 type을 입력한다.

      image

    Azure Functions에서 App Configuration 사용

    1. Azure Fucntions 프로젝트에서 '새 항목' 추가를 선택해 `Startup.cs' 파일을 생성한다.

      image
    2. Nuget Package로 Microsoft.Extensions.Configuration.AzureAppConfigurationMicrosoft.Azure.Functions.Extensions 를 추가하거나 업데이트한다.
    3. 이후 아래 소스에서 'namespace명'을 변경해 복사해 넣어보자
    using Microsoft.Azure.Functions.Extensions.DependencyInjection;
    using System;
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
    [assembly: FunctionsStartup(typeof('namespace명'.Startup))]
    
    namespace `namespace명`
    {
        internal class Startup : FunctionsStartup
        {
            public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
            {
                //환경변수로 App Configuration 연결 문자열 가져오기
                string cs = Environment.GetEnvironmentVariable("ACCS");
    
                builder.ConfigurationBuilder
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("local.settings.json", optional: false, reloadOnChange: false)
                    .AddEnvironmentVariables()
                    .Build();
    
                // 연결문자열로 AppConfiguration 설정 가져오기
                builder.ConfigurationBuilder.AddAzureAppConfiguration(cs);
    
            }
    
            public override void Configure(IFunctionsHostBuilder builder)
            {
            }
        }
    }
    1. 우선 assembly를 사용하여 Startup에서 Functions가 시작할때 사용하는 형식을 가져온다.
    2. 이후 클래스에 FucntionStartup을 상속받는다.
    3. ConfiguraeAppConfiguration 을 overide 하여 IFucntionsConfigurationbuilder의 builder를 사용 가능하게 된다.
    4. builder.ConfigurationBuilder.AddAzureAppConfiguration(연결문자열값)을 입력해 속성을 등록한다. 만약 내부에서 확인하려면 파일의 속성을 가져오는 것도 방법이다.
    5. Azure Fucntions 실행 함수가 존재하는 파일로 돌아와 (기본값 Function1.cs) 최상단에 using Microsoft.Extensions.Configuration; 를 추가한다.
    6. 그다음 IConfiguration의 인스턴스를 가져오는 생성자를 추가한다.(이때 함수가 static 으로 선언되었다면 지워준다.)
    private readonly IConfiguration _configuration;
    
    public Function1(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    1. 이후 함수에서 string key = _configuration["Test"]; 를 추가해 app Configuration에 등록한 속성값이 받아와지는지 확인한다.
    728x90
    반응형

    댓글

Designed by Tistory.