Przejdź do treści stopki
Iron Academy Logo
Aplikacja C#
Aplikacja C#

Inne Kategorie

Dostęp do ustawień aplikacji w Azure Functions

Tim Corey
23m 53s

W dzisiejszym szybko rozwijajacym sie środowisku chmurowym, zarządzanie ustawieniami aplikacji w sposob bezpieczny i elastyczny jest kluczowe — zwlaszcza dla deweloperow budujacych przy użyciu Azure Functions. Bez wzgledu na to, czy wdrazasz aplikacje funkcji za pośrednictwem portalu Azure, zarzadzasz ustawieniami konfiguracyjnymi przy użyciu Azure Functions Core Tools, czy podlaczasz tajemnice za pomoca Key Vault, ważne jest, aby od samego początku poprawnie skonstruowac konfiguracje aplikacji.

W sesji praktycznej zatytułowanej "Dostep do AppSettings w aplikacjach konsolowych, włączajac Secrets.json", Tim Corey przedstawia najlepsze praktyki z wykorzystaniem ekosystemu .NET. Chociaż skupiamy sie na aplikacjach konsolowych, jego koncepcje bezpośrednio odnosa sie do rozwijania i zarządzania ustawieniami aplikacji funkcji w Azure Functions — zwlaszcza podczas pracy lokalnej, ustawiania pliku projektu lub wdrazania do App Service.

W tym artykułe zanalizujemy wszystko korzystając z pogladu Tima i odwzorujemy jego lekcje na nowoczesny rozwój Azure Functions.

Dłączego ustawienia aplikacji sa ważne dla Azure Functions

Tim zaczyna od wyjasnienia, jak kluczowe sa ustawienia aplikacji przy budowie czegos więcej niz najbardziej podstawowe aplikacje .NET. Koniecznosc dostepu do ustawien aplikacji w środowiskach Azure Function jest jeszcze bardziej wyrazona — biorac pod uwage, ze runtime Azure Functions oczekuje, ze wartosci konfiguracyjne zostana pobrane z zarzadzanych magazynow, takich jak zmienne środowiskowe, JSON-owy lokal.settings.json, czy Azure App Configuration.

"Jedna z powszechnych cech, ktore deweloperzy chca uzyskać, jest dostep do pliku ustawien," wyjasnia Tim w 0:17.

Bez wzgledu na to, czy chodzi o klucz API, ciag połączeniowy, czy flage funkcjonalności, elastycznosc i bezpieczeństwo konfiguracji sa kluczowe — zwlaszcza podczas wdrazania na platformy chmurowe, takie jak Microsoft Azure.

Utworz fundament dzięki Visual Studio

W 1:24, Tim zaklada projekt konsolowy używajac Visual Studio, nazywajac go SettingsDemoApp. Chociaż deweloperzy Azure zwykle inicjalizuja projekt Functions używajac Azure Functions Core Tools, metoda Tima polegająca na szkieletowaniu i organizacji kodu przeklada sie bezproblemowo. Ustawienie pliku projektu i struktura kodu sa kluczowymi fundamentami — bez wzgledu na to, czy jestes w środowisku konsolowym, czy budujesz izolowana aplikacje Azure Functions z modelem izolowanego pracownika.

Zainstaluj wymagane pakiety NuGet

Od 2:33, Tim przeprowadza instalacje czterech istotnych pakietow NuGet:

  • Microsoft.Extensions.Configuration

  • Microsoft.Extensions.Configuration.Json

  • Microsoft.Extensions.Configuration.Binder

  • Microsoft.Extensions.Configuration.UserSecrets

To odzwierciedla system konfiguracji aplikacji używany przez Azure Functions, ktory korzysta z tych samych pakietow zakulisowo. Tim podkreśla wartosc modularnosci:

"To wlasciwie przeciwienstwo rozdmuchania," zauwaza, poniewaz .NET Core unika niepotrzebnych ladunkow pozwalając deweloperom wybierac opcje za pomoca NuGet.

W typowej aplikacji funkcji te pakiety sa albo wstepnie referencjonowane, albo łatwo dodawane w celu wsparcia logiki konfiguracyjnej, wstrzykiwania zależności lub zaawansowanych przypadkow użycia, takich jak wsparcie dla Key Vault i Azure App Configuration.

Dodaj i skonfiguruj plik ustawien JSON

W 6:12, Tim tworzy nowy plik o nazwie appsettings.json, naśladujac strukture, jaka widac w local.settings.json dla rozwoju Azure Functions. Wypelnia go parami klucz-wartosc jak:

{
  "User": {
    "FirstName": "Tim",
    "LastName": "Corey"
  },
  "StarterCountValue": 5
}

W funkcjach lokalnie, deweloperzy używaja local.settings.json w prawie tej samej formie, aby wczytywac wartosci do logiki aplikacji przez wstrzykiwany IConfiguration. Tim również zaznacza kluczowy krok: ustawienie kopiowania pliku do katalogu wyjsciowego na "Copy if newer" — kluczowe, aby zapewnic dostępnosc konfiguracji w czasie wykonania.

Recznie zbuduj potok konfiguracji

