Поделиться через


Активация функций по расписанию в веб-приложении на фреймворке Go Gin

В этом руководстве вы используете фильтр интервала времени, чтобы включить функцию в расписании для веб-приложения Go Gin.

Пример, используемый в этой статье, основан на веб-приложении Go Gin, представленном в кратком руководстве по управлению функциями. Прежде чем продолжить, выполните краткое руководство по созданию веб-приложения Go Gin с флагом бета-функции . После завершения необходимо добавить фильтр периода времени в флаг бета-функции в хранилище конфигурации приложений.

Prerequisites

Использование фильтра временных окон

Вы добавили фильтр периода времени для флага функции бета-версии в предварительных требованиях. Затем вы будете использовать флажок фичи с фильтром временного окна в веб-приложении Go Gin.

При создании диспетчера компонентов встроенные фильтры компонентов автоматически добавляются в коллекцию фильтров компонентов.

Существующий код из краткого руководства уже обрабатывает фильтры по временным интервалам с помощью менеджера функций.

// 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()
    }
}

Фильтр временных окон в действии

Повторно запустите приложение. Если текущее время превышает время начала, заданное для фильтра временных окон, на панели инструментов не появится элемент меню бета-версии . Это связано с тем, что флаг бета-функции отключен фильтром временных окон.

Снимок экрана: веб-приложение Gin с скрытым меню бета-версии.

После того как время начала прошло, обновите браузер несколько раз. Вы заметите, что теперь появится элемент меню "Бета-версия ". Это связано с тем, что флаг бета-функции теперь включен фильтром временных окон.

Снимок экрана: веб-приложение Gin с меню бета-версии.

Next steps

Дополнительные сведения о фильтрах функций см. в следующих документах.

Для полного обзора функций библиотеки управления Go перейдите к указанному документу.