Yandex Cloud
  • Services
  • Solutions
  • Why Yandex Cloud
  • Blog
  • Pricing
  • Documentation
  • Contact us
Get started
Language / Region
Yandex project
© 2023 Yandex.Cloud LLC
Yandex Cloud Functions
  • Comparison with other Yandex Cloud services
  • Getting started
  • Step-by-step instructions
    • All instructions
    • Using functions to get an IAM token for a service account
    • Connecting to managed databases from functions
    • Getting information about a function
    • Managing rights to access functions
    • Creating a function
    • Invoking a function
    • Managing functions
      • Updating a function
      • Scaling a function
        • Viewing scaling settings
        • Adding scaling settings
        • Deleting scaling settings
      • Adding environment variables
      • Specifying a cloud network
      • Transmitting Yandex Lockbox secrets
      • Managing tags
      • Managing labels
      • Viewing monitoring charts
      • Managing logs
      • Deleting a function
    • Getting information about a trigger
    • Creating a trigger
    • Managing triggers
  • Concepts
  • Developing in Node.js
  • Developing in Python
  • Developing in Go
  • Developing in PHP
  • Developing in Bash
  • Developing in Java
  • Developing in R
  • Developing in C#
  • Practical guidelines
  • Pricing policy
  • Access management
  • API Functions reference
  • API Triggers reference
  • Questions and answers
  1. Step-by-step instructions
  2. Managing functions
  3. Scaling a function
  4. Adding scaling settings

Adding function scaling settings

Written by
Yandex Cloud
  • See also

You can set 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.

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

Provisioned instances are created within 5 minutes after configuration.

Management console
CLI
Terraform
API
Yandex Cloud Toolkit
  1. In the management console, select the folder containing your function.
  2. Select Cloud Functions.
  3. Select a function.
  4. Under Version history, mouse over the version tag of the function (such as, $latest) you wish to add scaling settings for.
  5. In the pop-up window, click Add.
  6. 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.
  7. Click Save.

To add scaling settings for a function, run the command:

yc serverless function set-scaling-policy \
  --id=d4eokpuol55h******** \
  --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 provisioned instances.

Result:

function_id: d4eokpuol55h********
tag: $latest
zone_instances_limit: "1"
zone_requests_limit: "2"
provisioned_instances_count: "3"

With Terraform, you can quickly create a cloud infrastructure in Yandex Cloud and manage it by configuration files. They store the infrastructure description in HashiCorp Configuration Language (HCL). Terraform and its providers are distributed under the Mozilla Public License.

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

If you change the configuration files, Terraform automatically determines which part of your configuration is already deployed and what should be added or removed.

If you don't have Terraform, install it and configure the Yandex Cloud provider.

To add scaling settings:

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

    • 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.

    Example configuration file structure:

    provider "yandex" {
        token     = "<service account OAuth or static key>"
        folder_id = "<folder ID>"
        zone      = "ru-central1-a"
    }
    
    resource "yandex_function_scaling_policy" "my_scaling_policy" {
        function_id = "are1samplefu********"
        policy {
            tag = "$latest"
            zone_instances_limit = 2
            zone_requests_limit  = 1
        }
    }
    

    For more information about the parameters of the yandex_function_scaling_policy resource, see the provider documentation.

  2. Check the configuration using the command:

    terraform validate
    

    If the configuration is correct, the following message is returned:

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

    terraform plan
    

    The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains 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 verify that you have deleted the scaling settings in the management console or using the CLI command:

yc serverless function list-scaling-policies <function_name>|<function_ID>

You can add scaling settings for a function using the setScalingPolicy.

You can add function scaling settings using the Yandex Cloud Toolkit plugin for the IDE family on the IntelliJ platform from JetBrains.

See also

  • Scaling a function.

Was the article helpful?

Language / Region
Yandex project
© 2023 Yandex.Cloud LLC