Aktivieren Sie den Suchintegrationsdienst in StorageGRID mit der PUT Bucket-Metadatenbenachrichtigungs-Konfigurationsanfrage
Die PUT-Anfrage zur Konfiguration der Bucket-Metadatenbenachrichtigung ermöglicht die Aktivierung des Suchintegrationsdienstes für einzelne Buckets. Die im Anfragetext angegebene XML-Konfiguration für die Metadatenbenachrichtigung legt die Objekte fest, deren Metadaten an den Zielsuchindex gesendet werden.
Sie müssen über die Berechtigung s3:PutBucketMetadataNotification für einen Bucket verfügen oder Kontoinhaber (Root) sein, um diesen Vorgang abzuschließen.
Anfrage
Die Anfrage muss die Metadatenbenachrichtigungskonfiguration im Anfragetext enthalten. Jede Metadatenbenachrichtigungskonfiguration umfasst eine oder mehrere Regeln. Jede Regel legt die Objekte fest, auf die sie angewendet wird, sowie das Ziel, an das StorageGRID die Objektmetadaten senden soll.
Objekte können anhand des Präfixes ihres Objektnamens gefiltert werden. Beispielsweise könnten Metadaten für Objekte mit dem Präfix `/images`an ein Ziel und Objekte mit dem Präfix `/videos`an ein anderes Ziel gesendet werden.
Konfigurationen mit sich überschneidenden Präfixen sind ungültig und werden bei der Übermittlung abgelehnt. Beispielsweise wäre eine Konfiguration, die eine Regel für Objekte mit dem Präfix test und eine zweite Regel für Objekte mit dem Präfix test2 enthält, nicht zulässig.
Ziele müssen mithilfe der URN eines StorageGRID Endpunkts angegeben werden. Der Endpunkt muss zum Zeitpunkt der Übermittlung der Metadatenbenachrichtigungskonfiguration vorhanden sein, andernfalls schlägt die Anfrage fehl als 400 Bad Request. Die Fehlermeldung lautet: Unable to save the metadata notification (search) policy. The specified endpoint URN does not exist: URN.
<MetadataNotificationConfiguration>
<Rule>
<ID>Rule-1</ID>
<Status>rule-status</Status>
<Prefix>key-prefix</Prefix>
<Destination>
<Urn>arn:aws:es:region:account-ID:domain/mydomain/myindex/mytype</Urn>
</Destination>
</Rule>
<Rule>
<ID>Rule-2</ID>
...
</Rule>
...
</MetadataNotificationConfiguration>
Die Tabelle beschreibt die Elemente in der XML-Konfiguration für Metadatenbenachrichtigungen.
| Name | Beschreibung | Erforderlich |
|---|---|---|
MetadataNotificationConfiguration |
Container-Tag für Regeln, die zur Angabe der Objekte und des Ziels für Metadatenbenachrichtigungen verwendet werden. Enthält ein oder mehrere Regelelemente. |
Ja |
Regel |
Container-Tag für eine Regel, die die Objekte identifiziert, deren Metadaten zu einem bestimmten Index hinzugefügt werden sollen. Regeln mit sich überschneidenden Präfixen werden abgelehnt. Im MetadataNotificationConfiguration-Element enthalten. |
Ja |
ID |
Eindeutige Kennung für die Regel. Im Regelelement enthalten. |
Nein |
Status |
Der Status kann „Aktiviert“ oder „Deaktiviert“ sein. Für deaktivierte Regeln wird keine Aktion durchgeführt. Im Regelelement enthalten. |
Ja |
Präfix |
Objekte, die dem Präfix entsprechen, sind von der Regel betroffen und ihre Metadaten werden an das angegebene Ziel gesendet. Um alle Objekte abzugleichen, ein leeres Präfix angeben. Im Regelelement enthalten. |
Ja |
Ziel |
Container-Tag für das Ziel einer Regel. Im Regelelement enthalten. |
Ja |
Urne |
URN des Ziels, an das Objektmetadaten gesendet werden. Muss die URN eines StorageGRID Endpunkts mit den folgenden Eigenschaften sein:
Endpunkte werden mithilfe des Tenant Managers oder der Tenant Management API konfiguriert. Sie haben folgendes Format:
Der Endpunkt muss konfiguriert sein, bevor die Konfigurations-XML übermittelt wird, sonst schlägt die Konfiguration mit einem 404-Fehler fehl. Urn ist im Element „Ziel“ enthalten. |
Ja |
Anforderungsbeispiele
Dieses Beispiel zeigt die Aktivierung der Suchintegration für einen Bucket. In diesem Beispiel werden die Objektmetadaten aller Objekte an dasselbe Ziel gesendet.
PUT /test1?x-ntap-sg-metadata-notification HTTP/1.1
Date: date
Authorization: authorization string
Host: host
<MetadataNotificationConfiguration>
<Rule>
<ID>Rule-1</ID>
<Status>Enabled</Status>
<Prefix></Prefix>
<Destination>
<Urn>urn:sgws:es:::sgws-notifications/test1/all</Urn>
</Destination>
</Rule>
</MetadataNotificationConfiguration>
In diesem Beispiel werden Objektmetadaten für Objekte, die dem Präfix /images entsprechen, an ein Ziel gesendet, während Objektmetadaten für Objekte, die dem Präfix /videos entsprechen, an ein zweites Ziel gesendet werden.
PUT /graphics?x-ntap-sg-metadata-notification HTTP/1.1
Date: date
Authorization: authorization string
Host: host
<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>
Vom Suchintegrationsdienst generiertes JSON
Wenn der Suchintegrationsdienst für einen Bucket aktiviert ist, wird jedes Mal, wenn Objektmetadaten oder Tags hinzugefügt, aktualisiert oder gelöscht werden, ein JSON-Dokument generiert und an den Zielendpunkt gesendet.
Dieses Beispiel zeigt ein Beispiel für das JSON, das generiert werden könnte, wenn ein Objekt mit dem Schlüssel SGWS/Tagging.txt in einem Bucket namens test erstellt wird. Der test Bucket ist nicht versioniert, daher ist das versionId Tag leer.
{
"bucket": "test",
"key": "SGWS/Tagging.txt",
"versionId": "",
"accountId": "86928401983529626822",
"size": 38,
"md5": "3d6c7634a85436eee06d43415012855",
"region":"us-east-1",
"metadata": {
"age": "25"
},
"tags": {
"color": "yellow"
}
}
In Metadatenbenachrichtigungen enthaltene Objektmetadaten
Die Tabelle listet alle Felder auf, die im JSON-Dokument enthalten sind, das an den Zielendpunkt gesendet wird, wenn die Suchintegration aktiviert ist.
Der Dokumentname enthält den Bucket-Namen, den Objektnamen und die Versions-ID, falls vorhanden.
| Typ | Artikelname | Beschreibung |
|---|---|---|
Bucket und Objektinformationen |
Bucket |
Name des Buckets |
Bucket und Objektinformationen |
Schlüssel |
Objektschlüsselname |
Bucket und Objektinformationen |
versionID |
Objektversion, für Objekte in versionierten Buckets |
Bucket und Objektinformationen |
Region |
Bucket Region, zum Beispiel |
Systemmetadaten |
Größe |
Objektgröße (in Bytes) aus Sicht eines HTTP-Clients |
Systemmetadaten |
md5 |
Objekt-Hashwert |
Benutzermetadaten |
Metadaten
|
Alle Benutzermetadaten für das Objekt als Schlüssel-Wert-Paare |
Tags |
Tags
|
Alle für das Objekt definierten Objekt-Tags als Schlüssel-Wert-Paare |
|
|
Für Tags und Benutzermetadaten übergibt StorageGRID Datums- und Zahlenwerte als Zeichenketten oder als S3-Ereignisbenachrichtigungen an Elasticsearch. Damit Elasticsearch diese Zeichenketten als Datums- oder Zahlenwerte interpretiert, sind die Anweisungen von Elasticsearch zur dynamischen Feldzuordnung und zur Zuordnung von Datumsformaten zu beachten. Die dynamischen Feldzuordnungen müssen im Index aktiviert sein, bevor der Suchintegrationsdienst konfiguriert wird. Nachdem ein Dokument indiziert wurde, können die Feldtypen des Dokuments im Index nicht mehr bearbeitet werden. |