Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта с помощью функции
    • Подключение к управляемым БД из функции
        • Посмотреть настройки масштабирования
        • Добавить настройки масштабирования
        • Удалить настройки масштабирования
      • Добавить переменные окружения
      • Указать облачную сеть
      • Передать секреты Yandex Lockbox
      • Выделить память для директории /tmp
      • Посмотреть графики мониторинга
      • Миграция в зону ru-central1-d
      • Удалить версию функции
      • Удалить функцию
    • Просмотр операций с ресурсами сервиса
  • Инструменты
  • Правила тарификации
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Управление функцией
  3. Масштабировать функцию
  4. Добавить настройки масштабирования

Добавить настройки масштабирования функции

Статья создана
Yandex Cloud
Улучшена
kvendingoldo
Обновлена 6 марта 2025 г.

Вы можете задать:

  • zone_instances_limit — количество экземпляров функции в зоне доступности;
  • zone_requests_limit — количество одновременно выполняемых вызовов функции в зоне доступности;
  • provisioned_instances_count — количество подготовленных экземпляров;
  • concurrency — максимальное количество вызовов, одновременно обрабатываемых одним экземпляром функции. Доступно не для всех сред выполнения. Подробнее см. Одновременные вызовы экземпляра функции.

Время простоя подготовленных экземпляров и выполнения в них функции тарифицируется отдельно.

Для разных версий функции можно задать свои настройки масштабирования, используя теги. Настройки масштабирования будут действовать для той версии функции, которой присвоен указанный тег. Версии функции масштабируются независимо друг от друга.

Настройки масштабирования не могут превышать квоты.

Примечание

Настройки масштабирования применяются в течение 5 минут после их задания.

Консоль управления
CLI
Terraform
API
Yandex Cloud Toolkit
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию.
  4. Чтобы задать:
    • любую настройку масштабирования, кроме количества вызовов, одновременно обрабатываемых одним экземпляром функции (concurrency):
      1. В блоке История версий наведите курсор на тег версии функции (например, $latest), для которой хотите добавить настройки масштабирования.
      2. Во всплывающем окне нажмите кнопку Добавить.
      3. В открывшемся окне укажите:
        • zone_instances_limit — количество экземпляров функции в зоне доступности.
        • zone_requests_limit — количество одновременно выполняемых вызовов функции в зоне доступности.
        • provisioned_instances_count — количество подготовленных экземпляров.
      4. Нажмите кнопку Сохранить.
    • количество вызовов, одновременно обрабатываемых одним экземпляром функции (concurrency):
      1. Перейдите на вкладку Редактор.
      2. В блоке Дополнительные настройки в разделе Одновременные вызовы экземпляра функции активируйте переключатель Включить и укажите количество одновременных вызовов экземпляра функции.
      3. Нажмите кнопку Сохранить изменения.

