このガイドでは、時間枠フィルターを使用して、Go Gin Web アプリケーションのスケジュールに従って機能を有効にします。
この記事で使用する例は、機能管理 クイック スタートで紹介した Go Gin Web アプリケーションに基づいています。 先に進む前に、クイック スタートを完了して、 ベータ 機能フラグを持つ Go Gin Web アプリケーションを作成します。 完了したら、App Configuration ストア内の Beta 機能フラグに時間枠フィルターを追加する必要があります。
Prerequisites
時間枠フィルターを使用する
前提条件に ベータ 機能フラグの時間枠フィルターを追加しました。 次に、Go Gin Web アプリケーションの時間枠フィルターで機能フラグを使用します。
機能マネージャーを作成すると、組み込みの機能フィルターがその機能フィルター コレクションに自動的に追加されます。
クイック スタートの既存のコードでは、機能マネージャーを介して時間枠フィルターが既に処理されています。
// Create feature flag provider
featureFlagProvider, err := azappconfig.NewFeatureFlagProvider(appConfig)
if err != nil {
log.Fatalf("Error creating feature flag provider: %v", err)
}
// Create feature manager (supports built-in filters including TimeWindowFilter)
featureManager, err := featuremanagement.NewFeatureManager(featureFlagProvider, nil)
if err != nil {
log.Fatalf("Error creating feature manager: %v", err)
}
ミドルウェアの機能評価では、時間枠フィルターが考慮されるようになりました。
func (app *WebApp) featureMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
// Check if Beta feature is enabled (TimeWindowFilter is automatically evaluated)
betaEnabled, err := app.featureManager.IsEnabled("Beta")
if err != nil {
log.Printf("Error checking Beta feature: %v", err)
}
// Store feature flag status for use in templates
c.Set("betaEnabled", betaEnabled)
c.Next()
}
}
時間枠フィルターの動作
アプリケーションを再起動します。 現在の時刻が時間枠フィルターに設定された開始時刻より前の場合、Beta メニュー項目はツール バーに表示されません。 これは、Beta 機能フラグが時間枠フィルターによって無効化されているためです。
開始時刻が過ぎたら、ブラウザーを数回更新します。 Beta メニュー項目が表示されるようになります。 これは、Beta 機能フラグが時間枠フィルターによって有効化されたためです。
Next steps
機能フィルターについてさらに学ぶには、次のドキュメントに進んでください。
Go 機能管理ライブラリの完全な機能ランダウンについては、次のドキュメントに進んでください。