Creación de un índice - 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.

Creación de un índice

Puede crear un índice mediante la consola, la AWS Command Line Interface (AWS CLI), o llamando a la API CreateIndex. En este capítulo se describe cómo crear un índice utilizando cualquiera de estos métodos. Después de crear el índice, puede agregar documentos directamente a él o desde un origen de datos.

Para crear un índice, debe proporcionar el nombre de recurso de Amazon (ARN) de un rol de AWS Identity and Access Management (IAM) que tenga acceso a un bucket de Amazon S3 que elija. En particular, el rol de IAM debe tener los permisos para realizar acciones en su nombre.

Para crear un índice (consola)

  1. Inicie sesión enAWSManagement Console y abraAmazon KendraConsola enhttps://console.aws.amazon.com/kendra/.

  2. Seleccione Create index (Crear índice) en la sección Indexes (Índices).

  3. En Specify index details (Especificar detalles de índice), proporcione a su índice un nombre y una descripción.

  4. EnIAMrol deproporcioneIAMRol de . Para buscar un rol, elija entre los roles de su cuenta que contengan la palabra «kendra» o introduzca el nombre de otro rol. Para obtener más información sobre el rol y los permisos necesarios, consulte IAMroles para índices.

  5. Elija Next (Siguiente).

  6. En la página Configure client access (Configurar acceso del cliente), elija Next Step (Siguiente paso). Puede actualizar el índice para utilizar tokens para el control de acceso después de crear un índice. Para obtener más información, consulte Control del acceso a los documentos de un índice.

  7. En la página Provisioning details (Detalles de aprovisionamiento), elija Crete (Crear).

  8. El índice puede tardar un tiempo en crearse. Consulte la lista de índices para ver el progreso de la creación del índice. Cuando el estado del índice sea ACTIVE, el índice estará listo para utilizarse.

Para crear un índice (AWS CLI).

  1. Utilice el siguiente comando para crear un índice. El role-arn debe ser el nombre de recurso de Amazon (ARN) de un rol de IAM que pueda ejecutar acciones de Amazon Kendra. Para obtener más información, consulte IAMAcceso aAmazon Kendra.

    aws kendra create-index \ --name index name \ --description "index description" \ --role-arn arn:aws:iam::account ID:role/role name
  2. El índice puede tardar un tiempo en crearse. Para comprobar el estado de su índice, utilice el ID de índice devuelto por create-index con el comando siguiente. Cuando el estado del índice sea ACTIVE, el índice estará listo para utilizarse.

    aws kendra describe-index \ --index-id index ID

Para crea un índice (SDK).

  1. Proporcione valores para las siguientes variables:

    • description: una descripción del índice que está creando. Es opcional.

    • index_name: el nombre del índice que está creando.

    • role_arn: el nombre de recurso de Amazon (ARN) de un rol que puede ejecutar las API Amazon Kendra. Para obtener más información, consulte IAMAcceso aAmazon Kendra.

  2. En los ejemplos siguientes, se crea un índice con Amazon Kendra.

    Python
    import boto3 from botocore.exceptions import ClientError import pprint import time kendra = boto3.client("kendra") print("Create an index.") # Provide a name for the index index_name = "index-name" # Provide an optional description for the index description = "index description" # Provide the IAM role ARN required for indexes role_arn = "arn:aws:iam::${account id}:role/${role name}" try: index_response = kendra.create_index( Name = index_name, Description = description, RoleArn = role_arn ) pprint.pprint(index_response) index_id = index_response["Id"] print("Wait for Amazon Kendra to create the index.") while True: # Get the details of the index, such as the status index_description = kendra.describe_index( Id = index_id ) # If status is not CREATING, then quit status = index_description["Status"] print(" Creating index. Status: "+status) if status != "CREATING": break time.sleep(60) except ClientError as e: print("%s" % e) print("Program ends.")
    Java
    package com.amazonaws.kendra; import java.util.concurrent.TimeUnit; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.CreateIndexRequest; import software.amazon.awssdk.services.kendra.model.CreateIndexResponse; import software.amazon.awssdk.services.kendra.model.DescribeIndexRequest; import software.amazon.awssdk.services.kendra.model.DescribeIndexResponse; import software.amazon.awssdk.services.kendra.model.IndexStatus; public class CreateIndexExample { public static void main(String[] args) throws InterruptedException { String indexDescription = "Getting started index for Kendra"; String indexName = "java-getting-started-index"; String indexRoleArn = "arn:aws:iam::<your AWS account ID>:role/KendraRoleForGettingStartedIndex"; System.out.println(String.format("Creating an index named %s", indexName)); CreateIndexRequest createIndexRequest = CreateIndexRequest .builder() .description(indexDescription) .name(indexName) .roleArn(indexRoleArn) .build(); KendraClient kendra = KendraClient.builder().build(); CreateIndexResponse createIndexResponse = kendra.createIndex(createIndexRequest); System.out.println(String.format("Index response %s", createIndexResponse)); String indexId = createIndexResponse.id(); System.out.println(String.format("Waiting until the index with ID %s is created.", indexId)); while (true) { DescribeIndexRequest describeIndexRequest = DescribeIndexRequest.builder().id(indexId).build(); DescribeIndexResponse describeIndexResponse = kendra.describeIndex(describeIndexRequest); IndexStatus status = describeIndexResponse.status(); if (status != IndexStatus.CREATING) { break; } TimeUnit.SECONDS.sleep(60); } System.out.println("Index creation is complete."); } }

Después de crear el índice, tendrá que añadir documentos a él. Puede añadirlos directamente o crear un origen de datos que actualice el índice de forma periódica.