Habilite o serviço de integração de pesquisa no StorageGRID com a solicitação de configuração de notificação de metadados do bucket PUT
A solicitação PUT Bucket metadata notification configuration permite que você habilite o serviço de integração de pesquisa para buckets individuais. O XML de configuração de notificação de metadados que você fornece no corpo da solicitação especifica os objetos cujos metadados são enviados para o índice de pesquisa de destino.
Você precisa ter a permissão s3:PutBucketMetadataNotification para um bucket ou ser o root da conta para concluir esta operação.
Solicitação
A solicitação deve incluir a configuração de notificação de metadados no corpo da solicitação. Cada configuração de notificação de metadados inclui uma ou mais regras. Cada regra especifica os objetos aos quais se aplica e o destino para onde StorageGRID deve enviar os metadados dos objetos.
Os objetos podem ser filtrados pelo prefixo do nome do objeto. Por exemplo, você pode enviar metadados para objetos com o prefixo /images para um destino e objetos com o prefixo /videos para outro.
Configurações com prefixos sobrepostos não são válidas e são rejeitadas no momento do envio. Por exemplo, uma configuração que incluísse uma regra para objetos com o prefixo test e uma segunda regra para objetos com o prefixo test2 não seria permitida.
Os destinos devem ser especificados usando o URN de um endpoint do StorageGRID. O endpoint deve existir quando a configuração de notificação de metadados for enviada, ou a solicitação falhará como um 400 Bad Request. A mensagem de erro indica: 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>
A tabela descreve os elementos no XML de configuração da notificação de metadados.
| Nome | Descrição | Obrigatório |
|---|---|---|
MetadataNotificationConfiguration |
Tag de contêiner para regras usadas para especificar os objetos e o destino para notificações de metadados. Contém um ou mais elementos de Rule. |
Sim |
Regra |
Etiqueta de contêiner para uma regra que identifica os objetos cujos metadados devem ser adicionados a um índice específico. Regras com prefixos sobrepostos são rejeitadas. Incluído no elemento MetadataNotificationConfiguration. |
Sim |
ID |
Identificador único para a regra. Incluído no elemento Rule. |
Não |
Status |
O status pode ser 'Ativado' ou 'Desativado'. Nenhuma ação é executada para regras desativadas. Incluído no elemento Rule. |
Sim |
Prefixo |
Os objetos que correspondem ao prefixo são afetados pela regra e seus metadados são enviados para o destino especificado. Para corresponder a todos os objetos, especifique um prefixo vazio. Incluído no elemento Rule. |
Sim |
Destino |
Etiqueta de contêiner para o destino de uma regra. Incluído no elemento Rule. |
Sim |
Urna |
URN do destino para onde os metadados do objeto são enviados. Deve ser o URN de um endpoint do StorageGRID com as seguintes propriedades:
Os endpoints são configurados usando o Tenant Manager ou a Tenant Management API. Eles têm o seguinte formato:
O endpoint deve ser configurado antes do envio do XML de configuração, ou a configuração falhará com um erro 404. Urn está incluído no elemento Destination. |
Sim |
Exemplos de solicitação
Este exemplo mostra como habilitar a integração de pesquisa para um bucket. Neste exemplo, os metadados dos objetos são enviados para o mesmo destino.
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>
Neste exemplo, os metadados dos objetos que correspondem ao prefixo /images são enviados para um destino, enquanto os metadados dos objetos que correspondem ao prefixo /videos são enviados para um segundo destino.
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 gerado pelo serviço de integração de pesquisa
Ao ativar o serviço de integração de pesquisa para um bucket, um documento JSON é gerado e enviado para o endpoint de destino sempre que os metadados ou tags de um objeto são adicionados, atualizados ou excluídos.
Este exemplo mostra um exemplo do JSON que poderia ser gerado quando um objeto com a chave SGWS/Tagging.txt é criado em um bucket chamado test. O test bucket não é versionado, portanto a versionId tag está vazia.
{
"bucket": "test",
"key": "SGWS/Tagging.txt",
"versionId": "",
"accountId": "86928401983529626822",
"size": 38,
"md5": "3d6c7634a85436eee06d43415012855",
"region":"us-east-1",
"metadata": {
"age": "25"
},
"tags": {
"color": "yellow"
}
}
Metadados de objeto incluídos em notificações de metadados
A tabela lista todos os campos incluídos no documento JSON que é enviado ao endpoint de destino quando a integração de pesquisa está habilitada.
O nome do documento inclui o nome do bucket, o nome do objeto e o ID da versão, se presente.
| Tipo | Nome do item | Descrição |
|---|---|---|
Informações sobre buckets e objetos |
bucket |
Nome do bucket |
Informações sobre buckets e objetos |
chave |
Nome da chave do objeto |
Informações sobre buckets e objetos |
ID da versão |
Versão do objeto, para objetos em buckets versionados |
Informações sobre buckets e objetos |
região |
Região do bucket, por exemplo |
Metadados do sistema |
tamanho |
Tamanho do objeto (em bytes) conforme visível para um cliente HTTP |
Metadados do sistema |
md5 |
Hash do objeto |
Metadados do usuário |
metadados
|
Todos os metadados do usuário para o objeto, como pares de chave-valor |
Tags |
tags
|
Todas as tags de objeto definidas para o objeto, como pares chave-valor |
|
|
Para tags e metadados de usuário, StorageGRID envia datas e números para o Elasticsearch como strings ou como notificações de eventos do S3. Para configurar o Elasticsearch para interpretar essas strings como datas ou números, siga as instruções do Elasticsearch para mapeamento dinâmico de campos e para mapeamento de formatos de data. Você deve habilitar os mapeamentos dinâmicos de campos no índice antes de configurar o serviço de integração de pesquisa. Depois que um documento é indexado, você não pode editar os tipos de campo do documento no índice. |