说明
启用 metadata 时,任何实现 metadata.Provider 接口 的插件将在每次 DNS 查询中于该查询流程的开始时被调用,以便向上下文中添加其自身的元数据。
收集的元数据将通过 ServeDNS 函数中提供的 Context 参数对所有插件可用。程序包(代码)文档提供了有关如何检查和检索插件可能感兴趣的元数据的示例。
元数据通过在上下文中设置带有值的标签来添加。这些标签应命名为 plugin/NAME
,其中 NAME 是描述性内容。metadataplugin 强制的唯一严格要求是这些标签包含一个反斜杠。请参阅 metadata.SetValueFunc
的文档。
存储的值是一个字符串。空字符串表示“无元数据”。有关如何检索此信息,请参阅 metadata.ValueFunc
的文档。
语法
metadata [ZONES... ]
- ZONES 应调用元数据。
插件
愿意为其他插件提供元数据信息的每个插件都需要实现 metadataprovider
接口。它将由元数据调用,并从上下文中收集所有插件的信息。
注意:此方法应快速有效,因为它在每个请求时都会被调用。
示例
rewrite 插件使用元数据重写请求。
另请参阅
Provider 接口 和 程序包级别 文档。