Yandex Cloud
Search
Contact UsGet started
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • AI for business
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
© 2025 Direct Cursus Technology L.L.C.
Yandex Cloud Functions
  • Comparing 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
  • Public materials
  • 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 November 24, 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
  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 the following:
        • 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. Navigate 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 timeout.
    • --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 relevant documentation on the Terraform website or its mirror.

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

To add scaling settings:

  1. In the configuration file, describe the properties of resources you want to create:

    • yandex_function: Description of the function being created and its source code.
      • name: Function name.
      • user_hash: Custom string to define 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 timeout.
      • service_account_id: ID of the service account you want to use to invoke the function.
      • 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
    

    You will see a detailed list of resources. No changes will be made at this step. If the configuration contains any errors, Terraform will show them.

  4. Apply the changes:

    terraform apply
    
  5. Type yes and press Enter to confirm the changes.

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.

See alsoSee also

  • Scaling a function

Was the article helpful?

Previous
Viewing scaling settings
Next
Deleting scaling settings
© 2025 Direct Cursus Technology L.L.C.