

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
<a name="create-index"></a>

Puede crear un índice mediante la consola o llamando a la [CreateIndex](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateIndex.html)API. Puedes usar AWS Command Line Interface (AWS CLI) o el SDK con la API. 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 una función AWS Identity and Access Management (IAM) para que los índices puedan acceder. CloudWatch Para obtener más información, consulte [Roles de IAM para índices](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-index).

Las siguientes pestañas proporcionan un procedimiento para crear un índice mediante Consola de administración de AWS, y ejemplos de código para usar AWS CLI, y Python y Java SDKs.

------
#### [ Console ]

**Para crear un índice de**

1. Inicie sesión en la consola AWS de administración y abra la Amazon Kendra consola en [https://console.aws.amazon.com/kendra/](https://console.aws.amazon.com/kendra/).

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

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

1. En el **IAM rol**, proporcione un IAM rol. 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 [Roles de IAM para índices](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-index).

1. Elija **Siguiente**.

1. En la página **Configurar acceso del cliente**, elija **Siguiente paso**. Puede actualizar el índice para utilizar tokens para el control de acceso después de crear un índice. Para más información, consulte [Control de acceso a documentos](https://docs.aws.amazon.com/kendra/latest/dg/create-index-access-control.html).

1. En la página **Detalles de aprovisionamiento**, elija **Crear**.

1. 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.

------
#### [ AWS CLI ]

**Para crear un índice de**

1. Utilice el siguiente comando para crear un índice. `role-arn`Debe ser el nombre de recurso de Amazon (ARN) de un IAM rol que pueda ejecutar Amazon Kendra acciones. Para obtener más información, consulte [Roles de IAM](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).

   El comando tiene formato para Linux y macOS. Si está usando Windows, reemplace el carácter de continuación de línea de Unix (\\) por un signo de intercalación (^).

   ```
   aws kendra create-index \
    --name {{index name}} \
    --description "{{index description}}" \
    --role-arn arn:aws:iam::{{account ID}}:role/{{role name}}
   ```

1. 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}}
   ```

------
#### [ Python ]

**Para crear un índice de**
+ Proporcione valores para las siguientes variables en el ejemplo de código siguiente:
  + `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 se puede ejecutar. Amazon Kendra APIs Para obtener más información, consulte [Roles de IAM](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).

  ```
  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 ]

**Para crear un índice de**
+ Proporcione valores para las siguientes variables en el ejemplo de código siguiente:
  + `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 se puede ejecutar. Amazon Kendra APIs Para obtener más información, consulte [Roles de IAM](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).

  ```
  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.

**Topics**
+ [Adición de documentos directamente a un índice mediante la carga por lotes](in-adding-documents.md)
+ [Agregar preguntas frecuentes (FAQs) a un índice](in-creating-faq.md)
+ [Creación de campos de documento personalizados](custom-attributes.md)
+ [Control de acceso de usuarios a los documentos con tokens](create-index-access-control.md)