本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
當您的儲存庫 Amazon Kendra 尚未提供資料來源連接器時,請使用自訂資料來源。您可以使用它來查看 Amazon Kendra 資料來源提供的相同執行歷史記錄指標,即使您無法使用 Amazon Kendra資料來源來同步儲存庫。使用此選項可在 Amazon Kendra 資料來源和自訂來源之間建立一致的同步監控體驗。具體而言,使用自訂資料來源來查看您使用 BatchPutDocument 和 BatchDeleteDocument APIs 建立之資料來源連接器的同步指標。
如需對 Amazon Kendra 自訂資料來源連接器進行故障診斷,請參閱 對資料來源進行故障診斷。
當您建立自訂資料來源時,您可以完全控制如何選取要編製索引的文件。 Amazon Kendra 僅提供指標資訊,可用來監控資料來源同步任務。您必須建立並執行爬蟲程式,以決定資料來源索引的文件。
您必須使用文件物件和 _source_uri
DocumentAttribute 指定文件的主要標題,才能在Query
結果回應中DocumentURI
包含 DocumentTitle
和 。
您可以使用 主控台或使用 CreateDataSource API 建立自訂資料來源的識別符。若要使用 主控台,請為您的資料來源命名,並選擇性地提供描述和資源標籤。建立資料來源後,會顯示資料來源 ID。將此 ID 複製到同步資料來源與索引時使用。

您也可以使用 CreateDataSource
API 建立自訂資料來源。API 會傳回 ID,供您在同步資料來源時使用。當您使用 CreateDataSource
API 建立自訂資料來源時,您無法設定 Configuration
RoleArn
或 Schedule
參數。如果您設定這些參數, 會 Amazon Kendra 傳回ValidationException
例外狀況。
若要使用自訂資料來源,請建立負責更新 Amazon Kendra 索引的應用程式。應用程式取決於您建立的爬蟲程式。爬蟲程式會讀取您儲存庫中的文件,並決定哪些應該傳送至 Amazon Kendra。您的應用程式應執行下列步驟:
-
爬取您的儲存庫,並建立儲存庫中新增、更新或刪除的文件清單。
-
呼叫 StartDataSourceSyncJob API 以發出同步任務正在啟動的訊號。您提供資料來源 ID 來識別同步的資料來源。 Amazon Kendra 會傳回執行 ID 來識別特定的同步任務。
-
呼叫 BatchDeleteDocument API 以從索引中移除文件。您提供資料來源 ID 和執行 ID,以識別正在同步的資料來源,以及與此更新相關聯的任務。
-
呼叫 StopDataSourceSyncJob API 來發出同步任務結束的訊號。呼叫
StopDataSourceSyncJob
API 後,相關聯的執行 ID 不再有效。 -
使用索引和資料來源識別符呼叫 ListDataSourceSyncJobs API,列出資料來源的同步任務,並查看同步任務的指標。
在您結束同步任務之後,您可以啟動新的同步任務。在將所有提交的文件新增至索引之前,可能會有一段時間。使用 ListDataSourceSyncJobs
API 來查看同步任務的狀態。如果針對同步任務Status
傳回的 是 SYNCING_INDEXING
,則有些文件仍在編製索引中。當先前任務的狀態為 FAILED
或 時,您可以啟動新的同步任務SUCCEEDED
。
呼叫 StopDataSourceSyncJob
API 後,您無法在呼叫 BatchPutDocument
或 BatchDeleteDocument
APIs 時使用同步任務識別符。如果您這麼做,所有提交的文件都會傳回 API 的FailedDocuments
回應訊息。
必要屬性
當您 Amazon Kendra 使用 BatchPutDocument
API 將文件提交至 時,每個文件都需要兩個屬性來識別其所屬的資料來源和同步執行。您必須提供下列兩個屬性,才能將文件從自訂資料來源正確對應至 Amazon Kendra 索引:
-
_data_source_id
- 資料來源的識別符。當您使用主控台或CreateDataSource
API 建立資料來源時,便會傳回此值。 -
_data_source_sync_job_execution_id
- 同步執行的識別符。當您啟動與StartDataSourceSyncJob
API 的索引同步時,便會傳回此值。
以下是使用自訂資料來源為文件編製索引所需的 JSON。
{
"Documents": [
{
"Attributes": [
{
"Key": "_data_source_id",
"Value": {
"StringValue": "data source identifier
"
}
},
{
"Key": "_data_source_sync_job_execution_id",
"Value": {
"StringValue": "sync job identifier
"
}
}
],
"Blob": "document content
",
"ContentType": "content type
",
"Id": "document identifier
",
"Title": "document title
"
}
],
"IndexId": "index identifier
",
"RoleArn": "IAM role ARN
"
}
當您使用 BatchDeleteDocument
API 從索引中移除文件時,您需要在 DataSourceSyncJobMetricTarget
參數中指定下列兩個欄位:
-
DataSourceId
- 資料來源的識別符。當您使用主控台或CreateDataSource
API 建立資料來源時,便會傳回此值。 -
DataSourceSyncJobId
- 同步執行的識別符。當您啟動與StartDataSourceSyncJob
API 的索引同步時,便會傳回此值。
以下是使用 BatchDeleteDocument
API 從索引刪除文件所需的 JSON。
{
"DataSourceSyncJobMetricTarget": {
"DataSourceId": "data source identifier
",
"DataSourceSyncJobId": "sync job identifier
"
},
"DocumentIdList": [
"document identifier
"
],
"IndexId": "index identifier
"
}
檢視 指標
同步任務完成後,您可以使用 DataSourceSyncJobMetrics API 取得與同步任務相關聯的指標。使用此選項來監控您的自訂資料來源同步。
如果您多次提交相同的文件,無論是做為 BatchPutDocument
API、BatchDeleteDocument
API 的一部分,或是同時提交新增和刪除的文件,則文件只會在指標中計算一次。
-
DocumentsAdded
- 使用與此同步任務相關聯的BatchPutDocument
API 提交的文件數量,首次新增至索引。如果文件在同步中提交新增超過一次,則文件只會在指標中計算一次。 -
DocumentsDeleted
- 使用與此同步任務相關聯的BatchDeleteDocument
API 提交的文件數量,從索引中刪除。如果文件在同步中提交刪除超過一次,則文件只會在指標中計算一次。 -
DocumentsFailed
- 與此同步任務相關聯的失敗索引的文件數量。這些是 接受 Amazon Kendra 用於編製索引但無法編製索引或刪除的文件。如果文件未獲 接受 Amazon Kendra,文件的識別符會在BatchPutDocument
和BatchDeleteDocument
APIs的FailedDocuments
回應屬性中傳回。 -
DocumentsModified
- 使用與此同步任務相關聯的BatchPutDocument
API 提交的修改文件數量,而這些文件已在 Amazon Kendra 索引中修改。
Amazon Kendra 也會在編製文件索引時發出 Amazon CloudWatch 指標。如需詳細資訊,請參閱Amazon Kendra 使用 監控 Amazon CloudWatch。
Amazon Kendra 不會傳回自訂資料來源的DocumentsScanned
指標。它也會發出文件 CloudWatch Amazon Kendra 資料來源指標中列出的指標。
進一步了解
若要進一步了解 Amazon Kendra 如何與您的自訂資料來源整合,請參閱: