「新しいAmazon Kendra Alfrescoコネクタを使用して、Alfrescoコンテンツをインデックス化します」
Using the new Amazon Kendra Alfresco connector to index Alfresco content.
Amazon Kendraは、機械学習(ML)によって強力で正確な検索機能を提供する、高度な精度と使いやすさを兼ね備えたインテリジェントな検索サービスです。Amazon Kendraは、データソースコネクタのスイートを提供し、コンテンツがどこにあっても、その取り込みとインデックス作成のプロセスを簡素化します。
組織内の貴重なデータは、構造化および非構造化のリポジトリに保存されています。エンタープライズ検索ソリューションは、複数の構造化および非構造化リポジトリをインデックス化し、検索できるようにする必要があります。
Alfresco Content Servicesは、オープンで柔軟性があり、高度なスケーラビリティを備えたエンタープライズコンテンツ管理(ECM)の機能を提供します。さらに、コンテンツサービスプラットフォームの利点を備えており、日常的に使用する業務アプリケーションとの簡単な統合により、どこでもどのようにでもコンテンツにアクセスできます。多くの組織がAlfrescoコンテンツ管理プラットフォームを使用してコンテンツを保存しています。Alfrescoを使用するエンタープライズの顧客にとって、重要な要件の1つは、保存されているすべてのドキュメントを簡単かつ安全に検索し、正確な情報を見つけることができる能力です。
お知らせです!新しいAmazon Kendra Alfrescoコネクタを使用して、Alfrescoリポジトリとサイトに保存されているドキュメントを検索できるようになりました。この記事では、新しいコネクタを使用して、インデックス化の目的でAlfrescoに保存されているドキュメントを取得し、Amazon Kendraのインテリジェントな検索機能を安全に使用する方法を紹介します。さらに、MLによるインテリジェントな検索では、キーワード検索があまり効果的でない自然言語のナラティブコンテンツを持つ非構造化ドキュメントから正確な情報を見つけることができます。
- OpenAIの進化:GPT5への競争
- 「Nvidiaの画期的なAIイメージパーソナライゼーション:灌流法」
- 「OpenAIがユーザーエクスペリエンスを革新するために6つのエキサイティングなChatGPT機能を発表」
Amazon Kendra Alfrescoコネクタの新機能
Amazon Kendra Alfrescoコネクタは、以下の機能をサポートしています:
- Alfrescoオンプレミス(On-Prem)プラットフォーム用の基本認証とOAuth2認証のメカニズム
- Alfresco PaaSプラットフォーム用の基本認証とOAuth2認証のメカニズム
- Alfrescoリポジトリドキュメントのアスペクトベースのクローリング
ソリューションの概要
Amazon Kendraを使用すると、複数のデータソースを設定して、ドキュメントリポジトリとサイト全体での検索を一元化することができます。この記事のソリューションでは、以下の内容をデモンストレーションします:
- Alfrescoのプライベートサイトとパブリックサイトからドキュメントとコメントを取得する
- Amazon Kendra固有のアスペクトを使用して、Alfrescoリポジトリからドキュメントとコメントを取得する
- Alfresco On-PremおよびPaaSプラットフォームでの基本認証とOAuth2メカニズムによる認証
- サイトとリポジトリ全体でのアクセス制御を備えたAmazon Kendraの検索機能
1つのプラットフォームのみを使用する場合は、使用していないプラットフォームに対応する手順を無視して、この記事に従ってサンプルソリューションを構築することができます。
以下は、サンプルソリューションを構築するための手順の概要です:
- 3つのAlfrescoサイトとリポジトリフォルダにドキュメントをアップロードします。アップロードされたドキュメントがサイトとリポジトリフォルダ全体で一意であることを確認してください。
- 2つのプライベートサイトとリポジトリに対して、ドキュメントレベルのAlfresco権限管理を使用してアクセス許可を設定します。パブリックサイトでは、ドキュメントレベルでのアクセス許可の設定は必要ありません。アクセス権限情報はAmazon Kendra Alfrescoコネクタによって取得され、Amazon Kendra検索機能によるアクセス制御に使用されます。
- 2つのプライベートサイトとリポジトリに対して、新しいAmazon Kendraインデックスを作成します(プライベートサイトとリポジトリの両方で同じインデックスを使用します)。パブリックサイトでは、新しいAmazon Kendraインデックスを作成します。
- オンプレミスのプライベートサイトに対して、Basic認証を使用してAmazon Kendra Alfrescoデータソースを作成します(プライベートサイト用のAmazon Kendraインデックス内で使用します)。
- Amazon Kendra固有のアスペクトを持つオンプレミスリポジトリドキュメントに対して、Basic認証を使用してデータソースを作成します(プライベートサイト用のAmazon Kendraインデックス内で使用します)。
- PaaSのプライベートサイトに対して、Basic認証を使用してデータソースを作成します(プライベートサイト用のAmazon Kendraインデックス内で使用します)。
- PaaSのパブリックサイトに対して、OAuth2認証を使用してデータソースを作成します(パブリックサイト用のAmazon Kendraインデックス内で使用します)。
- 各データソースの同期を実行します。
- アクセス制御を持つプライベートサイトおよびリポジトリ向けのAmazon Kendraインデックスでテストクエリを実行します。
- アクセス制御のないパブリックサイト向けのAmazon Kendraインデックスでテストクエリを実行します。
前提条件
AWSアカウントが必要で、AWS Identity and Access Management(IAM)ロールとポリシーを作成するための権限を持っている必要があります。詳細については、「アクセス管理の概要:アクセス許可とポリシー」を参照してください。また、AWSおよびAWS Management Consoleの操作方法に基本的な知識が必要です。
Alfrescoオンプレミスプラットフォームの場合は、以下の手順を完了してください:
- プライベートサイトを作成するか、既存のサイトを使用します。
- リポジトリフォルダを作成するか、既存のリポジトリフォルダを使用します。
- リポジトリのURLを取得します。
- Basic認証の資格情報(ユーザーIDとパスワード)を取得します。
- 認証が
ALFRESCO_ADMINISTRATORS
グループの一部であることを確認します。 - 公開X509証明書を.pem形式で取得し、ローカルに保存します。
Alfresco PaaSプラットフォームの場合、次の手順を実行します:
- プライベートサイトを作成するか、既存のサイトを使用します。
- パブリックサイトを作成するか、既存のサイトを使用します。
- リポジトリのURLを取得します。
- Basic認証の資格情報(ユーザーIDとパスワード)を取得します。
- OAuth2の資格情報(クライアントID、クライアントシークレット、トークンURL)を取得します。
- 認証ユーザーが
ALFRESCO_ADMINISTRATORS
グループの一部であることを確認します。
ステップ1:サンプルドキュメントのアップロード
アップロードする各ドキュメントのテキストは5MB以下である必要があります。詳細については、Amazon Kendraサービスクォータを参照してください。各サイト内の既存のドキュメントをアップロードするか、サンプルドキュメントをアップロードできます。
次のスクリーンショットに示すように、Alfrescoオンプレミスのプライベートサイトには4つのドキュメントがアップロードされています。
Alfresco PaaSのプライベートサイトには3つのドキュメントがアップロードされています。
Alfresco PaaSのパブリックサイトには5つのドキュメントがアップロードされています。
Alfrescoオンプレミスのリポジトリには2つのドキュメントがアップロードされています。
リポジトリフォルダ内の1つ以上のドキュメントにawskendra:indexControl
アスペクトを割り当てます。
ステップ2:Alfrescoのアクセス許可を設定する
Alfrescoのアクセス許可管理機能を使用して、サンプルユーザーがアップロードされたドキュメントを表示するためのアクセス権を付与します。ドキュメントレベルでアクセス許可を設定するために使用できる、メールアドレスを持つサンプルAlfrescoユーザー名がいくつかあることを前提としています。これらのユーザーはサイトをクロールするために使用されません。
次の例では、オンプレミスのプライベートサイトに対して、ユーザー「My Dev User1」と「My Dev User2」にサイトコンシューマーアクセスを提供しました。他のアップロードされたドキュメントに対しても同じ手順を繰り返します。
次の例では、PaaSのプライベートサイトに対して、ユーザー「Kendra User 3」にサイトコンシューマーアクセスを提供しました。他のアップロードされたドキュメントに対しても同じ手順を繰り返します。
Alfrescoリポジトリのドキュメントについて、私たちはユーザーMy Dev user1に、例のドキュメントへのコンシューマーアクセスを提供しました。
以下の表には、サイトまたはリポジトリ名、ドキュメント名、およびアクセス権がリストされています。
プラットフォーム | サイトまたはリポジトリ名 | ドキュメント名 | ユーザーID |
オンプレミス | MyAlfrescoSite | ChannelMarketingBudget.xlsx | My Manager User3 |
オンプレミス | MyAlfrescoSite | wellarchitected-sustainability-pillar.pdf | My Dev User1, My Dev User2 |
オンプレミス | MyAlfrescoSite | WorkDocs.docx | My Dev User1, My Dev User2, My Manager User3 |
オンプレミス | MyAlfrescoSite | WorldPopulation.csv | My Dev User1, My Dev User2, My Manager User3 |
PaaS | MyAlfrescoCloudSite2 | DDoS_White_Paper.pdf | Kendra User3 |
PaaS | MyAlfrescoCloudSite2 | wellarchitected-framework.pdf | Kendra User3 |
PaaS | MyAlfrescoCloudSite2 | ML_Training.pptx | Kendra User1 |
PaaS | MyAlfrescoCloudPublicSite | batch_user.pdf | Everyone |
PaaS | MyAlfrescoCloudPublicSite | Amazon Simple Storage Service – User Guide.pdf | Everyone |
PaaS | MyAlfrescoCloudPublicSite | AWS Batch – User Guide.pdf | Everyone |
PaaS | MyAlfrescoCloudPublicSite | Amazon Detective.docx | Everyone |
PaaS | MyAlfrescoCloudPublicSite | Pricing.xlsx | Everyone |
オンプレミス | リポジトリ:MyAlfrescoRepoFolder1 | Polly-dg.pdf(aspect awskendra:indexControl) | My Dev User1 |
オンプレミス | リポジトリ:MyAlfrescoRepoFolder1 | Transcribe-api.pdf(aspect awskendra:indexControl) | My Dev User1 |
ステップ3:Amazon Kendraインデックスの設定
Alfrescoプライベートサイトにホストされているドキュメントのインデックス作成には、新しいAmazon Kendraインデックスを作成するか、既存のインデックスを使用することができます。新しいインデックスを作成するには、以下の手順を完了してください:
- Amazon Kendraコンソールで、「Alfresco-Private」という名前のインデックスを作成します。
- 新しいIAMロールを作成し、「次へ」を選択します。
- 「アクセス制御」で「はい」を選択します。
- 「トークンタイプ」で「JSON」を選択します。
- ユーザー名とグループはデフォルトのままにします。
- AWS IAM Identity Center(AWS Single Sign-Onの後継)との統合を想定していないため、ユーザーグループの展開は「なし」とします。
- 「次へ」を選択します。
- この例のソリューションでは、「Developer Edition」を選択します。
- 新しいインデックスを作成するために「作成」を選択します。
以下のスクリーンショットは、「Alfresco-Private」というインデックスの作成後のものです。
- 「ユーザーアクセス制御」タブでアクセス制御の設定を確認できます。
- 2番目のインデックスとして「Alfresco-Public」という名前のインデックスを作成するには、これらの手順を繰り返します。
ステップ4:オンプレミスのプライベートサイトのデータソースの作成
オンプレミスのプライベートサイトのデータソースを作成するには、以下の手順を完了してください:
- Amazon Kendraコンソールで、「Alfresco-Private」という名前のインデックスに移動します。
- ナビゲーションペインで「データソース」を選択します。
- 「データソースの追加」を選択します。
- Alfrescoコネクタに対して「コネクタの追加」を選択します。
- 「データソース名」に「Alfresco-OnPrem-Private」と入力します。
- オプションで説明を追加します。
- その他の設定はデフォルトのままにして、「次へ」を選択します。
Alfrescoオンプレミスサイトに接続するためには、コネクタがオンプレミスサーバーに対応する公開証明書へのアクセスが必要です。これは前提条件の1つでした。
- 別のブラウザタブを使用して、.pemファイルをAmazon Simple Storage Service(Amazon S3)バケットにアップロードします。
次の手順でこのS3バケット名を使用します。
- データソース作成ページに戻ります。
- ソースにはAlfrescoサーバーを選択します。
- AlfrescoリポジトリURLには、リポジトリURL(前提条件として作成されたもの)を入力します。
- AlfrescoユーザーアプリケーションURLには、リポジトリURLと同じ値を入力します。
- SSL証明書の場所には、Browse S3を選択し、.pemファイルをアップロードしたS3バケットを選択します。
- 認証には基本認証を選択します。
- AWS Secrets Managerシークレットには新しいシークレットを作成して追加を選択します。
ポップアップウィンドウが開き、AWS Secrets Managerシークレットを作成します。
- シークレットの名前、ユーザー名、パスワードを入力し、保存を選択します。
- 仮想プライベートクラウド(VPC)にはVPCなしを選択します。
- アイデンティティクローラーをオンにします。
- IAMロールには新しいIAMロールを作成を選択します。
- 次へを選択します。
データソースを設定して、1つ以上のAlfrescoサイトからコンテンツを同期することができます。この投稿では、オンプレミスのプライベートサイトに同期します。
- 同期するコンテンツには単一のAlfrescoサイトの同期を選択し、
MyAlfrescoSite
を選択します。 - コメントを含めるを選択して、ドキュメントに加えてコメントも取得します。
- 同期モードにはフル同期を選択します。
- 頻度には要求時に実行(必要に応じて別の頻度オプションを選択)を選択します。
- 次へを選択します。
- AlfrescoドキュメントフィールドをAmazon Kendraインデックスフィールドにマッピングします(デフォルトのままでかまいません)、そして次へを選択します。
- レビューと作成ページで、すべての情報を確認し、データソースを追加を選択します。
データソースが作成された後、データソースページが以下のスクリーンショットに表示されます。
ステップ5:Amazon Kendra固有の側面を持つオンプレミスリポジトリドキュメントのデータソースを作成する
前と同様に、Amazon Kendra固有の側面を持つOn-Premリポジトリドキュメントのデータソースを作成します:
- Amazon Kendraコンソールで、
Alfresco-Private
インデックスに移動します。 - ナビゲーションペインでデータソースを選択します。
- データソースの追加を選択します。
- Alfrescoコネクターのコネクターの追加を選択します。
- データソース名に
Alfresco-OnPrem-Aspects
を入力します。 - オプションで説明を追加します。
- 残りの設定はデフォルトのままにして、次へを選択します。
- ソースで、Alfrescoサーバーを選択します。
- AlfrescoリポジトリURLに、リポジトリURL(前提条件として作成されたもの)を入力します。
- AlfrescoユーザーアプリケーションURLに、リポジトリURLと同じ値を入力します。
- SSL証明書の場所で、S3を参照を選択し、.pemファイルをアップロードしたS3バケットを選択します。
- 認証で、基本認証を選択します。
- AWS Secrets Managerシークレットで、前に作成したシークレットを選択します。
- 仮想プライベートクラウド(VPC)で、VPCなしを選択します。
- アイデンティティクローラーをオフにします。
- IAMロールで、新しいIAMロールを作成を選択します。
- 次へを選択します。
このスコープでは、コネクターはawskendra:indexControl
という名前のアスペクトが割り当てられたOn-Premサーバーリポジトリドキュメントのみを取得します。
- 同期するコンテンツで、Alfrescoアスペクトの同期を選択します。
- 同期モードで、フル同期を選択します。
- 頻度で、必要に応じて要求に応じて実行(または他の頻度オプション)を選択します。
- 次へを選択します。
- AlfrescoドキュメントのフィールドをAmazon Kendraインデックスフィールドにマッピングします(デフォルトのままにしても構いません)、その後次へを選択します。
- レビューと作成ページで、すべての情報を確認し、データソースの追加を選択します。
データソースが作成された後、以下のスクリーンショットに示すようにデータソースページが表示されます。
ステップ6:PaaSプライベートサイトのデータソースを作成する
PaaSプライベートサイトのデータソースを作成するために、前のセクションと同様の手順を実行してください:
- Amazon Kendraコンソールで、
Alfresco-Private
インデックスに移動します。 - ナビゲーションペインでデータソースを選択します。
- データソースの追加を選択します。
- Alfrescoコネクターのコネクターの追加を選択します。
- データソース名に
Alfresco-Cloud-Private
を入力します。 - オプションで説明を追加します。
- 残りの設定はデフォルトのままにして、次へを選択します。
- ソースで、Alfrescoクラウドを選択します。
- AlfrescoリポジトリURLに、リポジトリURL(前提条件として作成されたもの)を入力します。
- AlfrescoユーザーアプリケーションURLに、リポジトリURLと同じ値を入力します。
- 認証で、基本認証を選択します。
- AWS Secrets Managerシークレットで、新しいシークレットの作成と追加を選択します。
- シークレットの名前、ユーザー名、パスワードを入力して、保存を選択します。
- 仮想プライベートクラウド(VPC)で、VPCなしを選択します。
- アイデンティティクローラーをオフにします。
- IAMロールで、新しいIAMロールを作成を選択します。
- 次へを選択します。
データソースを設定して、1つ以上のAlfrescoサイトからコンテンツを同期することができます。この投稿では、データソースをPaaSプライベートサイト「MyAlfrescoCloudSite2」から同期するように設定します。
- 同期するコンテンツに、単一のAlfrescoサイトの同期を選択し、「MyAlfrescoCloudSite2」を選択します。
- コメントを含めるを選択します。
- 同期モードには、フル同期を選択します。
- 頻度には、要求に応じて実行(必要に応じて別の頻度オプションを選択します)を選択します。
- 次へを選択します。
- AlfrescoのドキュメントフィールドをAmazon Kendraのインデックスフィールドにマッピングします(デフォルトのままで構いません)。次へを選択します。
- レビューと作成ページで、すべての情報を確認し、データソースを追加します。
データソースが作成された後、次のスクリーンショットに表示されるように、データソースページが表示されます。
ステップ7:PaaSパブリックサイトのデータソースを作成する
前と同様の手順で、PaaSパブリックサイトのデータソースを作成します:
- Amazon Kendraコンソールで、Alfresco-Publicインデックスに移動します。
- ナビゲーションパネルでデータソースを選択します。
- データソースを追加を選択します。
- Alfrescoコネクタのためにコネクタを追加を選択します。
- データソース名には、
Alfresco-Cloud-Public
を入力します。 - オプションで説明を追加します。
- 残りの設定はデフォルトのままにして、次へを選択します。
- ソースには、Alfrescoクラウドを選択します。
- AlfrescoリポジトリのURLには、リポジトリのURL(前提条件として作成されたもの)を入力します。
- AlfrescoユーザーアプリケーションのURLには、リポジトリのURLと同じ値を入力します。
- 認証には、OAuth2.0認証を選択します。
- AWS Secrets Managerのシークレットには、新しいシークレットを作成して追加を選択します。
- シークレットの名前、クライアントID、クライアントシークレット、トークンURLを入力し、保存を選択します。
- 仮想プライベートクラウド(VPC)には、いいえを選択します。
- アイデンティティクローラをオフにします。
- IAMロールには、新しいIAMロールを作成を選択します。
- 次へを選択します。
このデータソースをPaaSパブリックサイト「MyAlfrescoCloudPublicSite」に同期するように設定します。
- 同期するコンテンツに、単一のAlfrescoサイトの同期を選択し、「MyAlfrescoCloudPublicSite」を選択します。
- オプションでコメントを含めるを選択します。
- 同期モードには、フル同期を選択します。
- 頻度には、要求に応じて実行(必要に応じて別の頻度オプションを選択します)を選択します。
- 次へを選択します。
- AlfrescoのドキュメントフィールドをAmazon Kendraのインデックスフィールドにマッピングします(デフォルトのままで構いません)。次へを選択します。
- レビューと作成ページで、すべての情報を確認し、データソースを追加します。
データソースが作成された後、次のスクリーンショットに表示されるように、データソースページが表示されます。
ステップ8:各データソースの同期を実行する
各データソースに移動し、今すぐ同期を選択します。一度に1つの同期のみを完了してください。
すべてのデータソースの同期が完了するのを待ちます。各データソースの同期が完了すると、次のスクリーンショットに示す状態が表示されます。
また、同期実行履歴の下で特定の同期に関するAmazon CloudWatchログを表示することもできます。
ステップ9:アクセス制御を使用してプライベートインデックスでテストクエリを実行する
さあ、ソリューションをテストする時間です。最初にアクセス制御を使用してプライベートインデックスでクエリを実行します:
- Amazon Kendraコンソールで
Alfresco-Private
インデックスに移動し、インデックスされたコンテンツを検索を選択します。
- 検索フィールドにクエリを入力します。
次のスクリーンショットに示すように、Amazon Kendraは結果を返しませんでした。
- トークンを適用を選択します。
- My Dev User1ユーザーに対応するメールアドレスを入力し、適用を選択します。
Amazon Kendraのアクセス制御は、Alfrescoユーザー名に関連付けられたメールアドレスに基づいて動作します。
- 検索を再実行します。
アクセス制御の設定に基づいて、検索結果はドキュメントリスト(以下の例ではwellarchitected-sustainability-pillar.pdf
を含む)となります。
同じクエリを再度実行し、これらのドキュメントにアクセス権がないメールアドレスを提供すると、結果リストにこれらのドキュメントは表示されません。
- アスペクト
awskendra:indexControl
に基づいてドキュメント内を検索するための別のクエリを入力します。 - トークンを適用を選択し、My Dev User1ユーザーに対応するメールアドレスを入力し、適用を選択します。
- クエリを再実行します。
ステップ10:アクセス制御なしで公開インデックスでテストクエリを実行する
同様に、アクセス制御なしで公開インデックスでクエリを実行して、ソリューションをテストできます:
- Amazon Kendraコンソールに移動し、Alfresco-Publicインデックスを選択して、「インデックス内のコンテンツを検索」を選択します。
- 検索クエリを実行します。
この例のAlfrescoパブリックサイトはアクセス制御が設定されていないため、アクセストークンは使用しません。
クリーンアップ
将来のコストを回避するために、このソリューションの一部として作成したリソースをクリーンアップしてください。インデックス内の新しく追加されたAlfrescoデータソースを削除します。このソリューションのテスト中に新しいAmazon Kendraインデックスを作成した場合は、それらも削除してください。
結論
新しいAlfrescoコネクターを使用することで、組織はAmazon Kendraのパワーを利用して、アカウントに格納されている情報のリポジトリに安全にアクセスし、インテリジェントな検索を行うことができます。
これらの可能性やその他の情報については、Amazon Kendraデベロッパーガイドを参照してください。Alfrescoからデータをインジェストする際にメタデータやコンテンツを作成、変更、または削除する方法については、「データのインジェスト中にドキュメントを豊かにする」および「Amazon Kendraでカスタムドキュメントエンリッチメントを使用して検索エクスペリエンスを強化するためのコンテンツとメタデータのエンリッチ」を参照してください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles