Megosztás a következőn keresztül:


Naplózás konfigurálása Azure SDK-ügyfélkódtárakban JavaScripthez

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=verbose naplózás bekapcsolásához.
  • Használja a @azure/logger csomagot 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.

  1. Hozza létre index.js a 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);
    });
    
  2. 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/logger
    
  3. Jelentkezzen be az Azure-előfizetésbe a helyi környezetben az Azure CLI-vel.

    az login
    
  4. Futtassa az alkalmazást egy környezeti változókat tartalmazó fájllal. A --env-file lehetőség a 20.6.0-s Node.js került bevezetésre.

    node --env-file .env index.js
    
  5. Keresse meg a sikeres hitelesítő adatokat a kimenetben. ChainedTokenCredential Lehető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 ki ManagedIdentityCredential (éles környezetekben, például az Azure App Service-ben), majd térjen vissza AzureCliCredential (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.

  1. Hozza létre index.ts a 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);
    });
    
  2. 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/logger
    
  3. Jelentkezzen be az Azure-előfizetésbe a helyi környezetben az Azure CLI-vel.

    az login
    
  4. Hozza létre az alkalmazást.

    tsc
    
  5. Futtassa az alkalmazást egy környezeti változókat tartalmazó fájllal. A --env-file lehetőség a 20.6.0-s Node.js került bevezetésre.

    node --env-file .env index.js
    
  6. Keresse meg a sikeres hitelesítő adatokat a kimenetben – ez lehetővé teszi, hogy a ChainedTokenCredential kód zökkenőmentesen váltson a hitelesítési módszerek között, először próbálja ki ManagedIdentityCredential (éles környezetekben, például az Azure App Service-ben), majd térjen vissza AzureCliCredential (helyi fejlesztés céljából), a naplókkal, amelyek azt mutatják, hogy melyik hitelesítő adat sikeres volt.

További erőforrások