Activez le service d'intégration de recherche dans StorageGRID avec la requête de configuration de notification des métadonnées du compartiment PUT
La requête PUT de configuration de notification des métadonnées de compartiment permet d'activer le service d'intégration de recherche pour des compartiments individuels. Le fichier XML de configuration de notification des métadonnées fourni dans le corps de la requête spécifie les objets dont les métadonnées sont envoyées à l'index de recherche de destination.
Vous devez disposer de l'autorisation s3:PutBucketMetadataNotification pour un compartiment, ou être root du compte, pour effectuer cette opération.
Demande
La requête doit inclure la configuration de notification des métadonnées dans son corps. Chaque configuration de notification des métadonnées comprend une ou plusieurs règles. Chaque règle spécifie les objets auxquels elle s'applique et la destination où StorageGRID doit envoyer les métadonnées des objets.
Il est possible de filtrer les objets en fonction du préfixe de leur nom. Par exemple, vous pouvez envoyer les métadonnées des objets avec le préfixe /images vers une destination, et les objets avec le préfixe /videos vers une autre.
Les configurations comportant des préfixes qui se chevauchent ne sont pas valides et sont rejetées lors de leur soumission. Par exemple, une configuration incluant une règle pour les objets ayant le préfixe test et une autre règle pour les objets ayant le préfixe test2 ne serait pas autorisée.
Les destinations doivent être spécifiées à l'aide de l'URN d'un point de terminaison StorageGRID. Le point de terminaison doit exister lors de la soumission de la configuration de notification des métadonnées, sinon la requête échoue en tant que 400 Bad Request. Le message d'erreur indique : 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>
Le tableau décrit les éléments du fichier XML de configuration des notifications de métadonnées.
| Nom | Description | Obligatoire |
|---|---|---|
MetadataNotificationConfiguration |
Balise conteneur pour les règles utilisées pour spécifier les objets et la destination des notifications de métadonnées. Contient un ou plusieurs éléments de règle. |
Oui |
Règle |
Balise conteneur pour une règle qui identifie les objets dont les métadonnées doivent être ajoutées à un index spécifié. Les règles comportant des préfixes qui se chevauchent sont rejetées. Inclus dans l’élément MetadataNotificationConfiguration. |
Oui |
ID |
Identifiant unique de la règle. Inclus dans l’élément Rule. |
Non |
Statut |
Le statut peut être « Activé » ou « Désactivé ». Aucune action n'est entreprise pour les règles désactivées. Inclus dans l’élément Rule. |
Oui |
Préfixe |
Les objets correspondant au préfixe sont concernés par la règle et leurs métadonnées sont envoyées à la destination spécifiée. Pour faire correspondre tous les objets, spécifiez un préfixe vide. Inclus dans l’élément Rule. |
Oui |
Destination |
Étiquette conteneur pour la destination d'une règle. Inclus dans l’élément Rule. |
Oui |
Urn |
URN de la destination où les métadonnées de l'objet sont envoyées. Doit être l'URN d'un point de terminaison StorageGRID possédant les propriétés suivantes :
Les points de terminaison sont configurés à l'aide du Gestionnaire de locataires ou de l'API de gestion des locataires. Ils se présentent sous la forme suivante :
Le point de terminaison doit être configuré avant la soumission du fichier XML de configuration, sinon la configuration échouera avec une erreur 404. Urn est inclus dans l'élément Destination. |
Oui |
Exemples de requêtes
Cet exemple illustre l'activation de l'intégration de la recherche pour un compartiment. Dans cet exemple, les métadonnées de tous les objets sont envoyées à la même destination.
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>
Dans cet exemple, les métadonnées d'objet pour les objets qui correspondent au préfixe /images sont envoyées à une destination, tandis que les métadonnées d'objet pour les objets qui correspondent au préfixe /videos sont envoyées à une seconde destination.
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>
JSON généré par le service d'intégration de recherche
${post_edited_translations.segment}
Cet exemple montre un exemple du JSON qui pourrait être généré lorsqu'un objet avec la clé SGWS/Tagging.txt est créé dans un compartiment nommé test. Le compartiment test n'est pas versionné, la balise versionId est donc vide.
{
"bucket": "test",
"key": "SGWS/Tagging.txt",
"versionId": "",
"accountId": "86928401983529626822",
"size": 38,
"md5": "3d6c7634a85436eee06d43415012855",
"region":"us-east-1",
"metadata": {
"age": "25"
},
"tags": {
"color": "yellow"
}
}
Métadonnées d'objet incluses dans les notifications de métadonnées
Le tableau répertorie tous les champs inclus dans le document JSON qui est envoyé au point de terminaison de destination lorsque l'intégration de la recherche est activée.
Le nom du document comprend le nom du compartiment, le nom de l'objet et l'identifiant de version, le cas échéant.
| Type | Nom de l'article | Description |
|---|---|---|
Informations sur le bucket et l'objet |
bucket |
Nom du compartiment |
Informations sur le bucket et l'objet |
${post_edited_translations.segment} |
Nom de la clé de l'objet |
Informations sur le bucket et l'objet |
versionID |
Version de l'objet, pour les objets dans des compartiments versionnés |
Informations sur le bucket et l'objet |
région |
Région de compartiment, par exemple |
Métadonnées système |
taille |
${post_edited_translations.segment} |
Métadonnées système |
md5 |
${post_edited_translations.segment} |
Métadonnées utilisateur |
métadonnées
|
Toutes les métadonnées utilisateur de l'objet, sous forme de paires clé-valeur |
Étiquettes |
balises
|
Toutes les étiquettes d'objet définies pour l'objet, sous forme de paires clé-valeur |
|
|
Pour les balises et les métadonnées utilisateur, StorageGRID transmet les dates et les nombres à Elasticsearch sous forme de chaînes de caractères ou de notifications d'événements S3. Pour configurer Elasticsearch afin qu'il interprète ces chaînes comme des dates ou des nombres, suivez les instructions Elasticsearch pour le mappage dynamique des champs et le mappage des formats de date. Vous devez activer le mappage dynamique des champs sur l'index avant de configurer le service d'intégration de recherche. Après l'indexation d'un document, vous ne pouvez plus modifier les types de champs du document dans l'index. |