다음을 통해 공유


자습서: Azure Functions 앱에서 동적 구성 사용

이 자습서에서는 Azure Functions 앱에서 동적 구성 업데이트를 사용하도록 설정하는 방법을 보여 줍니다. 빠른 시작에 도입된 Azure Functions 앱을 기반으로 빌드됩니다. 계속하기 전에 먼저 Azure App Configuration을 사용하여 Azure Functions 앱 만들기 를 완료합니다.

이 자습서에서는 다음 방법을 알아봅니다.

  • Azure Functions 앱에 대한 동적 구성 새로 고침을 설정합니다.
  • App Configuration 미들웨어를 사용하여 자동 구성 새로 고침을 사용하도록 설정합니다.
  • App Configuration 저장소에서 변경이 발생할 때 함수 호출의 최신 구성을 사용합니다.

필수 조건

App Configuration에서 데이터 다시 로드

Azure App Configuration .NET 공급자는 애플리케이션 활동에 따라 구성 설정의 캐싱 및 동적 새로 고침을 지원합니다. 이 섹션에서는 함수가 실행 될 때마다 설정을 동적으로 새로 고치고 App Configuration 미들웨어 Microsoft.Azure.AppConfiguration.Functions.Worker를 사용하여 자동 구성 새로 고침을 사용하도록 공급자를 구성합니다.

비고

Azure App Configuration은 격리된 작업자 모델 또는 In-process 모델에서 Azure Functions와 함께 사용할 수 있습니다. 이 자습서에서는 격리된 작업자 모델을 예로 사용합니다. Azure App Configuration GitHub 리포지토리에서 두 모델에 대한 전체 코드 예제를 찾을 수 있습니다.

  1. Program.cs 파일을 열고 메서드를 포함하도록 AddAzureAppConfiguration 호출을 업데이트합니다ConfigureRefresh. 이 메서드는 모니터링할 키와 새로 고침 검사 사이의 간격을 지정하는 등 구성 설정을 새로 고치는 조건을 구성합니다.

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? 
            throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty."));
        options.Connect(endpoint, new DefaultAzureCredential())
               // Load all keys that start with `TestApp:` and have no label
               .Select("TestApp:*")
               // Reload configuration if any selected key-values have changed.
               // Use the default refresh interval of 30 seconds. It can be overridden via AzureAppConfigurationRefreshOptions.SetRefreshInterval.
               .ConfigureRefresh(refreshOptions =>
               {
                   refreshOptions.RegisterAll();
               });
    });
    

    이 메서드를 RegisterAll 호출하여 선택한 키 값( TestApp 으로 시작하고 레이블이 없는 키 값)의 변경 내용을 감지할 때마다 전체 구성을 다시 로드하도록 App Configuration 공급자에게 지시합니다. 구성 변경 내용을 모니터링하는 방법에 대한 자세한 내용은 구성 새로 고침에 대한 모범 사례를 참조하세요.

    기본적으로 새로 고침 간격은 30초로 설정됩니다. 메서드를 호출하여 이 간격을 AzureAppConfigurationRefreshOptions.SetRefreshInterval 사용자 지정할 수 있습니다.

  2. App Configuration 미들웨어를 추가하여 각 함수 실행 시 자동 구성 새로 고침을 사용하도록 Program.cs 파일을 업데이트합니다.

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        // Omitted the code added in the previous step.
    });
    
    // Add Azure App Configuration middleware to the service collection.
    builder.Services.AddAzureAppConfiguration()
    
    // Use Azure App Configuration middleware for dynamic configuration refresh.
    builder.UseAzureAppConfiguration();
    
    builder.ConfigureFunctionsWebApplication();
    
    builder.Build().Run();
    

로컬에서 함수 테스트

  1. 환경 변수를 설정합니다.

    AZURE_APPCONFIG_ENDPOINT라는 환경 변수를 Azure 포털에서, 저장소의 개요 아래에 있는 App Configuration 저장소의 엔드포인트로 설정합니다.

    Windows 명령 프롬프트를 사용하는 경우 다음 명령을 실행하고, 명령 프롬프트를 다시 시작하여 변경 내용을 적용합니다.

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    PowerShell을 사용하는 경우 다음 명령을 실행합니다.

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    macOS 또는 Linux를 사용하는 경우 다음 명령을 실행합니다.

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. 함수를 테스트하려면 F5 키를 누릅니다. 메시지가 표시되면 Visual Studio의 요청에 동의하여 Azure Functions Core(CLI) 도구를 다운로드하고 설치합니다. 또한 도구에서 HTTP 요청을 처리할 수 있도록 방화벽 예외를 사용하도록 설정해야 할 수도 있습니다.

  3. Azure Functions 런타임 출력에서 함수의 URL을 복사합니다.

    VS의 빠른 시작 함수 디버깅

  4. HTTP 요청의 URL을 브라우저의 주소 표시줄에 붙여넣습니다. 다음 이미지는 함수에서 반환된 로컬 GET 요청에 대한 브라우저의 응답을 보여 줍니다.

    빠른 시작 함수 로컬 시작

  5. Azure Portal에서 App Configuration 저장소를 선택하고 구성 탐색기에서 다음 키의 값을 업데이트합니다.

    열쇠 가치
    TestApp:설정:메시지 Azure App Configuration의 데이터 - 업데이트됨
  6. 브라우저를 몇 번 새로 고칩니다. 기본 새로 고침 간격 30초가 지나면 페이지에 Azure Functions 앱에서 검색된 업데이트된 값이 표시됩니다.

    로컬 빠른 시작 함수 새로 고침

리소스 정리

이 문서에서 만든 리소스를 계속 사용하지 않으려면 여기서 만든 리소스 그룹을 삭제하여 요금이 부과되지 않도록 합니다.

중요합니다

리소스 그룹을 삭제하면 다시 되돌릴 수 없습니다. 리소스 그룹 및 포함된 모든 리소스가 영구적으로 삭제됩니다. 잘못된 리소스 그룹 또는 리소스를 자동으로 삭제하지 않도록 합니다. 유지하려는 다른 리소스가 포함된 리소스 그룹 내에서 이 문서에 대한 리소스를 만든 경우 리소스 그룹을 삭제하는 대신 해당 창에서 각 리소스를 개별적으로 삭제합니다.

  1. Azure Portal에 로그인하고 리소스 그룹을 선택합니다.
  2. 이름으로 필터링 상자에서 리소스 그룹의 이름을 입력합니다.
  3. 결과 목록에서 리소스 그룹 이름을 선택하여 개요를 확인합니다.
  4. 리소스 그룹 삭제를 선택합니다.
  5. 리소스 그룹 삭제를 확인하는 메시지가 표시됩니다. 리소스 그룹의 이름을 입력하여 확인하고 삭제를 선택합니다.

잠시 후, 리소스 그룹 및 모든 해당 리소스가 삭제됩니다.

다음 단계

이 자습서에서는 Azure Functions 앱을 사용하도록 설정하여 App Configuration에서 구성 설정을 동적으로 새로 고칩니다.

Azure Functions 앱 내에서 Azure App Configuration의 기능 플래그를 사용하는 방법을 알아보려면 다음 자습서를 진행합니다.

Azure 관리 ID를 사용하여 App Configuration에 대한 액세스를 간소화하는 방법을 알아보려면 다음 자습서를 계속 진행합니다.