Adding function scaling settings
You can set the following:
zone_instances_limit: Number of function instances per availability zone.zone_requests_limit: Number of concurrent function calls per availability zone.provisioned_instances_count: Number of provisioned instances.
You are charged separately for provisioned instance downtime and function execution time.
You can configure different scaling settings for different function versions using tags. Scaling settings will apply to the function version with the specified tag assigned. 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 they are configured.
- In the management console
, navigate to the folder containing the function. - Go to Cloud Functions.
- Select the function.
- Under Version history, hover over the version tag (e.g.,
or$latest) of the function you want to add scaling settings for. - In the pop-up window, click Add.
- In the window that opens, specify the following:
- zone_instances_limit: Number of function instances per availability zone.
- zone_requests_limit: Number of concurrent function calls per availability zone.
- provisioned_instances_count: Number of provisioned instances.
- Click Save.
To configure scaling settings, 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, get the 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
Terraform is distributed under the Business Source License
For more information about the provider resources, see the relevant documentation on the Terraform
If you do not have Terraform yet, install it and configure the Yandex Cloud provider.
To add scaling settings:
-
In the configuration file, describe 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 you change the function, update this string as well. Updating this string triggers a function update.runtime: Function runtime.entrypoint: Entry point in<file_name_without_extension>.<handler_name>format.memory: Amount of memory allocated to the function, in MB.execution_timeout: Maximum function execution 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>" entrypoint = "<entry_point>" memory = "128" 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 properties, see yandex_function_scaling_policy.
-
Validate your configuration using this command:
terraform validateIf the configuration is valid, you will get this message:
Success! The configuration is valid. -
Run this command:
terraform planYou will see a list of resources and their properties. No changes will be made at this step. Terraform will show any errors in the configuration.
-
Apply the configuration changes:
terraform apply -
Type
yesand press Enter to confirm the changes.
You can check that the scaling settings are added using the management console
yc serverless function list-scaling-policies <function_name_or_ID>
To set scaling settings, use the setScalingPolicy REST API method for the Function resource or the FunctionService/SetScalingPolicy gRPC API call.