Informacje o ustawieniach aplikacji usługi Azure Functions
Jako inżynier firmy Tailwind Traders pracujesz nad interfejsem API, który łączy się z bazą danych. Interfejs API połączy się z bazą danych za pośrednictwem parametry połączenia bazy danych. W tym module uzyskasz informacje na temat najlepszych rozwiązań dotyczących przechowywania informacji poufnych, takich jak parametry połączenia, w interfejsie API usługi Azure Functions.
Przechowywanie parametry połączenia jako ustawienia aplikacji
Dobrym pomysłem jest unikanie zapisywania parametrów połączenia na stałe w kodzie. Prawdopodobnie będziesz używać tych parametrów połączenia w różnych plikach, a mogą one ulec zmianie w przyszłości.
Chcesz przechowywać parametry połączenia jako ustawienie aplikacji:
- Ustawienia aplikacji są określane w jednym miejscu i można się do nich odwoływać w różnych częściach aplikacji.
- Można je łatwo zmienić w dowolnym momencie w przyszłości bez konieczności zmiany kodu.
- Ustawienia aplikacji nigdy nie są ewidencjonowane w kontroli źródła.
Projekt usługi Azure Functions zawiera plik local.settings.json
. Ten plik zawiera zestaw par klucz/wartość używany przez aplikację jako wartości konfiguracji podczas tworzenia lokalnie. Do obiektu można dodać własne elementy Values
. Dostęp do tych wartości można uzyskać z poziomu kodu.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsFeatureFlags": "EnableWorkerIndexing"
}
}
Jeśli chcesz dodać parametry połączenia, możesz dodać inną właściwość o nazwie "CONNECTION_STRING" (lub dowolną nazwę), a następnie przekazać parametry połączenia do bazy danych.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsFeatureFlags": "EnableWorkerIndexing",
"CONNECTION_STRING": "AccountEndpoint=https://tailwind-traders-7071.documents.azure.com:443/;AccountKey=123456;"
}
}
Uzyskiwanie dostępu do ustawień aplikacji w kodzie usługi Azure Functions
Aby uzyskać dostęp do tych wartości konfiguracji w usłudze Azure Functions z poziomu języka JavaScript, użyj process.env
obiektu . Zawiera wszystkie pary klucz/wartość określone w local.settings.json
pliku.
Poniższy kod znaleziony w ./api/src/services/product.services.ts
lokalizacji odczytuje parametry połączenia z process.env
obiektu w celu utworzenia obiektu CosmosClient w celu uzyskania dostępu do usługi Azure Cosmos DB.
let client = new CosmosClient(process.env.CONNECTION_STRING);
Teraz wiesz, jak bezpiecznie przechowywać parametry połączenia podczas programowania lokalnego oraz jak odwoływać się do tego ciągu w aplikacji.