Udostępnij za pomocą


Samouczek: używanie konfiguracji dynamicznej w aplikacji usługi Azure Functions

W tym samouczku pokazano, jak włączyć aktualizacje konfiguracji dynamicznej w aplikacji usługi Azure Functions. Opiera się ona na aplikacji usługi Azure Functions wprowadzonej w przewodnikach Szybki start. Przed kontynuowaniem najpierw zakończ tworzenie aplikacji usługi Azure Functions za pomocą usługi Azure App Configuration .

Z tego samouczka dowiesz się, jak wykonywać następujące działania:

  • Konfigurowanie dynamicznego odświeżania konfiguracji dla aplikacji usługi Azure Functions.
  • Włącz automatyczne odświeżanie konfiguracji przy użyciu oprogramowania pośredniczącego App Configuration.
  • Użyj najnowszej konfiguracji w wywołaniach funkcji, gdy wystąpią zmiany w magazynie App Configuration.

Wymagania wstępne

Ponowne ładowanie danych z usługi App Configuration

Dostawca .NET usługi Azure App Configuration obsługuje buforowanie i dynamiczne odświeżanie ustawień konfiguracji na podstawie aktywności aplikacji. W tej sekcji skonfigurujesz dostawcę do dynamicznego odświeżania ustawień i włączysz automatyczne odświeżanie konfiguracji przy użyciu oprogramowania pośredniczącego App Configuration, za każdym razem, Microsoft.Azure.AppConfiguration.Functions.Workergdy funkcja jest wykonywana.

Uwaga

Usługa Azure App Configuration może być używana z usługą Azure Functions w modelu izolowanego procesu roboczego lub w modelu procesu. W tym samouczku użyto modelu izolowanego pracownika jako przykładu. Kompletne przykłady kodu dla obu modeli można znaleźć w repozytorium GitHub usługi Azure App Configuration.

  1. Otwórz plik Program.cs i zaktualizuj wywołanie AddAzureAppConfiguration, aby uwzględnić metodę ConfigureRefresh. Ta metoda konfiguruje warunki odświeżania ustawień konfiguracji, w tym określanie kluczy do monitorowania i interwał między sprawdzaniem odświeżania.

    // 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();
               });
    });
    

    Aby poinstruować dostawcę App Configuration o ponownym załadowaniu całej konfiguracji za każdym razem, gdy wykryje zmianę w dowolnej wybranej wartości klucza (tych, które rozpoczynają się od RegisterAll i nie mają etykiety), należy wywołać metodę . Aby uzyskać więcej informacji na temat monitorowania zmian konfiguracji, zobacz Najlepsze rozwiązania dotyczące odświeżania konfiguracji.

    Domyślnie interwał odświeżania jest ustawiony na 30 sekund. Ten interwał można dostosować, wywołując metodę AzureAppConfigurationRefreshOptions.SetRefreshInterval .

  2. Zaktualizuj plik Program.cs , aby włączyć automatyczne odświeżanie konfiguracji po każdym wykonaniu funkcji przez dodanie oprogramowania pośredniczącego App Configuration:

    // 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();
    

Lokalne testowanie funkcji

  1. Ustaw zmienną środowiskową .

    Ustaw zmienną środowiskową o nazwie AZURE_APPCONFIG_ENDPOINT na punkt końcowy Twojego sklepu App Configuration, który znajdziesz w sekcji Przegląd w portalu Azure.

    Jeśli używasz wiersza polecenia systemu Windows, uruchom następujące polecenie i uruchom ponownie wiersz polecenia, aby zezwolić na wprowadzenie zmian:

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

    Jeśli używasz programu PowerShell, uruchom następujące polecenie:

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

    Jeśli używasz systemu macOS lub Linux, uruchom następujące polecenie:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. Aby przetestować funkcję, naciśnij F5. Po wyświetleniu monitu zaakceptuj żądanie programu Visual Studio dotyczące pobrania i zainstalowania zestawu narzędzi Azure Functions Core (CLI). Może być również konieczne włączenie wyjątku zapory, aby narzędzia mogły obsługiwać żądania HTTP.

  3. Skopiuj adres URL funkcji z danych wyjściowych środowiska uruchomieniowego usługi Azure Functions.

    Debugowanie funkcji Quickstart w VS

  4. Wklej adres URL żądania HTTP w pasku adresu przeglądarki. Na poniższej ilustracji przedstawiono odpowiedź w przeglądarce na lokalne żądanie GET zwrócone przez funkcję.

    Uruchamianie funkcji szybkiego startu lokalnego

  5. Wybierz magazyn App Configuration w witrynie Azure Portal i zaktualizuj wartość następującego klucza w Eksploratorze konfiguracji.

    Klawisz Wartość
    TestApp:Ustawienia:Wiadomość Dane z usługi Azure App Configuration — zaktualizowano
  6. Odśwież przeglądarkę kilka razy. Po upływie domyślnego interwału odświeżania wynoszącym 30 sekund na stronie zostanie wyświetlona zaktualizowana wartość pobrana z aplikacji usługi Azure Functions.

    Funkcja Quickstart — odświeżanie lokalne

Czyszczenie zasobów

Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.

Ważne

Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo niewłaściwej grupy zasobów lub zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.

  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
  2. W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
  3. Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
  4. Wybierz pozycję Usuń grupę zasobów.
  5. Poproszono Cię o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.

Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.

Następne kroki

W tym samouczku włączono aplikację usługi Azure Functions w celu dynamicznego odświeżania ustawień konfiguracji z poziomu usługi App Configuration.

Aby dowiedzieć się, jak używać flag funkcji z usługi Azure App Configuration w aplikacji usługi Azure Functions, przejdź do następującego samouczka.

Aby dowiedzieć się, jak używać tożsamości zarządzanej platformy Azure w celu usprawnienia dostępu do usługi App Configuration, przejdź do następującego samouczka.