IRONSOFTWAREHOME

Dostęp do ustawień aplikacji w Azure Functions

Dostep do AppSettings w aplikacjach konsolowych, włączajac Secrets.json

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ż nacisk kładzie się na aplikacje konsolowe, jego koncepcje mają bezpośrednie zastosowanie do rozwijania i zarządzania ustawieniami aplikacji funkcji w aplikacjach Azure Functions — szczególnie podczas pracy lokalnej, konfigurowania plików projektu lub wdrażania w usłudze App Service.

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

Dlaczego 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
}
Text

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);
Text

Chociaż runtime Azure Functions zajmuje sie tym potokiem automatycznie, analiza Tima wyjasnia, jak projekty funkcji czerpia wartosci z różnych zrodel. Jego użycie .AddJsonFile() odzwierciedla, jak programiści konfigurują local.settings.json w swojej aplikacji Azure, z reloadOnChange wprowadzającym koncepcję dynamicznie odświeżanych ustawień konfiguracyjnych podczas rozwoju.

Odczytaj wartosci z bezpieczenstwem typow

Tim pokazuje, jak odczytać ustawienia za pomocą metody GetValue() o 11:00:

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

I dla zagniezdzonych ustawien, używa:

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

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
Text

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

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.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Otrzymaj swoją Konsultację Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta