Szybki start: tworzenie aplikacji usługi Azure Functions przy użyciu usługi aplikacja systemu Azure Configuration
W tym przewodniku Szybki start uwzględnisz usługę konfiguracji aplikacja systemu Azure w aplikacji usługi Azure Functions, aby scentralizować magazyn i zarządzać wszystkimi ustawieniami aplikacji niezależnie od kodu.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi App Configuration. Utwórz magazyn.
- Program Visual Studio z pakietem roboczym Programowanie na platformie Azure.
- Jeśli nie masz jeszcze zainstalowanego narzędzia usługi Azure Functions z programem Visual Studio.
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 wartości klucz-wartości do magazynu przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia, przejdź do artykułu Create a key-value (Tworzenie wartości klucza).
Key | Wartość |
---|---|
TestApp:Settings:Message | Dane z konfiguracji aplikacja systemu Azure |
Tworzenie aplikacji usługi Functions
Szablon projektu usługi Azure Functions w programie Visual Studio tworzy projekt biblioteki klas języka C#, który można opublikować w aplikacji funkcji na platformie Azure. Za pomocą aplikacji funkcji można grupować funkcje jako jednostkę logiczną, aby ułatwić zarządzanie, wdrażanie, skalowanie i udostępnianie zasobów.
Z menu programu Visual Studio wybierz pozycję Plik>nowy>projekt.
W obszarze Tworzenie nowego projektu wprowadź funkcje w polu wyszukiwania, wybierz szablon usługi Azure Functions , a następnie wybierz pozycję Dalej.
W obszarze Konfigurowanie nowego projektu wprowadź nazwę projektu, a następnie wybierz pozycję Utwórz. Nazwa aplikacji funkcji musi być prawidłową nazwą przestrzeni nazw C#, dlatego nie należy używać znaków podkreślenia, łączników ani znaków innych niż alfanumeryczne.
W przypadku ustawień tworzenia nowej aplikacji usługi Azure Functions użyj wartości w poniższej tabeli:
Ustawienie Wartość Opis Wersja platformy .NET Izolowana platforma .NET 6 Ta wartość tworzy projekt funkcji uruchamiany w izolowanym procesie roboczym. Proces izolowany proces roboczy obsługuje inną niż LTS wersję platformy .NET, a także .NET Framework. Aby uzyskać więcej informacji, zobacz Omówienie wersji środowiska uruchomieniowego usługi Azure Functions. Szablon funkcji Wyzwalacz HTTP Ta wartość tworzy funkcję wyzwalaną przez żądanie HTTP. Konto magazynu (AzureWebJobsStorage) Emulator magazynu Ponieważ aplikacja funkcji na platformie Azure wymaga konta magazynu, jest przypisywana lub tworzona podczas publikowania projektu na platformie Azure. Wyzwalacz HTTP nie używa konta usługi Azure Storage parametry połączenia; wszystkie inne typy wyzwalaczy wymagają prawidłowego konta usługi Azure Storage parametry połączenia. Poziom autoryzacji Anonimowy Utworzona funkcja może zostać wyzwolona przez dowolnego klienta bez podawania klucza. To ustawienie autoryzacji ułatwia testowanie nowej funkcji. Aby uzyskać więcej informacji na temat kluczy i autoryzacji, zobacz Authorization keys and HTTP and webhook bindings (Klucze autoryzacji oraz powiązania http i element webhook). Upewnij się, że ustawiono poziom autoryzacji na Anonimowy. Jeśli wybierzesz domyślny poziom funkcji, musisz przedstawić klucz funkcji w żądaniach dostępu do punktu końcowego funkcji.
Wybierz pozycję Utwórz , aby utworzyć projekt funkcji i funkcję wyzwalacza HTTP.
Nawiązywanie połączenia z magazynem usługi App Configuration
Ten projekt użyje iniekcji zależności w usłudze Azure Functions platformy .NET i doda aplikacja systemu Azure Configuration jako dodatkowe źródło konfiguracji. Usługa Azure Functions obsługuje uruchamianie procesu lub izolowanego procesu. Wybierz ten, który spełnia Twoje wymagania.
Kliknij projekt prawym przyciskiem myszy i wybierz polecenie Zarządzaj pakietami NuGet. Na karcie Przeglądaj wyszukaj i dodaj następujące pakiety NuGet do projektu.
- Microsoft.Extensions.Configuration.AzureAppConfiguration w wersji 4.1.0 lub nowszej
- Microsoft.Azure.Functions.Extensions w wersji 1.1.0 lub nowszej
Dodaj kod, aby nawiązać połączenie z usługą aplikacja systemu Azure Configuration.
Dodaj nowy plik, Startup.cs, przy użyciu następującego kodu. Definiuje klasę o nazwie
Startup
, która implementuje klasę abstrakcyjnąFunctionsStartup
. Atrybut zestawu służy do określania nazwy typu używanego podczas uruchamiania usługi Azure Functions.Metoda
ConfigureAppConfiguration
jest zastępowana i dostawca konfiguracji aplikacja systemu Azure jest dodawany jako dodatkowe źródło konfiguracji przez wywołanie metodyAddAzureAppConfiguration()
. MetodaConfigure
jest pozostawiona pusta, ponieważ w tym momencie nie trzeba rejestrować żadnych usług.using System; using Microsoft.Azure.Functions.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; [assembly: FunctionsStartup(typeof(FunctionApp.Startup))] namespace FunctionApp { class Startup : FunctionsStartup { public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder) { string cs = Environment.GetEnvironmentVariable("ConnectionString"); builder.ConfigurationBuilder.AddAzureAppConfiguration(cs); } public override void Configure(IFunctionsHostBuilder builder) { } } }
Otwórz Function1.cs i dodaj następującą przestrzeń nazw, jeśli jeszcze jej nie ma.
using Microsoft.Extensions.Configuration;
Dodaj lub zaktualizuj konstruktor używany do uzyskania wystąpienia
IConfiguration
za pośrednictwem wstrzykiwania zależności.private readonly IConfiguration _configuration; public Function1(IConfiguration configuration) { _configuration = configuration; }
Zaktualizuj metodę ,
Run
aby odczytywać wartości z konfiguracji.[FunctionName("Function1")] public async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); // Read configuration data string keyName = "TestApp:Settings:Message"; string message = _configuration[keyName]; return message != null ? (ActionResult)new OkObjectResult(message) : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration."); }
Uwaga
Klasa
Function1
iRun
metoda nie powinny być statyczne. Usuń modyfikator,static
jeśli został wygenerowany automatycznie.
Lokalne testowanie funkcji
Ustaw zmienną środowiskową o nazwie ConnectionString i ustaw ją na klucz dostępu do magazynu usługi App Configuration. Jeśli używasz wiersza polecenia systemu Windows, uruchom następujące polecenie i uruchom ponownie wiersz polecenia, aby zezwolić na wprowadzenie zmian:
setx ConnectionString "connection-string-of-your-app-configuration-store"
Jeśli używasz programu Windows PowerShell, uruchom następujące polecenie:
$Env:ConnectionString = "connection-string-of-your-app-configuration-store"
Jeśli używasz systemu macOS lub Linux, uruchom następujące polecenie:
export ConnectionString='connection-string-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ź w przeglądarce na lokalne żądanie GET zwrócone przez funkcję.
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 nieprawidłowej grupy zasobów ani 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.
- Zobaczysz prośbę 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 nowy magazyn usługi App Configuration i użyto go z aplikacją usługi Azure Functions za pośrednictwem dostawcy usługi App Configuration. Aby dowiedzieć się, jak zaktualizować aplikację usługi Azure Functions w celu dynamicznego odświeżania konfiguracji, przejdź do następnego 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ępnego samouczka.