次の方法で共有


Go Gin Web アプリケーションでスケジュールに従って機能を有効にする

このガイドでは、時間枠フィルターを使用して、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 機能フラグが時間枠フィルターによって無効化されているためです。

[ベータ] メニューが非表示になっている Gin Web アプリのスクリーンショット。

開始時刻が過ぎたら、ブラウザーを数回更新します。 Beta メニュー項目が表示されるようになります。 これは、Beta 機能フラグが時間枠フィルターによって有効化されたためです。

[Beta]\(ベータ\) メニューが表示された Gin Web アプリのスクリーンショット。

Next steps

機能フィルターについてさらに学ぶには、次のドキュメントに進んでください。

Go 機能管理ライブラリの完全な機能ランダウンについては、次のドキュメントに進んでください。