Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan konfigurálhatja a naplózást az Azure SDK-kódtárakban JavaScripthez. A naplózás engedélyezésével diagnosztizálhatja a hitelesítési problémákat, elháríthatja a hitelesítőadat-láncokat, és betekintést nyerhet az SDK-műveletekbe.
A naplózás engedélyezéséhez használja az alábbi lehetőségek egyikét:
- Állítsa be a környezeti változót a
AZURE_LOG_LEVEL=verbosenaplózás bekapcsolásához. - Használja a
@azure/loggercsomagot a forráskódban.
Az érvényes naplószintek a következők: verbose, info, warningés error.
Megjegyzés:
A cikkben bemutatott Azure Storage-kód feltételezi, hogy a tárolási erőforrás a megfelelő Microsoft Entra-szerepkörökkel lett konfigurálva. További információ: Blobok hozzáférésének engedélyezése a Microsoft Entra ID használatával.
Előfeltételek
- Azure-előfizetés: Hozzon létre egyet ingyen
- Node.js LTS
- Nem kötelező, egy fejlesztői eszköz, például az Azure CLI , amelyet helyi fejlesztési környezetben történő hitelesítéshez használnak. A szükséges környezet létrehozásához jelentkezzen be az Azure CLI-vel.
Naplózás engedélyezése környezeti változóval
Indítsa el az alkalmazást a környezeti változóval a naplózás engedélyezésének egyszerű módjához.
AZURE_LOG_LEVEL=verbose node index.js
Környezeti változók beállítása
Környezeti változókat is hozzáadhat egy .env fájlhoz a projekt gyökérkönyvtárában. Hozzon létre egy elnevezett .env fájlt, és adja hozzá a következő tartalmat.
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>
Naplózás engedélyezése a forráskódban lévő naplózócsomaggal
Az alábbi kódminta a @azure/logger-csomagot használja az Azure SDK-ügyfélkódtárak hibakereséséhez.
Naplózás konfigurálása adott szolgáltatásokhoz
A globális naplószint beállításán kívül különböző naplószinteket is konfigurálhat adott Azure-szolgáltatásokhoz közvetlenül a kódban:
// 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
Ezzel a módszerrel részletesen szabályozhatja a naplózás részletességét, ha több Azure-szolgáltatással dolgozik ugyanabban az alkalmazásban.
Hozza létre
index.jsa következő kóddal.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); });Hozza létre a projektet, és telepítse az npm-függőségeket.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @azure/loggerJelentkezzen be az Azure-előfizetésbe a helyi környezetben az Azure CLI-vel.
az loginFuttassa az alkalmazást egy környezeti változókat tartalmazó fájllal. A
--env-filelehetőség a 20.6.0-s Node.js került bevezetésre.node --env-file .env index.jsKeresse meg a sikeres hitelesítő adatokat a kimenetben.
ChainedTokenCredentialLehetővé teszi, hogy a kód zökkenőmentesen váltson a hitelesítési módszerek között, először próbálja kiManagedIdentityCredential(éles környezetekben, például az Azure App Service-ben), majd térjen visszaAzureCliCredential(helyi fejlesztés céljából), és a naplókban látható, hogy melyik hitelesítő adatok sikeresek.
Előfeltételek
- Azure-előfizetés: Hozzon létre egyet ingyen
- Node.js LTS
- TypeScript
- Nem kötelező, egy olyan hitelesítési eszköz, mint például az Azure CLI , amelyet helyi fejlesztési környezetben történő hitelesítéshez használnak. A szükséges környezet létrehozásához jelentkezzen be az Azure CLI-vel.
Naplózás engedélyezése környezeti változóval
Indítsa el az alkalmazást a környezeti változóval a naplózás engedélyezésének egyszerű módjához.
AZURE_LOG_LEVEL=verbose node index.js
Környezeti változók beállítása
Környezeti változókat is hozzáadhat egy .env fájlhoz a projekt gyökérkönyvtárában. Hozzon létre egy elnevezett .env fájlt, és adja hozzá a következő tartalmat.
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>
Naplózás engedélyezése a forráskódban lévő naplózócsomaggal
Az alábbi kódminta a @azure/logger-csomagot használja az Azure SDK-ügyfélkódtárak hibakereséséhez.
Naplózás konfigurálása adott szolgáltatásokhoz
A globális naplószint beállításán kívül különböző naplószinteket is konfigurálhat adott Azure-szolgáltatásokhoz közvetlenül a kódban:
// 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
Ezzel a módszerrel részletesen szabályozhatja a naplózás részletességét, ha több Azure-szolgáltatással dolgozik ugyanabban az alkalmazásban.
Hozza létre
index.tsa következő kóddal.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); });Hozza létre a projektet, és telepítse az npm-függőségeket.
npm init -y npm pkg set type=module npm install @azure/identity @azure/storage-blob @types/node @azure/loggerJelentkezzen be az Azure-előfizetésbe a helyi környezetben az Azure CLI-vel.
az loginHozza létre az alkalmazást.
tscFuttassa az alkalmazást egy környezeti változókat tartalmazó fájllal. A
--env-filelehetőség a 20.6.0-s Node.js került bevezetésre.node --env-file .env index.jsKeresse meg a sikeres hitelesítő adatokat a kimenetben – ez lehetővé teszi, hogy a
ChainedTokenCredentialkód zökkenőmentesen váltson a hitelesítési módszerek között, először próbálja kiManagedIdentityCredential(éles környezetekben, például az Azure App Service-ben), majd térjen visszaAzureCliCredential(helyi fejlesztés céljából), a naplókkal, amelyek azt mutatják, hogy melyik hitelesítő adat sikeres volt.