INTEGRITY Документация

Обновление Rate Limiting (предыдущей версии)

Cloudflare обновил все правила rate limiting, созданные в предыдущая версия в новая версия правил rate limiting.

Панель управления Cloudflare теперь показывает все ваши правила rate limiting единым списком.

Основные различия

Подробнее о различиях между старыми и новыми правилами rate limiting см. наша запись в блоге.

Важные замечания об обновлении


Важные изменения в панели управления

Если у вас был доступ к предыдущей версии Cloudflare Rate Limiting, теперь все правила rate limiting находятся в одном списке в Security > WAF > Правила rate limiting. Правила rate limiting, созданные в предыдущей версии, помечены тегом Previous version в панели управления Cloudflare.

Интерфейс правил rate limiting с двумя правилами, созданными в предыдущей версии.

Если вы используете новую панель управления безопасностью приложений, только правила rate limiting, обновлённые до новой версии, будут показаны в Security > Правила безопасности.

Если вы отредактируете правило с этим тегом в панели управления, вы больше не сможете изменять его через API и ресурс Terraform предыдущей версии правил rate limiting. В этом случае придётся начать использовать Rulesets API или cloudflare_ruleset ресурс Terraform для этой цели. Подробнее см. Значимые изменения для пользователей API и Значимые изменения для пользователей Terraform для получения дополнительной информации.

Значимые изменения для пользователей API

Предыдущий Rate Limiting API считается устаревшим. API больше не поддерживается с 2025-06-15. Вы должны обновить любую автоматизацию, основанную на предыдущий Rate Limiting API в Rulesets API , чтобы избежать проблем.

Новые правила rate limiting основаны на Ruleset Engine. Чтобы настроить эти правила rate limiting через API, необходимо использовать Rulesets API. Поскольку правила rate limiting, созданные в предыдущей версии, были обновлены до новой версии, этот API также вернёт такие правила, созданные в новой версии.

Rulesets API — единственный API, позволяющий создавать, редактировать и удалять любое правило rate limiting независимо от версии реализации, в которой правило было создано. предыдущий Rate Limiting API будет работать только с правилами rate limiting, созданными в предыдущей версии, которые вы не редактировали в панели управления и не изменяли через новый API/ресурс Terraform после их обновления до новой версии.

До даты вывода API из эксплуатации вы можете использовать предыдущий Rate Limiting API для создания, изменения и удаления правил rate limiting, созданных в предыдущей версии (которые Cloudflare обновил до новой версии). Однако если вы отредактируете правило, созданное в предыдущей версии, через Rulesets API или измените такое правило в панели управления Cloudflare — включая изменение порядка правил, — вы больше не сможете управлять этим правилом (обновлённым с предыдущей версии и затем изменённым через Rulesets API) с помощью старых операций API. В этом случае придётся полностью перейти на Rulesets API для управления этим конкретным правилом.

Значимые изменения для пользователей Terraform

cloudflare_rate_limit (ресурс Terraform) устарел. Ресурс больше не поддерживается с 2025-06-15. Вы должны вручную обновить конфигурацию rate limiting в Terraform с cloudflare_rate_limit (ресурсы) в cloudflare_ruleset (ресурсы), чтобы избежать проблем.

Новые правила rate limiting основаны на Ruleset Engine. Чтобы настроить эти правила rate limiting в Terraform, вы должны использовать cloudflare_ruleset ресурс Terraform.

cloudflare_ruleset — единственный ресурс Terraform, позволяющий создавать, изменять и удалять любое правило rate limiting независимо от версии реализации, в которой оно создано. cloudflare_rate_limit (ресурс Terraform) будет работать только с правилами rate limiting, созданными в предыдущей версии, которые вы не редактировали в дашборде и не изменяли через новый API или новый ресурс Terraform после их обновления до новой версии.

До даты вывода из эксплуатации cloudflare_rate_limit (ресурс Terraform), вы можете использовать этот ресурс для создания, редактирования и удаления правил rate limiting, созданных в предыдущей версии (которые Cloudflare обновил до новой версии). Однако если вы начнёте использовать cloudflare_ruleset (ресурс Terraform) для управления правилом, созданным в предыдущей версии, или отредактируете такое правило в панели управления Cloudflare — в том числе изменив порядок правил, — вы больше не сможете управлять этим правилом (обновлённым с предыдущей версии и затем изменённым через новый ресурс) с помощью старого ресурса Terraform. В этом случае вам придётся полностью перейти на cloudflare_ruleset Terraform для управления этим конкретным правилом.

