Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
  • Blog
  • Pricing
  • Documentation
Yandex project
© 2025 Yandex.Cloud LLC
Yandex Cloud Functions
  • Comparison with other Yandex Cloud services
    • All guides
    • Using functions to get an IAM token for a service account
    • Connecting to managed databases from functions
        • Viewing scaling settings
        • Adding scaling settings
        • Deleting scaling settings
      • Adding environment variables
      • Specifying a cloud network
      • Transferring Yandex Lockbox secrets
      • Allocating memory for the /tmp directory
      • Viewing monitoring charts
      • Migration to the ru-central1-d availability zone
      • Deleting a function version
      • Deleting a function
    • Viewing operations with service resources
  • Tools
  • Pricing policy
  • Access management
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes
  • FAQ
  1. Step-by-step guides
  2. Managing a function
  3. Scaling a function
  4. Adding scaling settings

Adding function scaling settings

Written by
Yandex Cloud
Updated at April 22, 2025

You can set the following:

  • zone_instances_limit: Number of function instances in the availability zone.
  • zone_requests_limit: Number of concurrent function calls in the availability zone.
  • provisioned_instances_count: Number of ready-to-go instances.
  • concurrency: Maximum number of calls processed concurrently by a single function instance. Available only in certain runtime environments. For more information, see Concurrent function instance calls.

Downtime of provisioned instances and runtime of the function in them are charged additionally.

You can configure different scaling settings for different function versions using tags. Scaling settings will be valid for the function version that the specified tag is assigned to. Function versions are scaled independently of each other.

The scaling settings must be within the quotas.

Note

Scaling settings take effect within five minutes after being configured.

Management console
CLI
Terraform
API
Yandex Cloud Toolkit
  1. In the management console, select the folder containing the function.
  2. Select Cloud Functions.
  3. Select a function.
  4. To configure:
    • Any scaling setting other than the number of calls processed concurrently by a single function instance (concurrency):
      1. Under Version history, hover over the version tag (e.g., or $latest) of the function you want to add scaling settings for.
      2. In the pop-up window, click Add.
      3. In the window that opens, specify:
        • zone_instances_limit: Number of function instances in an availability zone.
        • zone_requests_limit: Number of concurrent function calls in an availability zone.
        • provisioned_instances_count: Number of provisioned instances.
      4. Click Save.
    • Number of calls processed concurrently by a single function instance (concurrency):
      1. Go to the Editor tab.
      2. Under Additional settings, in the Concurrent function instance calls section, check Enable and enter the number of concurrent function instance calls.
      3. Click Save changes.

To configure:

  • Any scaling setting other than the number of calls processed concurrently by a single function instance (concurrency), run this command:

    yc serverless function set-scaling-policy \
      --id=<function_ID> \
      --tag=\$latest \
      --zone-instances-limit=1 \
      --zone-requests-limit=2 \
      --provisioned-instances-count=3
    

    Where:

    • --id: Function ID. To find out the ID, request a list of functions.
    • --tag: Function version tag.
    • --zone-instances-limit: Number of function instances.
    • --zone-requests-limit: Number of calls in progress.
    • --provisioned-instances-count: Number of ready-to-go instances.

    Result:

    function_id: d4eokpuol55h********
    tag: $latest
    zone_instances_limit: "1"
    zone_requests_limit: "2"
    provisioned_instances_count: "3"
    
  • Number of calls processed concurrently by a single function instance (concurrency), run this command:

    yc serverless function version create \
    --function-name=<function_name> \
    --runtime <runtime_environment> \
    --entrypoint <entry_point> \
    --memory 128m \
    --concurrency 2 \
    --execution-timeout 3s \
    --source-path <path_to_ZIP_archive>
    

    Where:

    • --function-name: Name of the function whose version you want to create.
    • --runtime: Function runtime environment.
    • --entrypoint: Entry point in the following format: <file_name_without_extension>.<listener_name>.
    • --memory: Amount of RAM.
    • --concurrency: Maximum number of calls processed concurrently by a single function instance.
    • --execution-timeout: Maximum function running time before the timeout is reached.
    • --source-path: ZIP archive with the function code and required dependencies.

    Result:

    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"
    

