Udostępnij za pośrednictwem


Szybki start: tworzenie aplikacji usługi Azure Functions za pomocą usługi Azure App Configuration

W tym przewodniku Szybki start pokazano, jak scentralizować ustawienia aplikacji usługi Azure Functions i zarządzać nimi poza kodem przy użyciu usługi Azure App Configuration. Dzięki integracji dostawcy konfiguracji platformy .NET możesz dodać usługę App Configuration jako dodatkowe źródło konfiguracji z zaledwie kilkoma prostymi zmianami kodu.

Wymagania wstępne

Dodawanie wartości klucza

Dodaj następującą wartość klucza do magazynu App Configuration i pozostaw wartości domyślne Etykieta i Typ zawartości . Aby uzyskać więcej informacji na temat dodawania par klucz-wartość do magazynu przy użyciu portalu Azure lub interfejsu wiersza polecenia, przejdź do Utwórz parę klucz-wartość.

Klawisz Wartość
TestApp:Settings:Message Dane z konfiguracji aplikacji Azure

Utwórz aplikację funkcjonalną

Utwórz aplikację usługi Azure Functions przy użyciu programu Visual Studio, wybierając szablon usługi Azure Functions (C#). Ten szablon przeprowadzi Cię przez proces konfigurowania podstawowych ustawień projektu. Aby uzyskać szczegółowe instrukcje, zobacz Tworzenie usługi Azure Functions przy użyciu programu Visual Studio.

Użyj poniższej tabeli jako odwołania do kluczowych parametrów podczas tworzenia aplikacji funkcji.

Ustawienia Wartość
Pracownik funkcji .NET 8.0 Izolowany
Funkcja Wyzwalacz HTTP
Poziom autoryzacji Anonim

Uwaga / Notatka

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 przewodniku Szybki start użyto modelu izolowanego procesu roboczego jako przykładu. Kompletne przykłady kodu dla obu modeli można znaleźć w repozytorium GitHub usługi Azure App Configuration.

Nawiązanie połączenia ze sklepem App Configuration

Możesz nawiązać połączenie ze sklepem App Configuration przy użyciu Microsoft Entra ID (zalecane) lub ciągu połączenia.

  1. Kliknij projekt prawym przyciskiem myszy i wybierz polecenie Zarządzaj pakietami NuGet. Na karcie Przeglądaj wyszukaj i dodaj do projektu najnowszą stabilną wersję następujących pakietów NuGet.

    • Microsoft.Azure.AppConfiguration.Functions.Worker
    • Azure.Identity
  2. Otwórz Program.cs i zaktualizuj kod w następujący sposób. Dodasz usługę Azure App Configuration jako dodatkowe źródło konfiguracji, wywołując metodę AddAzureAppConfiguration .

    Aby się uwierzytelnić w sklepie App Configuration, używasz DefaultAzureCredential. Postępuj zgodnie z instrukcjami, aby przypisać swoje poświadczenie do roli Czytelnika danych konfiguracji aplikacji. Upewnij się, że przed uruchomieniem aplikacji pozwolisz na wystarczający czas na propagację uprawnień.

    using Azure.Identity;
    using Microsoft.Azure.Functions.Worker.Builder;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Hosting;
    
    var builder = FunctionsApplication.CreateBuilder(args);
    
    // 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:*");
    });
    
  3. Otwórz Function1.cs i dodaj następującą przestrzeń nazw.

    using Microsoft.Extensions.Configuration;
    

    Zaktualizuj konstruktor, aby uzyskać wystąpienie IConfiguration poprzez iniekcję zależności.

    private readonly IConfiguration _configuration;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IConfiguration configuration, ILogger<Function1> logger)
    {
        _configuration = configuration;
        _logger = logger;
    }
    
  4. Zaktualizuj metodę , Run aby odczytywać wartości z konfiguracji.

    [Function("Function1")]
    public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string key = "TestApp:Settings:Message";
        string? message = _configuration[key];
    
        return new OkObjectResult(message ?? $"Please create a key-value with the key '{key}' in Azure App Configuration.");
    }
    

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. Naciśnij F5, aby przetestować funkcję. 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

Zarządzaj parametrami wyzwalacza za pomocą odwołań w usłudze App Configuration

Wyzwalacze usługi Azure Functions definiują sposób wywoływanej funkcji. Atrybuty wyzwalacza, takie jak nazwy kolejek lub nazwy baz danych, są ładowane w czasie uruchamiania hosta i nie mogą bezpośrednio pobierać wartości z usługi Azure App Configuration. Aby zarządzać tymi parametrami, możesz użyć funkcji referencyjnej usługi App Configuration dostępnej dla usług Azure Functions i App Service.

Funkcja referencyjna usługi App Configuration umożliwia odwoływanie się do par klucz-wartość przechowywanych w usłudze Azure App Configuration bezpośrednio z ustawień aplikacji. Usługa Azure Functions rozwiązuje te odwołania podczas uruchamiania, umożliwiając centralne i bezpieczne zarządzanie parametrami wyzwalacza.

Rozważmy na przykład aplikację funkcji wyzwalanej przez kolejkę. Zamiast określać nazwę kolejki bezpośrednio w atrybucie wyzwalacza, możesz odwołać się do wartości klucza przechowywanej w usłudze Azure App Configuration.

  1. W magazynie usługi Azure App Configuration dodaj wartość klucza dla nazwy kolejki:

    Klawisz Wartość
    TestApp:Storage:QueueName <Nazwa kolejki na koncie magazynowym>
  2. W aplikacji funkcji wybierz pozycję Ustawienia ->Zmienne środowiskowe ->Ustawienia aplikacji w witrynie Azure Portal i utwórz ustawienie aplikacji odwołujące się do klucza konfiguracji aplikacji:

    Nazwa Wartość
    MyQueueName @Microsoft.AppConfiguration(Endpoint=<your-store-endpoint>; Key=TestApp:Storage:QueueName)

    Wskazówka

    Jeśli masz wiele par klucz-wartości w usłudze Azure App Configuration, możesz je wyeksportować w partii jako odwołania do usługi App Configuration do usługi Azure Functions przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia.

  3. Włącz tożsamość zarządzaną dla aplikacji usługi Azure Functions i przypisz jej rolę Czytelnik danych konfiguracji aplikacji dla repozytorium App Configuration. Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania odwołań do konfiguracji aplikacji, zobacz Use App Configuration references in App Service and Azure Functions (Używanie odwołań do konfiguracji aplikacji w usługach App Service i Azure Functions).

  4. Zaktualizuj funkcję wyzwalaną przez kolejkę, aby użyć ustawienia aplikacji:

    [Function("QueueTriggeredFunction")]
    public void Run([QueueTrigger(queueName: "%MyQueueName%")] QueueMessage message)
    {
        _logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}");
    }
    

    W czasie wykonywania usługa Azure Functions zamienia %MyQueueName% symbol zastępczy na wartość przechowywaną w usłudze Azure App Configuration, umożliwiając centralne zarządzanie parametrami wyzwalacza bez ich twardego kodowania w kodzie funkcji.

Uprzątnij zasoby

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.

Dalsze kroki

W tym szybkim starcie zintegrowano usługę Azure App Configuration z aplikacją Azure Functions. Aby dowiedzieć się, jak umożliwić aplikacji funkcji dynamiczne odświeżanie ustawień konfiguracji, przejdź do następnego samouczka.

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.