在 StorageGRID 中設定搜尋整合服務
您可以透過建立搜尋整合 XML 並使用 Tenant Manager 將 XML 套用至儲存桶來啟用儲存桶的搜尋整合。
-
StorageGRID 系統管理員已為您的租戶帳戶啟用平台服務。
-
您已建立 S3 儲存桶,並想要對其內容建立索引。
-
您打算用作搜尋整合服務目的地的端點已經存在,且您擁有其 URN。
-
您屬於擁有 "管理所有儲存桶或 root 存取權限" 的使用者群組。使用 Tenant Manager 設定儲存貯體時,這些權限會置換群組或儲存貯體原則中的權限設定。
為來源儲存桶設定搜尋整合服務後,建立物件或更新物件的中繼資料或標籤會觸發物件中繼資料傳送至目的地端點。
如果為已包含物件的儲存桶啟用搜尋整合服務,則不會自動為現有物件傳送中繼資料通知。請更新這些現有物件,以確保將其中繼資料新增至目的地搜尋索引。
-
為儲存桶啟用搜尋整合:
-
使用文字編輯器建立啟用搜尋整合所需的中繼資料通知 XML。
-
設定 XML 時,請使用搜尋整合端點的 URN 作為目的地。
可以根據物件名稱的前綴對物件進行篩選。例如,您可以將具有前綴
images的物件中繼資料傳送到一個目的地,並將具有前綴videos的物件中繼資料傳送到另一個目的地。前綴重疊的組態無效,提交時會被拒絕。例如,包含一條針對前綴為test的物件規則,以及另一條針對前綴為test2的物件規則的組態是不允許的。如有需要,請參閱中繼資料組態 XML 範例。
<MetadataNotificationConfiguration> <Rule> <Status>Enabled</Status> <Prefix></Prefix> <Destination> <Urn>/Urn> </Destination> </Rule> </MetadataNotificationConfiguration>中繼資料通知組態 XML 中的元素:
Name 說明 必填 MetadataNotificationConfiguration
用於指定中繼資料通知的物件和目的地的規則容器標籤。
包含一個或多個規則元素。
是的
規則
用於識別應將其中繼資料新增至指定索引之物件規則的容器標籤。
前綴重疊的規則將被拒絕。
包含在 MetadataNotificationConfiguration 元素中。
是的
ID
規則的唯一識別碼。
包含在規則元素中。
否
狀態
狀態可以是「已啟用」或「已停用」。對於已停用的規則,不會採取任何行動。
包含在規則元素中。
是的
前綴
與前綴相符的物件會受到該規則的影響,其中繼資料會傳送至指定的目的地。
若要符合所有物件,請指定空白前綴。
包含在規則元素中。
是的
目的地
規則目的地的容器標籤。
包含在規則元素中。
是的
Urn
物件中繼資料發送到的目的地的 URN。必須是具有以下屬性的 StorageGRID 端點的 URN:
-
`es`必須是第三個元素。
-
URN 必須以中繼資料儲存的索引和類型結尾,格式為
domain-name/myindex/mytype。
端點透過 Tenant Manager 或租戶管理 API 進行設定。它們採用以下形式:
-
arn:aws:es:region:account-ID:domain/mydomain/myindex/mytype -
urn:mysite:es:::mydomain/myindex/mytype
必須先設定端點,然後才能提交組態 XML,否則組態將失敗並出現 404 錯誤。
URN 包含在 Destination 元素中。
是的
-
-
在租戶管理員中選擇 STORAGE (S3) > Buckets。
-
選取來源儲存貯體的名稱。
顯示儲存桶詳細資料頁面。
-
選擇 Platform services > Search integration
-
選取 Enable search integration 核取方塊。
-
將中繼資料通知組態貼上到文字方塊中,然後選擇 Save changes。
StorageGRID 系統管理員必須使用 Grid Manager 或管理 API 為每個租戶帳戶啟用平台服務。如果在儲存組態 XML 時發生錯誤,請聯絡您的 StorageGRID 系統管理員。 -
請確認搜尋整合服務已正確設定:
-
在來源儲存桶中新增一個符合組態 XML 中規定的觸發中繼資料通知要求的物件。
在前面的範例中,新增到儲存桶中的所有物件都會觸發中繼資料通知。
-
確認已將包含物件中繼資料和標籤的 JSON 文件新增至端點指定的搜尋索引。
-
如有需要,您可以使用以下任一方法停用儲存桶的搜尋整合:
-
選擇 STORAGE (S3) > Buckets ,然後清除 Enable search integration 核取方塊。
-
如果您直接使用 S3 API,請使用 DELETE Bucket 中繼資料通知請求。請參閱 S3 用戶端應用程式的實作說明。
範例:適用於所有物件的中繼資料通知組態
在此範例中,所有物件的物件中繼資料都會傳送至相同的目的地。
<MetadataNotificationConfiguration>
<Rule>
<ID>Rule-1</ID>
<Status>Enabled</Status>
<Prefix></Prefix>
<Destination>
<Urn>urn:myes:es:::sgws-notifications/test1/all</Urn>
</Destination>
</Rule>
</MetadataNotificationConfiguration>
範例:包含兩個規則的中繼資料通知組態
在此範例中,符合前綴 `/images`的物件之物件中繼資料會傳送至一個目的地,而符合前綴 `/videos`的物件之物件中繼資料則會傳送至第二個目的地。
<MetadataNotificationConfiguration>
<Rule>
<ID>Images-rule</ID>
<Status>Enabled</Status>
<Prefix>/images</Prefix>
<Destination>
<Urn>arn:aws:es:us-east-1:3333333:domain/es-domain/graphics/imagetype</Urn>
</Destination>
</Rule>
<Rule>
<ID>Videos-rule</ID>
<Status>Enabled</Status>
<Prefix>/videos</Prefix>
<Destination>
<Urn>arn:aws:es:us-west-1:22222222:domain/es-domain/graphics/videotype</Urn>
</Destination>
</Rule>
</MetadataNotificationConfiguration>
中繼資料通知格式
為儲存桶啟用搜尋整合服務時,每次新增、更新或刪除物件中繼資料或標籤時,都會產生一個 JSON 文件並將其傳送至目的地端點。
此範例顯示在名為 test 的儲存貯體中建立具有金鑰 SGWS/Tagging.txt 的物件時,可能產生的 JSON 範例。 test 儲存貯體未啟用版本控制,因此 versionId 標記為空。
{
"bucket": "test",
"key": "SGWS/Tagging.txt",
"versionId": "",
"accountId": "86928401983529626822",
"size": 38,
"md5": "3d6c7634a85436eee06d43415012855",
"region":"us-east-1",
"metadata": {
"age": "25"
},
"tags": {
"color": "yellow"
}
}
JSON 文件中包含的欄位
文件名稱包含儲存桶名稱、物件名稱和版本 ID(如果有)。
- 儲存桶和物件資訊
-
bucket:儲存桶的名稱key:物件鍵名versionID:物件版本,適用於版本化儲存桶中的物件region:儲存桶區域,例如us-east-1 - 系統中繼資料
-
size:物件大小(以位元組為單位),以 HTTP 用戶端可見。md5:Object hash - 使用者中繼資料
-
metadata:物件的所有使用者中繼資料,以鍵值對的形式呈現key:value - 標籤
-
tags:為該物件定義的所有物件標籤,以鍵值對的形式呈現key:value
如何在 Elasticsearch 中檢視結果
對於標籤和使用者中繼資料,StorageGRID 會將日期和數字作為字串或 S3 事件通知傳遞給 Elasticsearch。若要設定 Elasticsearch 將這些字串解譯為日期或數字,請依照 Elasticsearch 的動態欄位對應和日期格式對應說明進行操作。在設定搜尋整合服務之前,請在索引上啟用動態欄位對應。文件建立索引後,您將無法在索引中編輯文件的欄位類型。