インデックスの作成 - Amazon Kendra

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

インデックスの作成

インデックスは、コンソールを使用するか、 CreateIndex API を呼び出して作成できます。 AWS Command Line Interface (AWS CLI) または SDK を API で使用できます。インデックスを作成したら、ドキュメントをインデックスに直接追加したり、データソースからドキュメントを追加したりできます。

インデックスを作成するには、インデックスが にアクセスするための () ロールの Amazon リソースネーム AWS Identity and Access Management (ARNIAM) を指定する必要があります CloudWatch。詳細については、「IAM roles for indexes」を参照してください。

次のタブでは、、 AWS Management Console、Python および Java SDK を使用してインデックスを作成する手順と AWS CLI、 のコード例を示します。 SDKs

Console
インデックスを作成するには
  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/kendra/ で Amazon Kendra コンソールを開きます。

  2. [インデックス] セクションで、[インデックスの作成] を選択します。

  3. [インデックスの詳細の指定] で、インデックスに名前と説明を付けます。

  4. IAM ロールには IAM ロールを指定します。ロールを見つけるには、「kendra」という単語を含むアカウントでロールから選択するか、別のロールの名前を入力します。ロールが必要とするアクセス許可の詳細については、「IAM roles for indexes」を参照してください。

  5. [次へ] を選択します。

  6. [ユーザーアクセスコントロールの設定] ページで、[次へ] をクリックします。インデックスを作成した後、アクセス制御にトークンを使用するようにインデックスを更新できます。詳細については、「Controlling access to documents」を参照してください。

  7. [プロビジョニングの詳細] ページで、[作成] を選択します。

  8. インデックスが作成されるまでにしばらく時間がかかることがあります。インデックスのリストをチェックして、インデックスの作成の進行状況を確認します。インデックスのステータスが ACTIVE の場合、インデックスが使用する準備ができています。

AWS CLI
インデックスを作成するには
  1. 以下のコマンドを使用してインデックスを作成します。は、 Amazon Kendra アクションを実行できる IAM ロールの Amazon リソースネーム (ARN) role-arnである必要があります。詳細については、「IAM roles」を参照してください。

    次のコマンドは、Linux と macOS 用にフォーマットされています。Windows を使用している場合、Unix 行連結記号 (\) をキャレット (^) に置き換えます。

    aws kendra create-index \ --name index name \ --description "index description" \ --role-arn arn:aws:iam::account ID:role/role name
  2. インデックスが作成されるまでにしばらく時間がかかることがあります。インデックスの状態をチェックするには、以下のコマンドで create-index によって返されるインデックス ID を使用します。インデックスのステータスが ACTIVE の場合、インデックスが使用する準備ができています。

    aws kendra describe-index \ --index-id index ID
Python
インデックスを作成するには
  • 次のコード例で、次の変数の値を指定します。

    • description - 作成するインデックスの説明。これはオプションです。

    • index_name - 作成するインデックスの名前。

    • role_arn— Amazon Kendra APIs を実行できるロールの Amazon リソースネーム (ARN)。詳細については、「IAM roles」を参照してください。

    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
インデックスを作成するには
  • 次のコード例で、次の変数の値を指定します。

    • description - 作成するインデックスの説明。これはオプションです。

    • index_name - 作成するインデックスの名前。

    • role_arn— Amazon Kendra APIs を実行できるロールの Amazon リソースネーム (ARN)。詳細については、「IAM roles」を参照してください。

    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."); } }

インデックスを作成したら、そのインデックスにドキュメントを追加します。これらは直接追加することも、定期的にインデックスを更新するデータソースを作成することもできます。