Adding function scaling settings
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
Scaling settings take effect within five minutes after being configured.
- In the management console
, select the folder containing your function. - Select Cloud Functions.
- Select a function.
- Under Version history, hover over the tag (e.g.,
$latest
) of the function version you want to add scaling settings for. - In the pop-up window, click Add.
- 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.
- Click Save.
To add scaling settings for a function, run the 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 provisioned instances.
Result:
function_id: d4eokpuol55h********
tag: $latest
zone_instances_limit: "1"
zone_requests_limit: "2"
provisioned_instances_count: "3"
Terraform
For more information about the provider resources, see the documentation on the Terraform
If you change the configuration files, Terraform automatically detects 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:
-
In the configuration file, describe the parameters of the resources 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.
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_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 . -
Check the configuration using this command:
terraform validate
If the configuration is correct, you will get this message:
Success! The configuration is valid.
-
Run this command:
terraform plan
The terminal will display a list of resources with parameters. No changes will be made at this step. If the configuration contains any errors, Terraform will point them out.
-
Apply the configuration changes:
terraform apply
-
Confirm the changes: type
yes
into the terminal and press Enter.
You can check the deletion of the scaling settings using the management console
yc serverless function list-scaling-policies <function_name_or_ID>
To add function scaling settings, use the setScalingPolicy REST API method for the Function resource or the FunctionService/SetScalingPolicy gRPC API call.
You can add scaling settings for a function using the Yandex Cloud Toolkit plugin