См. документацию Terraform по примеры настройки новых правил rate limiting с помощью Terraform.

Замена конфигурации с помощью cf-terraforming

Вы можете использовать cf-terraforming инструмент, чтобы сгенерировать новую конфигурацию Terraform для правил rate limiting, созданных в предыдущей версии. Затем вы можете импортировать новые ресурсы в состояние Terraform.

Рекомендуемые шаги замены старой конфигурации rate limiting в Terraform на новую конфигурацию на основе наборов правил приведены ниже.

  1. Выполните следующую команду, чтобы сгенерировать все конфигурации наборов правил для зоны:

    cf-terraforming generate --zone <ZONE_ID> --resource-type "cloudflare_ruleset"
    resource "cloudflare_ruleset" "terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31" {
      kind    = "zone"
      name    = "default"
      phase   = "http_ratelimit"
      zone_id = "<ZONE_ID>"
      rules {
        # (...)
      }
      # (...)
    }
    # (...)
  2. Предыдущая команда может вернуть дополнительные конфигурации наборов правил для других продуктов Cloudflare, также основанных на Ruleset Engine. Поскольку вы обновляете конфигурацию правил rate limiting, оставьте только ресурс Terraform для http_ratelimit фазы и сохраните его в .tf (файл конфигурации). Полное имя ресурса понадобится вам на следующем шаге.

  3. Импортируйте cloudflare_ruleset ресурс, определённый вами ранее, в состояние Terraform с помощью terraform import . Например:

    terraform import cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31 zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Importing from ID "zone/<ZONE_ID>/3c0b456bc2aa443089c5f40f45f51b31"...
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Import prepared!
      Prepared cloudflare_ruleset for import
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    
    Import successful!
    
    The resources that were imported are shown above. These resources are now in
    your Terraform state and will henceforth be managed by Terraform.
  4. Выполните terraform plan , чтобы убедиться, что Terraform теперь проверяет состояние новых cloudflare_ruleset ресурс в дополнение к другим существующим ресурсам, уже управляемым Terraform. Например:

    terraform plan
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    cloudflare_rate_limit.my_rate_limiting_rules: Refreshing state... [id=0580eb5d92e344ddb2374979f74c3ddf]
    [...]
  5. Удалите из состояния всё, что относится к правилам rate limiting, настроенным через старый cloudflare_rate_limit (ресурс) из состояния Terraform:

    1. Выполните следующую команду, чтобы найти все ресурсы, относящиеся к правилам rate limiting (предыдущей версии):

      terraform state list | grep -E '^cloudflare_rate_limit\.'
      cloudflare_rate_limit.my_rate_limiting_rules
    2. Запустите terraform state rm ... в режиме dry-run, чтобы понять последствия удаления этих ресурсов без внесения каких-либо изменений:

      terraform state rm -dry-run cloudflare_rate_limit.my_rate_limiting_rules
      Would remove cloudflare_rate_limit.my_rate_limiting_rules
    3. Если влияние выглядит корректно, выполните ту же команду без -dry-run, чтобы действительно удалить ресурсы из состояния Terraform:

      terraform state rm cloudflare_rate_limit.my_rate_limiting_rules
      Removed cloudflare_rate_limit.my_rate_limiting_rules
      Successfully removed 1 resource instance(s).
  6. После удаления cloudflare_rate_limit (ресурсы) из состояния Terraform, удалите все эти ресурсы из .tf (файлы конфигурации).

  7. Выполните terraform plan , чтобы убедиться, что удалённые из файлов конфигурации ресурсы больше не отображаются. Ожидающих изменений быть не должно.

    terraform plan
    cloudflare_ruleset.terraform_managed_resource_3c0b456bc2aa443089c5f40f45f51b31: Refreshing state... [id=3c0b456bc2aa443089c5f40f45f51b31]
    [...]
    
    No changes. Your infrastructure matches the configuration.
    
    Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.

Подробности об импорте ресурсов Cloudflare в Terraform и использовании cf-terraforming , обратитесь к следующим ресурсам:

Дополнительные ресурсы

Дополнительную информацию о новой реализации rate limiting, включая доступные функции в каждом тарифе Cloudflare, см. в Правила rate limiting.

Cloudflare также предлагает версию Advanced Rate Limiting, доступную клиентам Enterprise. Дополнительную информацию см. в Представляем Advanced Rate Limiting (запись в блоге).

Чтобы узнать больше о возможностях нового rate limiting, см. Лучшие практики rate limiting.