With Terraform, you can quickly create a cloud infrastructure in Yandex Cloud and manage it using configuration files. These files store the infrastructure description written in HashiCorp Configuration Language (HCL). If you change the configuration files, Terraform automatically detects which part of your configuration is already deployed, and what should be added or removed.

Terraform is distributed under the Business Source License. The Yandex Cloud provider for Terraform is distributed under the MPL-2.0 license.

For more information about the provider resources, see the documentation on the Terraform website or mirror website.

If you do not have Terraform yet, install it and configure its Yandex Cloud provider.

To add scaling settings:

  1. In the configuration file, define the parameters of the resources you want to create:

    • yandex_function: Description of the function being created and its source code.
      • name: Function name.
      • user_hash: Any string to identify the function version. When the function changes, update this string, too. The function will update when this string is updated.
      • runtime: Function runtime environment.
      • entrypoint: Entry point in the following format: <file_name_without_extension>.<listener_name>.
      • memory: Amount of memory allocated for the function, in MB.
      • concurrency: Maximum number of calls processed concurrently by a single function instance.
      • execution_timeout: Maximum function running time before the timeout is reached.
      • service_account_id: ID of the service account to call the function under.
      • content: Function source code.
        • content.0.zip_filename: Name of the ZIP archive containing the function source code.
    • yandex_function_scaling_policy: Description of function scaling settings.
      • function_id: Function ID.
      • policy: Scaling settings:
        • policy.0.tag: Function version tag.
        • policy.0.zone_instances_limit: Number of function instances.
        • policy.0.zone_requests_limit: Number of calls in progress.

    Here is an example of the configuration file structure:

    provider "yandex" {
        token     = "<service_account_OAuth_token_or_static_key>"
        folder_id = "<folder_ID>"
        zone      = "ru-central1-a"
    }
    
    resource "yandex_function" "test-function" {
        name               = "<function_name>"
        user_hash          = "<hash>"
        runtime            = "<runtime_environment>"
        entrypoint         = "<entry_point>"
        memory             = "128"
        concurrency        = "2"
        execution_timeout  = "10"
        service_account_id = "<service_account_ID>"
        content {
            zip_filename = "<path_to_ZIP_archive>"
        }
    }
    
    resource "yandex_function_scaling_policy" "my_scaling_policy" {
        function_id = "<function_ID>"
        policy {
            tag = "$latest"
            zone_instances_limit = 2
            zone_requests_limit  = 1
        }
    }
    

    For more information about resource parameters, see yandex_function and yandex_function_scaling_policy.

  2. Check the configuration using this command:

    terraform validate
    

    If the configuration is correct, you will get this message:

    Success! The configuration is valid.
    
  3. Run this command:

    terraform plan
    

    The terminal will display a list of resources with their parameters. No changes will be made at this step. If the configuration contains any errors, Terraform will point them out.

  4. Apply the configuration changes:

    terraform apply
    
  5. Confirm the changes: type yes into the terminal and press Enter.

You can check that the scaling settings are added using the management console or these CLI commands:

yc serverless function list-scaling-policies <function_name_or_ID>

yc serverless function version get <version_ID>

To configure any function scaling setting other than the number of calls processed concurrently by a single function instance (concurrency), use the setScalingPolicy REST API method for the Function resource or the FunctionService/SetScalingPolicy gRPC API call.

To set the number of calls processed concurrently by a single function instance (concurrency), create a function version using the createVersion REST API method for the Function resource or the FunctionService/CreateVersion gRPC API call. Add the concurrency field to the request body.

You can configure any function scaling setting other than the number of calls processed concurrently by a single function instance (concurrency) using the Yandex Cloud Toolkit plugin for the IDE family on the JetBrains IntelliJ platform.

See alsoSee also

  • Scaling a function

Was the article helpful?

Previous
Viewing scaling settings
Next
Deleting scaling settings
Yandex project
© 2025 Yandex.Cloud LLC