検索統合サービスを構成する
バケットの検索統合を有効にするには、検索統合 XML を作成し、テナント マネージャを使用してその XML をバケットに適用します。
-
StorageGRID管理者によって、テナント アカウントに対してプラットフォーム サービスが有効化されました。
-
インデックスを作成する内容を含む S3 バケットはすでに作成されています。
-
検索統合サービスの宛先として使用するエンドポイントが既に存在し、その URN を所有していること。
-
あなたは、"すべてのバケットまたはルートアクセス権限を管理する" 。これらの権限は、テナント マネージャを使用してバケットを構成するときに、グループまたはバケット ポリシーの権限設定をオーバーライドします。
ソース バケットの検索統合サービスを構成すると、オブジェクトを作成するか、オブジェクトのメタデータまたはタグを更新すると、オブジェクトのメタデータが宛先エンドポイントに送信されます。
すでにオブジェクトが含まれているバケットに対して検索統合サービスを有効にすると、既存のオブジェクトのメタデータ通知は自動的に送信されません。これらの既存のオブジェクトを更新して、そのメタデータが宛先検索インデックスに追加されるようにします。
-
バケットの検索統合を有効にします。
-
テキスト エディターを使用して、検索統合を有効にするために必要なメタデータ通知 XML を作成します。
-
XML を構成するときは、検索統合エンドポイントの URN を宛先として使用します。
オブジェクトは、オブジェクト名のプレフィックスでフィルタリングできます。たとえば、プレフィックスを持つオブジェクトのメタデータを送信できます。
images
1つの宛先に、そしてプレフィックスを持つオブジェクトのメタデータ `videos`別の人に。プレフィックスが重複する構成は無効であり、送信時に拒否されます。たとえば、プレフィックスを持つオブジェクトに対して1つのルールを含む構成では、 `test`接頭辞を持つオブジェクトに対する2番目のルール `test2`は許可されません。必要に応じて、メタデータ構成XMLの例 。
<MetadataNotificationConfiguration> <Rule> <Status>Enabled</Status> <Prefix></Prefix> <Destination> <Urn>/Urn> </Destination> </Rule> </MetadataNotificationConfiguration>
メタデータ通知構成 XML の要素:
Name 説明 必須 メタデータ通知構成
メタデータ通知のオブジェクトと宛先を指定するために使用されるルールのコンテナ タグ。
1 つ以上の Rule 要素が含まれます。
はい
Rule
指定されたインデックスにメタデータを追加するオブジェクトを識別するルールのコンテナ タグ。
プレフィックスが重複するルールは拒否されます。
MetadataNotificationConfiguration 要素に含まれます。
はい
ID
ルールの一意の識別子。
ルール要素に含まれます。
いいえ
ステータス
ステータスは「有効」または「無効」になります。無効にされているルールに対してはアクションは実行されません。
ルール要素に含まれます。
はい
接頭辞
プレフィックスに一致するオブジェクトはルールの影響を受け、そのメタデータは指定された宛先に送信されます。
すべてのオブジェクトを一致させるには、空のプレフィックスを指定します。
ルール要素に含まれます。
はい
デスティネーション
ルールの宛先のコンテナ タグ。
ルール要素に含まれます。
はい
壷
オブジェクト メタデータが送信される宛先の URN。次のプロパティを持つStorageGRIDエンドポイントの URN である必要があります。
-
`es`3 番目の要素である必要があります。
-
URNは、メタデータが格納されているインデックスとタイプで終わる必要があります。形式は次のようになります。
domain-name/myindex/mytype
。
エンドポイントは、テナント マネージャーまたはテナント管理 API を使用して構成されます。それらは次の形式をとります:
-
arn:aws:es:region:account-ID:domain/mydomain/myindex/mytype
-
urn:mysite:es:::mydomain/myindex/mytype
構成 XML を送信する前にエンドポイントを構成する必要があります。そうしないと、404 エラーが発生して構成が失敗します。
URN は Destination 要素に含まれます。
はい
-
-
テナント マネージャーで、ストレージ (S3) > バケット を選択します。
-
ソースバケットの名前を選択します。
バケットの詳細ページが表示されます。
-
プラットフォームサービス > *検索統合*を選択します
-
*検索統合を有効にする*チェックボックスを選択します。
-
メタデータ通知構成をテキスト ボックスに貼り付け、[変更を保存] を選択します。
プラットフォーム サービスは、Grid Manager または Management API を使用して、 StorageGRID管理者がテナント アカウントごとに有効にする必要があります。構成 XML を保存するときにエラーが発生した場合は、 StorageGRID管理者に問い合わせてください。 -
検索統合サービスが正しく構成されていることを確認します。
-
構成 XML で指定されているメタデータ通知をトリガーするための要件を満たすオブジェクトをソース バケットに追加します。
前述の例では、バケットに追加されたすべてのオブジェクトによってメタデータ通知がトリガーされます。
-
オブジェクトのメタデータとタグを含む JSON ドキュメントがエンドポイントで指定された検索インデックスに追加されたことを確認します。
-
必要に応じて、次のいずれかの方法を使用してバケットの検索統合を無効にすることができます。
-
ストレージ (S3) > バケット を選択し、検索統合を有効にする チェックボックスをオフにします。
-
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>
例: 2つのルールを使用したメタデータ通知構成
この例では、プレフィックスに一致するオブジェクトのオブジェクトメタデータ `/images`一つの宛先に送信される一方、プレフィックスに一致するオブジェクトのオブジェクトメタデータは `/videos`2 番目の宛先に送信されます。
<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 ドキュメントが生成され、宛先エンドポイントに送信されます。
この例では、キーを持つオブジェクトが生成された場合に生成されるJSONの例を示します。 SGWS/Tagging.txt`バケットに作成されます `test
。その `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
: オブジェクトハッシュ - ユーザーメタデータ
-
metadata
: オブジェクトのすべてのユーザーメタデータ(キーと値のペア)key:value
- タグ
-
tags
: オブジェクトに定義されているすべてのオブジェクトタグ(キーと値のペア)key:value
Elasticsearchで結果を表示する方法
タグとユーザー メタデータの場合、 StorageGRID は日付と数値を文字列または S3 イベント通知として Elasticsearch に渡します。これらの文字列を日付または数値として解釈するように Elasticsearch を構成するには、動的フィールド マッピングと日付形式のマッピングに関する Elasticsearch の指示に従います。検索統合サービスを構成する前に、インデックスで動的フィールド マッピングを有効にします。ドキュメントのインデックスが作成された後は、インデックス内のドキュメントのフィールド タイプを編集することはできません。