Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Monitora le basi di conoscenza utilizzando CloudWatch i log
Amazon Bedrock supporta un sistema di monitoraggio per aiutarti a comprendere l’esecuzione di qualsiasi processo di importazione dei dati per le tue knowledge base. Le sezioni seguenti spiegano come abilitare e configurare il sistema di registrazione per le knowledge base di Amazon Bedrock utilizzando Console di gestione AWS sia CloudWatch l'API che. Puoi ottenere visibilità sull’importazione dei dati delle risorse della tua knowledge base con questo sistema di registrazione di log.
Prerequisiti
Prima di abilitare la registrazione per una knowledge base di Amazon Bedrock, conferma quanto segue:
-
L'account utente che ha effettuato l'accesso alla console dispone dell'
bedrock:AllowVendedLogDeliveryForResourceautorizzazione. Questa autorizzazione consente di fornire i log per la risorsa della knowledge base. Per un esempio di policy IAM con tutte le autorizzazioni richieste, consulta Vended logs permissions for different delivery destination. Segui l'esempio di role/permission policy IAM per la tua destinazione di registrazione, inclusa la possibilità di aggiornare la tua specifica risorsa di destinazione (che si tratti di CloudWatch Logs, Amazon S3 o Amazon Data Firehose). -
Verifica se ci sono limiti di quota per le chiamate API relative alla consegna di CloudWatch Logs. Per ulteriori informazioni, consulta la documentazione sulle quote del servizio CloudWatch Logs. Se si supera un limite, si verifica un
ServiceQuotaExceededExceptionerrore.
Tipi di log supportati
Knowledge Base per Amazon Bedrock supporta i seguenti tipi di log:
-
APPLICATION_LOGS: log che tengono traccia dello stato corrente di un file specifico durante un processo di importazione dei dati.
Abilitazione della registrazione per una knowledge base (console) di Amazon Bedrock
Per abilitare la registrazione utilizzando la console
-
Crea una base di conoscenza. Per istruzioni, consulta Creare una knowledge base.
-
Modifica la tua knowledge base per aggiungere un'opzione di consegna dei log.
Nota
Le consegne di log non sono supportate durante la creazione di una knowledge base con un datastore strutturato o per un Indice GenAI di Kendra.
-
Configura i dettagli di consegna dei log, tra cui:
-
Destinazione di registrazione (CloudWatch Logs, Amazon S3 o Amazon Data Firehose)
-
(Se si utilizzano i CloudWatch log) Nome del gruppo di log
-
(Se si utilizza Amazon S3) Nome del bucket
-
(Se si utilizza Amazon Data Firehose) Firehose stream
-
-
Allega una policy IAM al tuo account per concedere le autorizzazioni per scrivere i log verso la destinazione.
Il seguente esempio di policy IAM concede le autorizzazioni necessarie quando si utilizza Logs: CloudWatch
-
Verifica che lo stato di consegna del registro indichi che Delivery è attivo nella console.
Abilitazione della registrazione per una knowledge base (CloudWatch API) di Amazon Bedrock
Per abilitare la registrazione utilizzando l'API CloudWatch
-
Crea una knowledge base utilizzando l'API Amazon Bedrock o la console Amazon Bedrock. Per istruzioni, consulta Creare una knowledge base.
-
Ottieni l'ARN della tua knowledge base. Chiama l'GetKnowledgeBaseAPI per recuperare l'ARN. Un ARN della knowledge base segue questo formato:
arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id -
Chiama l'PutDeliverySourceAPI per creare una fonte di distribuzione per la knowledge base. Passa la knowledge base ARN come.
resourceArnImpostatologTypesuAPPLICATION_LOGS, che tiene traccia dello stato dei file durante un processo di inserimento.{ "logType": "APPLICATION_LOGS", "name": "my-knowledge-base-delivery-source", "resourceArn": "arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge_base_id" } -
Chiama l'PutDeliveryDestinationAPI per configurare dove vengono archiviati i log.
-
Scegli CloudWatch Logs, Amazon S3 o Amazon Data Firehose come destinazione.
-
Specifica l'ARN della destinazione scelta.
-
outputFormatImpostare su una delle seguenti opzioni:json,,plain,w3craw,parquet.
L'esempio seguente archivia i log in un bucket Amazon S3 in formato JSON:
{ "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::bucket-name" }, "name": "string", "outputFormat": "json", "tags": { "key" : "value" } }Per distribuire i log su più account, utilizza l'
PutDeliveryDestinationPolicyAPI per assegnare una policy IAM all'account di destinazione. La policy consente la consegna da un account a un altro. -
-
Chiama l'CreateDeliveryAPI per collegare l'origine della consegna alla destinazione. Questo associa l'origine di consegna alla destinazione finale.
{ "deliveryDestinationArn": "string", "deliverySourceName": "string", "tags": { "string" : "string" } }
Nota
Se si desidera utilizzare CloudFormation, è possibile utilizzare quanto segue:
ResourceArn è KnowledgeBaseARN e LogType deve essere APPLICATION_LOGS come tipo di log supportato.
Esempi di log della knowledge base
Esistono log dei livelli di importazione dei dati e log dei livelli di risorse per Knowledge Base per Amazon Bedrock.
Di seguito è riportato un esempio di un log del processo di importazione dei dati.
{ "event_timestamp": 1718683433639, "event": { "ingestion_job_id": "<IngestionJobId>", "data_source_id": "<IngestionJobId>", "ingestion_job_status": "INGESTION_JOB_STARTED" | "STOPPED" | "COMPLETE" | "FAILED" | "CRAWLING_COMPLETED" "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>", "resource_statistics": { "number_of_resources_updated": int, "number_of_resources_ingested": int, "number_of_resources_scheduled_for_update": int, "number_of_resources_scheduled_for_ingestion": int, "number_of_resources_scheduled_for_metadata_update": int, "number_of_resources_deleted": int, "number_of_resources_with_metadata_updated": int, "number_of_resources_failed": int, "number_of_resources_scheduled_for_deletion": int } }, "event_version": "1.0", "event_type": "StartIngestionJob.StatusChanged", "level": "INFO" }
Di seguito viene riportato un esempio di un log a livello di risorsa.
{ "event_timestamp": 1718677342332, "event": { "ingestion_job_id": "<IngestionJobId>", "data_source_id": "<IngestionJobId>", "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>", "document_location": { "type": "S3", "s3_location": { "uri": "s3:/<BucketName>/<ObjectKey>" } }, "status": "<ResourceStatus>" "status_reasons": String[], "chunk_statistics": { "ignored": int, "created": int, "deleted": int, "metadata_updated": int, "failed_to_create": int, "failed_to_delete": int, "failed_to_update_metadata": int }, }, "event_version": "1.0", "event_type": "StartIngestionJob.ResourceStatusChanged", "level": "INFO" | "WARN" | "ERROR" }
Lo status per il nome della risorsa può essere uno dei seguenti:
-
SCHEDULED_FOR_INGESTION,SCHEDULED_FOR_DELETION,SCHEDULED_FOR_UPDATE,SCHEDULED_FOR_METADATA_UPDATE: questi valori di stato indicano che l’elaborazione della risorsa è programmata dopo aver calcolato la differenza tra lo stato corrente della knowledge base e le modifiche apportate all’origine dati. -
RESOURCE_IGNORED: questo valore di stato indica che la risorsa è stata ignorata per l’elaborazione e il motivo è dettagliato all’interno della proprietàstatus_reasons. -
EMBEDDING_STARTEDeEMBEDDING_COMPLETED: questi valori di stato indicano quando l’embedding vettoriale per una risorsa è iniziato e completato. -
INDEXING_STARTEDeINDEXING_COMPLETED: questi valori di stato indicano quando l’indicizzazione di una risorsa è iniziata e completata. -
DELETION_STARTEDeDELETION_COMPLETED: questi valori di stato indicano quando l’eliminazione di una risorsa è iniziata e completata. -
METADATA_UPDATE_STARTEDeMETADATA_UPDATE_COMPLETED: questi valori di stato indicano quando l’aggiornamento dei metadati di una risorsa è iniziato e completato. -
EMBEDDING_FAILED,INDEXING_FAILED,DELETION_FAILEDeMETADATA_UPDATE_FAILED: questi valori di stato indicano che l’elaborazione di una risorsa non è riuscita e i motivi sono descritti in dettaglio all’interno della proprietàstatus_reasons. -
INDEXED,DELETED,PARTIALLY_INDEXED,METADATA_PARTIALLY_INDEXED,FAILED: una volta completata l’elaborazione di un documento, viene pubblicato un log con lo stato finale del documento e il riepilogo dell’elaborazione all’interno della proprietàchunk_statistics. -
CRAWLED,RESOURCE_CRAWLED,,RESOURCE_FETCHEDCRAWLING_COMPLETED,CONNECTOR_CRAWLING_COMPLETED: questi valori di stato indicano che la risorsa è stata sottoposta a scansione o recuperata dal connettore dell'origine dati. -
PENDING,STARTING,IN_PROGRESS: Questi valori di stato indicano che la risorsa è in coda o è attualmente in fase di elaborazione. -
DELETE_IN_PROGRESS,DELETING: Questi valori di stato indicano che la risorsa è in fase di eliminazione. -
INGESTION_JOB_STARTED,INGESTION_JOB_FAILED: Questi valori di stato indicano l'inizio o il fallimento del processo di inserimento complessivo della risorsa. -
GRAPH_ENTITY_EXTRACTION_STARTED,GRAPH_ENTITY_EXTRACTION_COMPLETED,GRAPH_ENTITY_EXTRACTION_FAILED: Questi valori di stato indicano l'avanzamento dell'estrazione delle entità grafiche per le knowledge base che utilizzano un archivio dati grafico.
Esempi di query comuni per il debug dei log della knowledge base
È possibile interagire con i log utilizzando le query. Ad esempio, è possibile eseguire una query per tutti i documenti con lo stato dell’evento RESOURCE_IGNORED durante l’importazione di documenti o dati.
Di seguito sono riportate alcune query comuni che possono essere utilizzate per eseguire il debug dei log generati utilizzando CloudWatch Logs Insights:
-
Query per tutti i log generati per uno specifico documento S3.
filter event.document_location.s3_location.uri = "s3://<bucketName>/<objectKey>" -
Query per tutti i documenti ignorati durante il processo di importazione dei dati.
filter event.status = "RESOURCE_IGNORED" -
Query per tutte le eccezioni che si sono verificate durante l’embedding vettoriale dei documenti.
filter event.status = "EMBEDDING_FAILED" -
Query per tutte le eccezioni che si sono verificate durante l’indicizzazione dei documenti nel database vettoriale.
filter event.status = "INDEXING_FAILED" -
Query per tutte le eccezioni che si sono verificate durante l’eliminazione dei documenti dal database vettoriale.
filter event.status = "DELETION_FAILED" -
Query per tutte le eccezioni che si sono verificate durante l’aggiornamento del documento nel database vettoriale.
filter event.status = "DELETION_FAILED" -
Query per tutte le eccezioni che si sono verificate durante l’esecuzione di un processo di importazione dei dati.
filter level = "ERROR" or level = "WARN"