Udostępnij za pośrednictwem


Środowiska konfiguracji

Plik konfiguracji konstruktora interfejsu API danych obsługuje wiele środowisk, dublując funkcjonalność ASP.NET Core .appSettings.json Ta funkcja umożliwia korzystanie z podstawowego pliku konfiguracji wraz z plikami specyficznymi dla środowiska w celu odpowiedniego dostosowania ustawień:

  • dab-config.json w przypadku konfiguracji podstawowych
  • dab-config.Development.json w przypadku konfiguracji specyficznych dla programowania
  • dab-config.Production.json dla konfiguracji specyficznych dla środowiska produkcyjnego

Ustawianie i wybieranie środowisk

Poniżej przedstawiono najczęstsze kwestie, które należy wziąć pod uwagę podczas ustawiania lub wybierania środowisk.

  • Zdefiniuj konfigurację podstawową:dab-config.json Zacznij od pliku, dołączając wszystkie typowe ustawienia w środowiskach.
  • Twórca Environment-Specific Konfiguracje: Generuj pliki, takie jak dab-config.development.json i dab-config.production.json dla środowisk deweloperskich i produkcyjnych, odpowiednio. Uwzględnij w tych plikach wszystkie ustawienia, które różnią się od konfiguracji podstawowej, koncentrując się na elementach, takich jak connection-string.
  • Zmienna środowiskowa: Użyj zmiennej, DAB_ENVIRONMENT aby określić aktywne środowisko. Ustawienie DAB_ENVIRONMENT=development lub DAB_ENVIRONMENT=production określenie, który zestaw konfiguracji ma być stosowany.
  • Inicjowania: Po uruchomieniu konstruktora dab startinterfejsu API danych z programem identyfikuje DAB_ENVIRONMENT wartość, łącząc dab-config.json ją z odpowiednim plikiem specyficznym dla środowiska w pojedynczą scaloną konfigurację do użytku operacyjnego.

Uwaga

Konfiguracje specyficzne dla środowiska mają pierwszeństwo przed konfiguracją podstawową. Jeśli ustawienie podobne connection-string jest określone zarówno w pliku podstawowym, jak i specyficznym dla środowiska, zostanie użyte ustawienie z pliku specyficznego dla środowiska.

Takie podejście zwiększa elastyczność i organizację w zarządzaniu konfiguracjami w wielu środowiskach, zapewniając, że ustawienia można łatwo dostosować i jasno zdefiniować dla każdego kontekstu operacyjnego.

Przykład

Aby zilustrować użycie ustawień specyficznych dla connection-string środowiska w plikach konfiguracji konstruktora interfejsu API danych, rozważ następującą przykładową konfigurację:

Plik konfiguracji podstawowej

Plik dab-config.json zawiera wszystkie typowe ustawienia konfiguracji, które nie różnią się między różnymi środowiskami. Może nie zawierać tego connection-string , ponieważ różni się między środowiskami deweloperskimi i produkcyjnymi.

{
  "<all-environments-feature>": {
    "<property>": <value>
  }
  // Note: "connection-string" isn't included here as it varies by environment
}

Konfiguracja środowiska deweloperskiego

Plik dab-config.Development.json zastępuje lub dodaje do podstawowej konfiguracji środowiska deweloperskiego, w tym parametry połączenia specyficzne dla programowania bezpośrednio w pliku.

{
  "<development-specific-feature>": {
    "<property>": <value>
  },
  "connection-string": "<development-connection-string>"
}

W tej konfiguracji programistycznej connection-string jest on określany bezpośrednio, co jest typowym podejściem podczas opracowywania w celu uproszczenia i łatwości użycia. Zastąp <development-connection-string> wartością rzeczywistą parametry połączenia dla bazy danych deweloperskich.

Konfiguracja środowiska produkcyjnego

dab-config.Production.json W przypadku pliku parametry połączenia jest bezpiecznie odwoływania się za pośrednictwem zmiennej środowiskowej, aby uniknąć kodowania poufnych informacji w plikach konfiguracji.

{
  "connection-string": "@env('my-connection-string')"
}

W konfiguracji @env('my-connection-string') produkcyjnej służy do dynamicznego ładowania parametry połączenia ze zmiennej środowiskowej o nazwie my-connection-string. Takie podejście zwiększa bezpieczeństwo dzięki zachowaniu kontroli wersji poufnych informacji i umożliwia łatwe aktualizacje bez modyfikowania wdrożonych plików konfiguracji aplikacji.

Ustawianie zmiennych środowiskowych

Efektywne zarządzanie zmiennymi środowiskowymi ma kluczowe znaczenie dla bezpiecznej i elastycznej konfiguracji konstruktora interfejsu API danych. Zmienne środowiskowe można ustawić na dwa sposoby:

  • Ustawienia systemu bezpośredniego: Skonfiguruj zmienne bezpośrednio w systemie operacyjnym. Ta metoda zapewnia, że zmienne są globalnie rozpoznawane w systemie, ale wymagają dostępu administracyjnego do zarządzania.

  • Korzystanie z elementu .env Plik: Aby uzyskać bardziej zlokalizowane i przyjazne dla programowania podejście, utwórz .env plik zawierający pary klucz-wartość zmiennych środowiskowych. Umieść ten plik w tym samym katalogu co plik konfiguracji konstruktora interfejsu API danych. Ta metoda zwiększa łatwość użycia i konserwację zmiennych środowiskowych podczas opracowywania.

    Uwaga

    Nazwa .env pliku, na przykład .gitignore i .editorconfig pliki nie mają nazwy pliku, tylko rozszerzenie pliku. Nazwa jest niewrażliwa na wielkość liter, ale konwencja jest mała.

Najlepsze rozwiązania i zabezpieczenia

  • Izolacja procesu: Po ustawieniu pliku .env lub bezpośrednio w systemie zmienne środowiskowe są ustanawiane jako zmienne procesu, chronione przed innymi procesami. Ta izolacja może zwiększyć bezpieczeństwo konfiguracji, ograniczając narażenie na poufne informacje.

  • Wykluczenie z kontroli wersji: Aby zapobiec przypadkowemu wyciekowi wpisów tajnych, dołącz .env plik do projektu .gitignore. Dzięki temu poufne informacje, takie jak parametry połączenia lub klucze interfejsu API, nie są przypadkowo zatwierdzane i wypychane do repozytoriów kontroli wersji.

Praktyczna aplikacja

.env Plik nie tylko upraszcza zarządzanie zmiennymi środowiskowymi, ale także umożliwia dynamiczne dostosowanie ustawień bez konieczności modyfikowania konfiguracji na poziomie systemu. Na przykład:

my-connection-string="Server=tcp:127.0.0.1,1433;User ID=<username>;Password=<password>;"
ASPNETCORE_URLS="http://localhost:5000;https://localhost:5001"
DAB_ENVIRONMENT=Development

Użyj pliku, .env aby bezproblemowo zintegrować te zmienne z konfiguracją konstruktora interfejsu @env() API danych przy użyciu funkcji .

Uzyskiwanie dostępu do zmiennych środowiskowych

@env() Użyj funkcji , aby uwzględnić zmienne środowiskowe w pliku konfiguracji, chroniąc poufne dane.

Przykład

{
  "connection-string": "@env('my-connection-string')"
}

Funkcja może służyć do uzyskiwania @env dostępu do zmiennych środowiskowych w pliku konfiguracji.

{
  "property-name": "@env('variable-name')"
}