説明
metadata を有効にすることで、metadata.Provider インターフェイス を実装するプラグインは、DNS クエリの処理開始時に各 DNS クエリに対して呼び出され、自身のメタデータをコンテキストに追加します。
収集したメタデータは、ServeDNS ファンクションで提供されたコンテキストパラメーターを介して、すべてのプラグインで利用できます。パッケージ(コード)ドキュメントには、プラグインに興味がある可能性のあるメタデータを検査および取得する方法の例が記載されています。
メタデータは、コンテキストに値を持つラベルを設定することで追加されます。これらのラベルには、NAME が説明的な名称である plugin/NAME
という名前をつける必要があります。metadata プラグインで強制する唯一の厳しい要件は、ラベルにスラッシュが含まれることです。metadata.SetValueFunc
のドキュメントを参照してください。
格納される値は文字列です。空の文字列は「メタデータなし」を示します。これの取得方法については、metadata.ValueFunc
のドキュメントを参照してください。
構文
metadata [ZONES... ]
- ZONES にメタデータを呼び出す必要があります。
プラグイン
metadata.Provider
インターフェイスは、他のプラグインにメタデータ情報を提供するプラグインごとに実装する必要があります。metadata によって呼び出され、コンテキストにあるすべてのプラグインから情報を収集します。
注: このメソッドはリクエストごとに呼び出されるため、高速に動作する必要があります。
例
rewrite プラグインは、メタデータを使用してリクエストを書き換えます。
関連項目
Provider インターフェイス と パッケージレベル のドキュメント。