Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wyjaśniono, jak skonfigurować rejestrowanie w bibliotekach zestawu Azure SDK dla języka JavaScript. Włączenie rejestrowania ułatwia diagnozowanie problemów z uwierzytelnianiem, rozwiązywanie problemów z łańcuchami poświadczeń i uzyskiwanie wglądu w operacje zestawu SDK.
Aby włączyć rejestrowanie, możesz użyć jednej z poniższych opcji:
- Ustaw zmienną środowiskową,
AZURE_LOG_LEVEL=verboseaby włączyć rejestrowanie. -
@azure/loggerUżyj pakietu w kodzie źródłowym.
Prawidłowe poziomy dziennika obejmują verbose, info, warning i error.
Uwaga / Notatka
Kod usługi Azure Storage przedstawiony w tym artykule zakłada, że zasób magazynu został skonfigurowany z odpowiednimi rolami Microsoft Entra. Dowiedz się więcej: Autoryzowanie dostępu do obiektów blob przy użyciu identyfikatora Entra firmy Microsoft.
Wymagania wstępne
- Subskrypcja platformy Azure: utwórz bezpłatnie
- Node.js LTS
- Opcjonalne narzędzie deweloperskie, takie jak Azure CLI, używane do uwierzytelniania w lokalnym środowisku deweloperskim. Aby utworzyć niezbędny kontekst, zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure.
Włączanie rejestrowania za pomocą zmiennej środowiskowej
Uruchom aplikację przy użyciu zmiennej środowiskowej, aby w prosty sposób włączyć rejestrowanie.
AZURE_LOG_LEVEL=verbose node index.js
Ustawianie zmiennych środowiskowych
Możesz również dodać zmienne środowiskowe do .env pliku w katalogu głównym projektu. Utwórz plik o nazwie .env i dodaj następującą zawartość.
AZURE_LOG_LEVEL=verbose
AZURE_CLIENT_ID=<YOUR_CLIENT_ID>
AZURE_STORAGE_ACCOUNT_NAME=<YOUR_STORAGE_ACCOUNT_NAME>
AZURE_STORAGE_CONTAINER_NAME=<YOUR_STORAGE_CONTAINER_NAME>
Włączanie rejestrowania za pomocą pakietu logger w kodzie źródłowym
Poniższy fragment kodu używa pakietu @azure/logger do debugowania bibliotek klienckich Azure SDK.
Konfigurowanie rejestrowania dla określonych usług
Oprócz ustawienia globalnego poziomu dziennika można skonfigurować różne poziomy dziennika dla określonych usług platformy Azure bezpośrednio w kodzie:
// Import service-specific setLogLevel functions
import { setLogLevel as setIdentityLogLevel } from "@azure/identity";
import { setLogLevel as setStorageLogLevel } from "@azure/storage-blob";
// Set different log levels for different services
setIdentityLogLevel("verbose"); // Detailed logs for identity operations
setStorageLogLevel("warning"); // Only warnings and errors for storage operations
Takie podejście zapewnia precyzyjną kontrolę nad szczegółowością rejestrowania podczas pracy z wieloma usługami Azure w tej samej aplikacji.
Utwórz
index.jsprzy użyciu następującego kodu.import { ChainedTokenCredential, ManagedIdentityCredential, AzureCliCredential } from "@azure/identity"; import { BlobServiceClient } from "@azure/storage-blob"; import { AzureLogger, setLogLevel } from "@azure/logger"; // Check required environment variables if (!process.env.AZURE_STORAGE_ACCOUNT_NAME) { throw new Error("AZURE_STORAGE_ACCOUNT_NAME environment variable is required"); } if (!process.env.AZURE_STORAGE_CONTAINER_NAME) { throw new Error("AZURE_STORAGE_CONTAINER_NAME environment variable is required"); } // Client ID is optional and only used in production environments // No need to check for its existence // Turn on debugging for all Azure SDKs setLogLevel("verbose"); // Configure the logger to use console. AzureLogger.log = (...args)=> { console.log(...args); }; const credential = new ChainedTokenCredential( new ManagedIdentityCredential({ clientId: process.env.AZURE_CLIENT_ID }), new AzureCliCredential() ); const blobServiceClient = new BlobServiceClient( `https://${process.env.AZURE_STORAGE_ACCOUNT_NAME}.blob.core.windows.net`, credential ); // get container properties const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME); async function main() { try { const properties = await containerClient.getProperties(); console.log(properties); } catch (err) { const error = err; console.error("Error retrieving container properties:", error.message); throw error; } } main().catch((err) => { console.error("Error running sample:", err.message); process.exit(1); });Utwórz projekt i zainstaluj zależności npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @azure/loggerZaloguj się do subskrypcji platformy Azure w środowisku lokalnym przy użyciu interfejsu wiersza polecenia platformy Azure.
az loginUruchom aplikację z plikiem zmiennej środowiskowej. Opcja
--env-filezostała wprowadzona w wersji Node.js 20.6.0.node --env-file .env index.jsZnajdź pomyślne poświadczenie w danych wyjściowych.
ChainedTokenCredentialumożliwia bezproblemowe przełączanie kodu między metodami uwierzytelniania, najpierw próbaManagedIdentityCredential(w przypadku środowisk produkcyjnych, takich jak usługa Azure App Service), a następnie powrót doAzureCliCredential(w przypadku programowania lokalnego) z dziennikami pokazującymi, które poświadczenia zakończyły się pomyślnie.
Wymagania wstępne
- Subskrypcja platformy Azure: utwórz bezpłatnie
- Node.js LTS
- TypeScript
- Opcjonalnie, narzędzie uwierzytelniania, takie jak Azure CLI, używane do uwierzytelniania w lokalnym środowisku deweloperskim. Aby utworzyć niezbędny kontekst, zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure.
Włączanie rejestrowania za pomocą zmiennej środowiskowej
Uruchom aplikację przy użyciu zmiennej środowiskowej, aby w prosty sposób włączyć rejestrowanie.
AZURE_LOG_LEVEL=verbose node index.js
Ustawianie zmiennych środowiskowych
Możesz również dodać zmienne środowiskowe do .env pliku w katalogu głównym projektu. Utwórz plik o nazwie .env i dodaj następującą zawartość.
AZURE_LOG_LEVEL=verbose
AZURE_CLIENT_ID=<YOUR_CLIENT_ID>
AZURE_STORAGE_ACCOUNT_NAME=<YOUR_STORAGE_ACCOUNT_NAME>
AZURE_STORAGE_CONTAINER_NAME=<YOUR_STORAGE_CONTAINER_NAME>
Włączanie rejestrowania za pomocą pakietu logger w kodzie źródłowym
Poniższy fragment kodu używa pakietu @azure/logger do debugowania bibliotek klienckich Azure SDK.
Konfigurowanie rejestrowania dla określonych usług
Oprócz ustawienia globalnego poziomu dziennika można skonfigurować różne poziomy dziennika dla określonych usług platformy Azure bezpośrednio w kodzie:
// Import service-specific setLogLevel functions
import { setLogLevel as setIdentityLogLevel } from "@azure/identity";
import { setLogLevel as setStorageLogLevel } from "@azure/storage-blob";
// Set different log levels for different services
setIdentityLogLevel("verbose"); // Detailed logs for identity operations
setStorageLogLevel("warning"); // Only warnings and errors for storage operations
Takie podejście zapewnia precyzyjną kontrolę nad szczegółowością rejestrowania podczas pracy z wieloma usługami Azure w tej samej aplikacji.
Utwórz
index.tsprzy użyciu następującego kodu.import { ChainedTokenCredential, ManagedIdentityCredential, AzureCliCredential } from "@azure/identity"; import { BlobServiceClient, ContainerGetPropertiesResponse } from "@azure/storage-blob"; import { AzureLogger, setLogLevel } from "@azure/logger"; // Check required environment variables if (!process.env.AZURE_STORAGE_ACCOUNT_NAME) { throw new Error("AZURE_STORAGE_ACCOUNT_NAME environment variable is required"); } if (!process.env.AZURE_STORAGE_CONTAINER_NAME) { throw new Error("AZURE_STORAGE_CONTAINER_NAME environment variable is required"); } // Client ID is optional and only used in production environments // No need to check for its existence // Turn on debugging for all Azure SDKs setLogLevel("verbose"); // Configure the logger to use console.log with TypeScript type safety AzureLogger.log = (...args: unknown[]): void => { console.log(...args); }; const credential = new ChainedTokenCredential( new ManagedIdentityCredential({ clientId: process.env.AZURE_CLIENT_ID }), new AzureCliCredential() ); const blobServiceClient = new BlobServiceClient( `https://${process.env.AZURE_STORAGE_ACCOUNT_NAME}.blob.core.windows.net`, credential ); // get container properties const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME); async function main(): Promise<void> { try { const properties: ContainerGetPropertiesResponse = await containerClient.getProperties(); console.log(properties); } catch (err) { const error = err as Error; console.error("Error retrieving container properties:", error.message); throw error; } } main().catch((err: Error) => { console.error("Error running sample:", err.message); process.exit(1); });Utwórz projekt i zainstaluj zależności npm.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @types/node @azure/loggerZaloguj się do subskrypcji platformy Azure w środowisku lokalnym przy użyciu interfejsu wiersza polecenia platformy Azure.
az loginSkompiluj aplikację.
tscUruchom aplikację z plikiem zmiennej środowiskowej. Opcja
--env-filezostała wprowadzona w wersji Node.js 20.6.0.node --env-file .env index.jsZnajdź pomyślne poświadczenie w danych wyjściowych —
ChainedTokenCredentialumożliwia kodowi płynne przełączanie się między metodami uwierzytelniania, najpierw próbującManagedIdentityCredential(dla środowisk produkcyjnych, takich jak Azure App Service), a następnie przechodząc doAzureCliCredential(dla lokalnego rozwoju), z dziennikami pokazującymi, które poświadczenie zakończyło się pomyślnie.