Tim przystepuje do pisania kodu, ktory ręcznie ustawia potok konfiguracji używajac:

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

Chociaż runtime Azure Functions zajmuje sie tym potokiem automatycznie, analiza Tima wyjasnia, jak projekty funkcji czerpia wartosci z różnych zrodel. Jego wykorzystanie .AddJsonFile() odzwierciedla jak deweloperzy konfiguruja local.settings.json w swojej aplikacji Azure, a reloadOnChange wprowadza koncepcje dynamicznego odswiezania ustawien konfiguracyjnych w trakcie rozwoju.

Odczytaj wartosci z bezpieczenstwem typow

Tim pokazuje, jak odczytywac ustawienia za pomoca metody GetValue() o 11:00:

int count = config.GetValue<int>("StarterCountValue");

I dla zagniezdzonych ustawien, używa:

string firstName = config.GetValue<string>("User:FirstName");

Podczas pracy z Azure Functions te same wzorce skladniowe sie stosują. Uzycie przez Tima kluczy z delimitacja dwukropkiem ("User:FirstName") ma bezpośrednie odwzorowanie w zmiennych środowiskowych za pomoca podwojnego podkreslenia (__):

User__FirstName=Tim

To jest szczegółnie przydatne podczas wdrazania do Azure App Service lub konfigurowania za pośrednictwem portalu Azure, gdzie można nadpisywac ustawienia w czasie wykonania używajac ustawien aplikacji lub nadpisywan opartych na środowisku.

Zajmij sie tajemnicami bezpiecznie z UserSecrets

W 15:00, Tim wprowadza wzorzec secrets.json za pomoca User Secrets, używany do przechowywania danych wrazliwych, takich jak klucze API czy ciagi połączeniowe, bez ich eksponowania w kontroli wersji. Pokazuje jak dołączyć User Secrets store do projektu używajac tej linii:

builder.AddUserSecrets<Program>();

Podkresla, ze kolejnosc ma znaczenie — User Secrets przelawia zrodla konfiguracyjne wczesniejsze, wzmacniajac zasade ostatniego wygrywa. Chociaż Azure Functions nie używa bezpośrednio secrets.json, w produkcyjnym środowisku chmurowym używa sie Azure Key Vault, opcjonalnie z uwierzytelnianiem zarzadzonym identyfikatora, aby osiagnac te same bezpieczne nadpisywania.

Tim zauwaza, ze tajemnice w lokalnym rozwoju sa zamiennikiem dla dowolnego bezpiecznego systemu używanego w produkcji:

"Ten secrets.json jest zamiennikiem dla dowolnego bezpiecznego systemu, ktory używasz do przechowywania prawdziwych wartosci — czy to jest Key Vault czy ustawienia środowiskowe."

Uruchom i waliduj konfiguracje

Po skonfigurowaniu zarowno appsettings.json, jak i secrets.json, Tim uruchamia przykład i weryfikuje, ze tajemnice przelawiaja wartosci podstawowe. To bezpośrednio odzwierciedla, jak Azure Functions radza sobie z przelawaniami z różnych zrodel: local.settings.json, Azure App Configuration, zmiennych środowiskowych, czy Key Vault.

Bez wzgledu na to, czy używasz Azure Functions Core Tools z wiersza polecenia, czy wdrazasz poprzez Visual Studio, kolejnosc ladowania i warstwy konfiguracji aplikacji działaja dokladnie tak, jak opisuje to Tim.

Najlepsze praktyki zarządzania konfiguracja

Tim konczy zalecajac zachowanie wartosci konfiguracyjnych, ktore nie zmieniaja sie często — jak flagi funkcji, ustawienia częstotliwosci, czy konfiguracje CORS — w pliku JSON, a umieszczanie danych wrazliwych, takich jak ciagi połączeniowe i tajemnice, w bezpiecznym magazynie.

To zgodne z nowoczesnymi najlepszymi praktykami dla Azure Functions, gdzie:

  • Deweloperzy używaja local.settings.json dla funkcji lokalnie

  • Zespoly korzystaja z portalu Azure do ustawien aplikacji

  • Tajemnice trafiaja do Key Vault

  • Wartosc z Azure App Configuration store pomaga oddzielic ustawienia od kodu

Te zrodla integrowane sa z czasem pracy przez wstrzykiwanie zależności, bez dotykania binariów aplikacji.

Podsumowanie

Chociaż film Tima jest o aplikacji konsolowych, kazda technika, która pokazuje, plinnie przechodzi na aplikacje Azure Functions — od tworzenia plików konfiguracyjnych, odczytu kluczy, użycia zarzadzanych identyfikatorow po ladowanie konfiguracji przez wstrzykiwanie zależności. Bez wzgledu na to, czy wdrazasz z Visual Studio, zarzadzasz kontem azure, czy chcesz znalezc pełne przykłady kodu, jego wglady odwzorowuja sie bezpośrednio na praktyki chmurowe w rzeczywistosci.

Hero Worlddot related to Dostęp do ustawień aplikacji w Azure Functions
Hero Affiliate related to Dostęp do ustawień aplikacji w Azure Functions

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie