Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Supervise las bases de conocimiento mediante CloudWatch registros
Amazon Bedrock admite un sistema de supervisión que lo ayuda a comprender la ejecución de cualquier trabajo de ingesta de datos para sus bases de conocimientos. En las siguientes secciones se explica cómo habilitar y configurar el sistema de registro para las bases de conocimiento de Amazon Bedrock mediante la CloudWatch API Consola de administración de AWS y. Con este sistema de registro obtendrá mayor visibilidad sobre la ingesta de datos de los recursos de su base de conocimientos.
Requisitos previos
Antes de habilitar el registro en una base de conocimientos de Amazon Bedrock, confirme lo siguiente:
-
La cuenta de usuario que ha iniciado sesión en la consola tiene el
bedrock:AllowVendedLogDeliveryForResourcepermiso. Este permiso permite entregar los registros del recurso de la base de conocimientos. Para ver un ejemplo de política de IAM con todos los permisos necesarios, consulta Vended Logs: permisos para diferentes destinos de entrega. Sigue el ejemplo de la role/permission política de IAM para tu destino de registro, incluida la posibilidad de actualizar tu recurso de destino de registro específico (ya sea CloudWatch Logs, Amazon S3 o Amazon Data Firehose). -
Comprueba si hay límites de cuota para las llamadas a la API relacionadas con la entrega de CloudWatch Logs. Para obtener más información, consulta la documentación sobre las cuotas del servicio CloudWatch Logs. Si superas un límite, se produce un
ServiceQuotaExceededExceptionerror.
Tipos de registro admitidos
Las bases de conocimientos de Amazon Bedrock admiten los siguientes tipos de registro:
-
APPLICATION_LOGS: registros que rastrean el estado actual de un archivo específico durante un trabajo de ingesta de datos.
Habilitar el registro para una base de conocimientos de Amazon Bedrock (consola)
Para habilitar el registro mediante la consola
-
Cree una base de conocimientos. Para obtener instrucciones, consulte Crear una base de conocimientos.
-
Edite la base de conocimientos para añadir una opción de entrega de registros.
nota
No se admiten las entregas de registros al crear una base de conocimiento con un almacén de datos estructurados o para un índice GenAI de Kendra.
-
Configure los detalles de entrega del registro, que incluyen:
-
Destino del registro (CloudWatch Logs, Amazon S3 o Amazon Data Firehose)
-
(Si usa CloudWatch Logs) Nombre del grupo de registros
-
(Si usa Amazon S3) Nombre del bucket
-
(Si usa Amazon Data Firehose) Firehose stream
-
-
Adjunta una política de IAM a tu cuenta para conceder permisos para escribir registros en el destino.
El siguiente ejemplo de política de IAM otorga los permisos necesarios al usar CloudWatch Logs:
-
Compruebe que el estado de entrega del registro muestre que la entrega está activa en la consola.
Habilitar el registro para una base de conocimientos (CloudWatch API) de Amazon Bedrock
Para habilitar el registro mediante la API CloudWatch
-
Cree una base de conocimientos con la API de Amazon Bedrock o la consola de Amazon Bedrock. Para obtener instrucciones, consulte Crear una base de conocimientos.
-
Obtenga el ARN de su base de conocimientos. Llame a la GetKnowledgeBase API para recuperar el ARN. El ARN de una base de conocimientos sigue este formato:
arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id -
Llame a la PutDeliverySource API para crear una fuente de entrega para la base de conocimientos. Pase el ARN de la base de conocimientos como.
resourceArnlogTypeAPPLICATION_LOGSEstablézcalo en, que rastrea el estado de los archivos durante un trabajo de ingestión.{ "logType": "APPLICATION_LOGS", "name": "my-knowledge-base-delivery-source", "resourceArn": "arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge_base_id" } -
Llame a la PutDeliveryDestination API para configurar dónde se almacenan los registros.
-
Elija CloudWatch Logs, Amazon S3 o Amazon Data Firehose como destino.
-
Especifique el ARN del destino elegido.
-
outputFormatEstablézcalo en una de las siguientes opciones:json,plain,w3c,raw,parquet.
El siguiente ejemplo almacena los registros en un bucket de Amazon S3 en formato JSON:
{ "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::bucket-name" }, "name": "string", "outputFormat": "json", "tags": { "key" : "value" } }Para entregar registros entre cuentas, utilice la
PutDeliveryDestinationPolicyAPI para asignar una política de IAM a la cuenta de destino. La política permite la entrega de una cuenta a otra. -
-
Llama a la CreateDelivery API para vincular la fuente de entrega con el destino. Esto asocia la fuente de entrega con el destino final.
{ "deliveryDestinationArn": "string", "deliverySourceName": "string", "tags": { "string" : "string" } }
nota
Si quieres usar CloudFormation, puedes usar lo siguiente:
El ResourceArn es el KnowledgeBaseARN y el LogType admitido debe ser APPLICATION_LOGS.
Ejemplos de registros de bases de conocimientos
Existen registros en el nivel de ingesta de datos y registros en el nivel de recursos para las bases de conocimientos de Amazon Bedrock.
A continuación, se incluye un ejemplo de un registro de trabajo de ingesta de datos.
{ "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" }
A continuación, se muestra un ejemplo de un registro de nivel de recurso.
{ "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" }
El status para el recurso puede ser uno de los siguientes:
-
SCHEDULED_FOR_INGESTION,SCHEDULED_FOR_DELETION,SCHEDULED_FOR_UPDATEoSCHEDULED_FOR_METADATA_UPDATE: estos valores de estado indican que el recurso está programado para ser procesado después de calcular la diferencia entre el estado actual de la base de conocimientos y los cambios realizados en el origen de datos. -
RESOURCE_IGNORED: este valor de estado indica que se ha ignorado el recurso en el procesamiento y el motivo se detalla en la propiedadstatus_reasons. -
EMBEDDING_STARTEDyEMBEDDING_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la incrustación vectorial de un recurso. -
INDEXING_STARTEDyINDEXING_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la indexación de un recurso. -
DELETION_STARTEDyDELETION_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la eliminación de un recurso. -
METADATA_UPDATE_STARTEDyMETADATA_UPDATE_COMPLETED: estos valores de estado indican cuándo se ha iniciado y completado la actualización de metadatos de un recurso. -
EMBEDDING_FAILED,INDEXING_FAILED,DELETION_FAILEDyMETADATA_UPDATE_FAILED: estos valores de estado indican que se ha producido un error en el procesamiento de un recurso y los motivos se detallan en la propiedadstatus_reasons. -
INDEXED,DELETED,PARTIALLY_INDEXED,METADATA_PARTIALLY_INDEXEDyFAILED: una vez finalizado el procesamiento de un documento, se publica un registro con el estado final del documento y el resumen del procesamiento dentro de la propiedadchunk_statistics. -
CRAWLED,RESOURCE_CRAWLED,,RESOURCE_FETCHEDCRAWLING_COMPLETED,CONNECTOR_CRAWLING_COMPLETED: Estos valores de estado indican que el recurso se rastreó o se obtuvo del conector de la fuente de datos. -
PENDING,STARTING,IN_PROGRESS: Estos valores de estado indican que el recurso está en cola o se está procesando actualmente. -
DELETE_IN_PROGRESS,DELETING: Estos valores de estado indican que el recurso está en proceso de borrarse. -
INGESTION_JOB_STARTED,INGESTION_JOB_FAILED: Estos valores de estado indican el inicio o el fracaso del trabajo de ingestión general del recurso. -
GRAPH_ENTITY_EXTRACTION_STARTED,GRAPH_ENTITY_EXTRACTION_COMPLETED,GRAPH_ENTITY_EXTRACTION_FAILED: Estos valores de estado indican el progreso de la extracción de entidades gráficas para las bases de conocimiento que utilizan un banco de datos de gráficos.
Ejemplos de consultas habituales para depurar los registros de la base de conocimientos
Puede interactuar con los registros realizando consultas. Por ejemplo, puede consultar todos los documentos con el estado del evento RESOURCE_IGNORED durante la ingesta de documentos o datos.
Las siguientes son algunas consultas comunes que se pueden usar para depurar los registros generados con CloudWatch Logs Insights:
-
Consulta de todos los registros generados para un documento de S3 específico:
filter event.document_location.s3_location.uri = "s3://<bucketName>/<objectKey>" -
Consulta de todos los documentos ignorados durante el trabajo de ingesta de datos:
filter event.status = "RESOURCE_IGNORED" -
Consulta de todas las excepciones que se han producido al incrustar documentos de forma vectorial:
filter event.status = "EMBEDDING_FAILED" -
Consulta de todas las excepciones que se han producido al indexar documentos en la base de datos vectorial:
filter event.status = "INDEXING_FAILED" -
Consulta de todas las excepciones que se han producido al eliminar documentos de la base de datos vectorial:
filter event.status = "DELETION_FAILED" -
Consulta de todas las excepciones que se han producido al actualizar los metadatos del documento de la base de datos vectorial:
filter event.status = "DELETION_FAILED" -
Consulta de todas las excepciones que se han producido al ejecutar un trabajo de ingesta de datos:
filter level = "ERROR" or level = "WARN"