Uso de un origen de datos de S3 - Amazon Kendra

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.

Uso de un origen de datos de S3

aviso

Amazon Kendrano utiliza una política de bucket que conceda permisos a unAmazon Kendraprincipal para interactuar con un bucket S3. En su lugar, utilizaIAMroles. Asegúrese de queAmazon Kendrano se incluye como miembro de confianza en tu política de bucket para evitar problemas de seguridad de datos al conceder permisos accidentalmente a directores arbitrarios. Sin embargo, puede añadir una política de bucket para utilizar unAmazon S3acumular en diferentes cuentas. Para obtener más información, consultePolíticas de usoAmazon S3entre cuentas. Para obtener información sobreIAMroles para orígenes de datos de S3, consulte.IAMRoles de de.

Puede utilizar el repositorio de documentos de bucket de S3 como fuente de datos paraAmazon Kendra. Para obtener un recorrido sobre cómo usarAmazon S3en la consola de, consulteIntroducción a unAmazon S3origen de datos (consola).

Cuando te conectas aAmazon S3Para indexar los documentos, especifique el nombre del bucket de S3 que contiene los documentos. Puede especificar patrones de globo para incluir o excluir documentos específicos en su nombre del proveedor.

Debe crear un índice antes de crear elAmazon S3origen de datos. Para obtener más información, consulte CreateDataSource. Proporciona el ID del índice al crear el origen de datos.

Para conectar aAmazon S3, especifique la conexión y otra información en la consola o mediante elS3DataSourceConfigurationobjeto. Proporciona el nombre de laAmazon S3cubo que quieres indexar.

Antes de que puedas indexar tus documentos desde tuAmazon S3bucket, el bucket debe estar en la misma región que el índice de yAmazon Kendradebe tener permiso para obtener acceso al bucket de que contiene sus documentos. Puede configurar la lista de control de acceso para suAmazon S3bucket. Contiene información sobre el acceso de los usuarios y grupos a los documentos.

También debe proporcionar el nombre de recurso de Amazon (ARN) de unIAMrol que conceda permiso a para obtener acceso a suAmazon S3bucket. Se proporciona el ARN de un rol de IAM medianteCreateDataSource. Para obtener más información sobre los permisos, consulte.IAMRoles de paraAmazon S3orígenes de datos.

También puede añadir la siguiente información opcional:

  • Patrón de inclusión o exclusión: Si especifica un patrón de inclusión, ningún documento con un nombre de archivo o tipo de archivo que no coincida con el patrón no se indexará. Si especifica un patrón de inclusión y exclusión, los documentos que coinciden con el patrón de exclusión no se indexan incluso si coinciden con el patrón de inclusión.

En los siguientes ejemplos se muestra cómo crear unAmazon S3origen de datos. En los ejemplos se presupone que ya ha creado un índice y unIAMrol con permiso para leer los datos del índice. Para obtener más información acerca de los roles de IAM, consulte IAMRoles de paraAmazon S3orígenes de datos. Para obtener más información acerca de la creación de un índice, consulte.Creación de un índice.

CLI
aws kendra create-data-source \ --index-id index ID \ --name example-data-source \ --type S3 \ --configuration '{"S3Configuration":{"BucketName":"bucket name"}}' --role-arn 'arn:aws:iam::account id:role:/role name
Python

El siguiente fragmento de código de Python crea unAmazon S3origen de datos. Para obtener el ejemplo completoIntroducción al (AWS SDK for Python (Boto3)).

print("Create an Amazon S3 data source.") # Provide a name for the data source name = "getting-started-data-source" # Provide an optional description for the data source description = "Getting started data source." # Provide the IAM role ARN required for data sources role_arn = "arn:aws:iam::${accountID}:role/${roleName}" # Provide the data soource connection information s3_bucket_name = "S3-bucket-name" type = "S3" # Configure the data source configuration = {"S3DataSourceConfiguration": { "BucketName": s3_bucket_name } } data_source_response = kendra.create_data_source( Configuration = configuration, Name = name, Description = description, RoleArn = role_arn, Type = type, IndexId = index_id )

La origen de datos puede llevar algún tiempo. Puede monitorizar el progreso utilizando elDescribeDataSourceAPI. Cuando el estado del origen de datos esACTIVEel origen de datos está listo para usar.

En los ejemplos siguientes se muestra cómo obtener el estado de un origen de datos.

CLI
aws kendra describe-data-source \ --index-id index ID \ --id data source ID
Python

El siguiente fragmento de código de Python obtiene información sobre un origen de datos de S3. Para obtener el ejemplo completoIntroducción al (AWS SDK for Python (Boto3)).

print("Wait for Amazon Kendra to create the data source.") while True: data_source_description = kendra.describe_data_source( Id = "data-source-id", IndexId = "index-id" ) status = data_source_description["Status"] print(" Creating data source. Status: "+status) time.sleep(60) if status != "CREATING": break

Este origen de datos no tiene programación, por lo que no se ejecuta automáticamente. Para indexar el origen de datos, llamaStartDataSourceSyncJobpara sincronizar el índice con el origen de datos.

En los siguientes ejemplos se muestra la sincronización de un origen de datos.

CLI
aws kendra start-data-source-sync-job \ --index-id index ID \ --id data source ID
Python

El siguiente fragmento de código de Python sincroniza unAmazon S3origen de datos. Para obtener el ejemplo completoIntroducción al (AWS SDK for Python (Boto3)).

print("Synchronize the data source.") sync_response = kendra.start_data_source_sync_job( Id = "data-source-id", IndexId = "index-id" )