Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym szybkim starcie utworzysz aplikację Azure Functions i użyjesz w niej flag cech. Funkcja zarządzania z Azure App Configuration służy do centralnego przechowywania wszystkich flag funkcji i kontrolowania ich stanów.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi App Configuration, jak pokazano w samouczku dotyczącym tworzenia magazynu konfiguracji aplikacji.
- Program Visual Studio z pakietem roboczym Programowanie na platformie Azure .
Dodawanie flagi funkcji
Dodaj flagę funkcji o nazwie Beta do sklepu App Configuration i pozostaw pole Etykieta i Opis z ich wartościami domyślnymi. Aby uzyskać więcej informacji na temat dodawania flag funkcji do magazynu przy użyciu portalu Azure lub interfejsu wiersza polecenia, przejdź do Tworzenie flagi funkcji.
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.
| Ustawienie | Wartość |
|---|---|
| Pracownik funkcji | .NET 8.0 Izolowany |
| Funkcja | Wyzwalacz HTTP |
| Poziom autoryzacji | Anonim |
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 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.
Połącz się z magazynem konfiguracji aplikacji
Możesz nawiązać połączenie ze sklepem App Configuration przy użyciu Microsoft Entra ID (zalecane) lub ciągu połączenia.
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
- Microsoft.FeatureManagement
- Azure.Identity
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ć poświadczeniu rolę Czytelnika danych konfiguracji aplikacji. Przed uruchomieniem aplikacji należy zezwolić na wystarczający czas na propagację uprawnień.using Azure.Identity; using Microsoft.Azure.Functions.Worker.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.FeatureManagement; 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 feature flags with no label. To load feature flags with specific keys and labels, set via FeatureFlagOptions.Select. // Use the default refresh interval of 30 seconds. It can be overridden via FeatureFlagOptions.SetRefreshInterval. .UseFeatureFlags(); });Metoda
UseFeatureFlags()instruuje dostawcę, aby załadował flagi funkcji. Domyślnie wszystkie flagi funkcji bez etykiet są ładowane i odświeżane co 30 sekund. Wybór i odświeżanie flag funkcji są konfigurowane niezależnie od innych wartości klucza konfiguracji. Można dostosować to zachowanie, przekazując akcjęFeatureFlagOptionsdo metodyUseFeatureFlags. SłużyFeatureFlagOptions.Selectdo określania kluczy i etykiet flag funkcji do załadowania oraz używaniaFeatureFlagOptions.SetRefreshIntervaldo zastąpienia domyślnego interwału odświeżania.Napiwek
Jeśli nie chcesz, aby żadna konfiguracja inna niż flagi funkcji zostały załadowane do aplikacji, możesz wywołać metodę
options.Select("_"), aby załadować tylko nieistniejący fikcyjny klucz"_". Domyślnie wszystkie wartości kluczy konfiguracji bez etykiet w sklepie App Configuration zostaną załadowane, o ile nie zostanie wywołana żadna metodaSelect.Zaktualizuj plik Program.cs , aby włączyć automatyczne odświeżanie flag funkcji w każdym wykonaniu funkcji, dodając oprogramowanie pośredniczące usługi Azure App Configuration. Rejestrujesz również usługę zarządzania funkcjami, umożliwiając jej wstrzykiwanie i używanie w kodzie funkcji później.
// Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { // Omitted the code added in the previous step. }); // Add Azure App Configuration middleware and feature management to the service collection. builder.Services .AddAzureAppConfiguration() .AddFeatureManagement(); // Use Azure App Configuration middleware for dynamic configuration and feature flag refresh. builder.UseAzureAppConfiguration(); builder.ConfigureFunctionsWebApplication(); builder.Build().Run();Otwórz Function1.cs i dodaj następującą przestrzeń nazw.
using Microsoft.FeatureManagement;Zaktualizuj konstruktor, aby uzyskać wystąpienie
IVariantFeatureManagerSnapshotpoprzez iniekcję zależności.private readonly IVariantFeatureManagerSnapshot _featureManager; private readonly ILogger<Function1> _logger; public Function1(IVariantFeatureManagerSnapshot featureManager, ILogger<Function1> logger) { _featureManager = featureManager; _logger = logger; }Zaktualizuj metodę
Runaby zwrócić komunikat odpowiedzi na podstawie stanu flagi funkcji.[Function("Function1")] public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req) { _logger.LogInformation("C# HTTP trigger function processed a request."); // Read feature flag string featureName = "Beta"; bool featureEnabled = await _featureManager.IsEnabledAsync(featureName, req.HttpContext.RequestAborted); return new OkObjectResult(featureEnabled ? $"The Feature Flag '{featureName}' is turned ON!" : $"The Feature Flag '{featureName}' is turned OFF"); }
Lokalne testowanie funkcji
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>'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.
Skopiuj adres URL funkcji z danych wyjściowych środowiska uruchomieniowego usługi Azure Functions.
Wklej adres URL żądania HTTP w pasku adresu przeglądarki. Na poniższej ilustracji przedstawiono odpowiedź wskazującą, że flaga funkcji Beta jest wyłączona.
W witrynie Azure Portal przejdź do sklepu App Configuration. W obszarze Operacje wybierz pozycję Menedżer funkcji, znajdź flagę funkcji beta i ustaw przełącznik Włączonena włączone.
Odśwież przeglądarkę kilka razy. Po przejściu przedziału czasu interwału odświeżania strona zmieni się, aby wskazać, że flaga funkcji Beta jest włączona, jak pokazano na obrazie.
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.
- Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
- W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
- Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
- Wybierz pozycję Usuń grupę zasobów.
- Prosi się Ciebie 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 przewodniku Szybki start utworzono flagę funkcji i użyto jej w aplikacji usługi Azure Functions.
Aby uruchomić pełną funkcję biblioteki zarządzania funkcjami platformy .NET, przejdź do następującego dokumentu.
Aby dowiedzieć się więcej na temat zarządzania flagami funkcjonalności w usłudze Azure App Configuration, przejdź do poniższego samouczka.