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
Provisioned instances are created within 5 minutes after configuration.
- In the management console, select the folder containing your function.
- Select Cloud Functions.
- Select a function.
- Under Version history, mouse over the version tag of the function (such as,
$latest
) you wish 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=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:
-
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. -
Check the configuration using the command:
terraform validate
If the configuration is correct, the following message is returned:
Success! The configuration is valid.
-
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.
-
Apply the configuration changes:
terraform apply
-
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.