我当前在使用 Azure 功能管理器时遇到问题。我使用以下教程向我的应用程序添加功能切换:Link
只要我们谈论手动设置的功能标志,这就可以正常工作。一旦 Azure 中的功能类型设置为“定位”,以下代码就会导致错误。
featureManager.isEnabledAsync(FeatureToggle.OUR_FEATURE_TARGETING.key).block()
具体来说,我们将在 spring 错误日志中得到No bean name 'Microsoft.Targeting' available
。尝试访问包含上述代码的端点的客户端将收到 500 错误消息 Fail fast is set and a Filter was unavailable: Microsoft.Targeting
其他信息
我正在使用 Kotlin 和 Spring。
将该功能设置为“基于时间”也会导致错误。
调用功能管理器的服务如下所示
@Autowired
private lateinit var featureManager: FeatureManager
fun feature(): String {
if (featureManager.isEnabledAsync(FeatureToggle.OUR_FEATURE_TARGETING.key).block() == true) {
return "feature A!"
} else {
return "feature B!"
}
FeatureToggle 枚举看起来像这样
enum class FeatureToggle(val key: String) {
OUR_FEATURE_TARGETING("feature")
}
最佳答案
该指南中没有详细介绍,但默认情况下内置功能标志未配置为打开,因此需要在 @Configuration
文件中构建。更多信息可以在这里找到https://microsoft.github.io/spring-cloud-azure/docs/azure-app-configuration/2.3.0/reference/html/index.html#built-in-feature-filters
关于Spring:Azure 功能管理器功能切换 Microsoft.Targeting bean 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65218566/