Чтобы задать:

  • любую настройку масштабирования, кроме количества вызовов, одновременно обрабатываемых одним экземпляром функции (concurrency), выполните команду:

    yc serverless function set-scaling-policy \
      --id=<идентификатор_функции> \
      --tag=\$latest \
      --zone-instances-limit=1 \
      --zone-requests-limit=2 \
      --provisioned-instances-count=3
    

    Где:

    • --id — идентификатор функции. Чтобы узнать его, получите список функций.
    • --tag — тег версии функции.
    • --zone-instances-limit — количество экземпляров функции.
    • --zone-requests-limit — количество выполняемых вызовов.
    • --provisioned-instances-count — количество подготовленных экземпляров.

    Результат:

    function_id: d4eokpuol55h********
    tag: $latest
    zone_instances_limit: "1"
    zone_requests_limit: "2"
    provisioned_instances_count: "3"
    
  • количество вызовов, одновременно обрабатываемых одним экземпляром функции (concurrency), выполните команду:

    yc serverless function version create \
    --function-name=<имя_функции> \
    --runtime <среда_выполнения> \
    --entrypoint <точка_входа> \
    --memory 128m \
    --concurrency 2 \
    --execution-timeout 3s \
    --source-path <путь_к_ZIP-архиву>
    

    Где:

    • --function-name — имя функции, версию которой вы хотите создать.
    • --runtime — среда выполнения функции.
    • --entrypoint — точка входа, указывается в формате <имя_файла_без_расширения>.<имя_обработчика>.
    • --memory — объем RAM.
    • --concurrency — максимальное количество вызовов, одновременно обрабатываемых одним экземпляром функции.
    • --execution-timeout — максимальное время выполнения функции до таймаута.
    • --source-path — ZIP-архив с кодом функции и необходимыми зависимостями.

    Результат:

    done (1s)
    id: d4evvn8obisa********
    function_id: d4elpv8pft63********
    created_at: "2020-08-01T19:09:19.531Z"
    runtime: nodejs18
    entrypoint: index.handler
    resources:
    memory: "134217728"
    execution_timeout: 3s
    image_size: "4096"
    status: ACTIVE
    tags:
    - $latest
    log_options:
    folder_id: b1g681qpemb4********
    concurrency: "2"
    

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы добавить настройки масштабирования:

  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

    • yandex_function — описание создаваемой функции и ее исходный код.
      • name — имя функции.
      • user_hash — произвольная строка, определяющая версию функции. При изменениях функции необходимо менять и эту строку. Функция обновится при изменении этой строки.
      • runtime — среда выполнения функции.
      • entrypoint — точка входа, указывается в формате <имя_файла_без_расширения>.<имя_обработчика>.
      • memory — объем памяти в мегабайтах, отведенный для выполнения функции.
      • concurrency — максимальное количество вызовов, одновременно обрабатываемых одним экземпляром функции.
      • execution_timeout — максимальное время выполнения функции до таймаута.
      • service_account_id — идентификатор сервисного аккаунта, от имени которого будет запускаться функция.
      • content — исходный код функции.
        • content.0.zip_filename — имя ZIP-архива, содержащего исходный код функции.
    • yandex_function_scaling_policy — описание настроек масштабирования функции.
      • function_id — идентификатор функции.
      • policy — настройки масштабирования:
        • policy.0.tag — тег версии функции.
        • policy.0.zone_instances_limit — количество экземпляров функции.
        • policy.0.zone_requests_limit — количество выполняемых вызовов.

    Пример структуры конфигурационного файла:

    provider "yandex" {
        token     = "<OAuth-токен_или_статический_ключ_сервисного_аккаунта>"
        folder_id = "<идентификатор_каталога>"
        zone      = "ru-central1-a"
    }
    
    resource "yandex_function" "test-function" {
        name               = "<имя_функции>"
        user_hash          = "<хеш>"
        runtime            = "<среда_выполнения>"
        entrypoint         = "<точка_входа>"
        memory             = "128"
        concurrency        = "2"
        execution_timeout  = "10"
        service_account_id = "<идентификатор_сервисного_аккаунта>"
        content {
            zip_filename = "<путь_к_ZIP-архиву>"
        }
    }
    
    resource "yandex_function_scaling_policy" "my_scaling_policy" {
        function_id = "<идентификатор_функции>"
        policy {
            tag = "$latest"
            zone_instances_limit = 2
            zone_requests_limit  = 1
        }
    }
    

    Подробнее о параметрах ресурсов см. yandex_function и yandex_function_scaling_policy.

  2. Проверьте конфигурацию командой:

    terraform validate
    

    Если конфигурация является корректной, появится сообщение:

    Success! The configuration is valid.
    
  3. Выполните команду:

    terraform plan
    

    В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

  4. Примените изменения конфигурации:

    terraform apply
    
  5. Подтвердите изменения: введите в терминал слово yes и нажмите Enter.

Проверить добавление настроек масштабирования можно в консоли управления или с помощью команд CLI:

yc serverless function list-scaling-policies <имя_или_идентификатор_функции>

yc serverless function version get <идентификатор_версии>

Чтобы задать любую настройку масштабирования, кроме количества вызовов, обрабатываемых одним экземпляром функции (concurrency), воспользуйтесь методом REST API setScalingPolicy для ресурса Function или вызовом gRPC API FunctionService/SetScalingPolicy.

Чтобы задать количества вызовов, обрабатываемых одним экземпляром функции (concurrency), создайте версию функции с помощью метода REST API createVersion для ресурса Function или вызова gRPC API FunctionService/CreateVersion. В тело запроса добавьте поле concurrency.

Задать любую настройку масштабирования, кроме количества вызовов, обрабатываемых одним экземпляром функции (concurrency), можно с помощью плагина Yandex Cloud Toolkit для семейства IDE на платформе IntelliJ от JetBrains.

См. такжеСм. также

  • Масштабирование функции

Была ли статья полезна?

Предыдущая
Посмотреть настройки масштабирования
Следующая
Удалить настройки масштабирования
Проект Яндекса
© 2025 ООО «Яндекс.Облако»