Creating a function
-
In the management console, select the folder to create your function in.
-
Click Create resource.
-
Choose Function.
-
Enter a function name.
- The name must be unique within the folder.
- The name may contain lowercase Latin letters, numbers, and hyphens.
- The first character must be a letter. The last character can't be a hyphen.
- The maximum length of the name is 63 characters.
-
Click Create.
If you don't have the Yandex.Cloud command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using the --folder-name
or --folder-id
parameter.
Create a function:
$ yc serverless function create --name=<function name>
Result:
id: b09bhaokchn9pnbrlseb
folder_id: aoek49ghmknnpj1ll45e
created_at: "2019-06-14T10:03:37.475Z"
name: my-python-function
log_group_id: eolm8aoq9vcppsieej6h
http_invoke_url: https://functions.yandexcloud.net/b09bhaokchn9pnbrlseb
status: ACTIVE
With Terraform, you can quickly create a cloud infrastructure in Yandex.Cloud. The infrastructure components are identified through configuration files that specify the required cloud resources and their parameters.
If you don't have Terraform yet, install it and configure the Yandex.Cloud provider.
To create a function:
-
In the configuration file, describe the parameters of resources that you want to create:
yandex_function
: Description of the function being created and its source code.name
: Function name.folder_id
: ID of the folder.description
: Text description of the function.labels
: Function labels inkey:value
format.user_hash
: An arbitrary string that identifies the function version. When the function changes, update this string, too. The function will update when this string is updated.runtime
: Function runtime environment. For a full list of runtimes, see Runtime environments.entrypoint
: Function name in the source code that will serve as an entry point to the applications.memory
: The amount of memory allocated for function execution, in MB.execution_timeout
: Function execution timeout.service_account_id
: ID of the service account that should be used to invoke the function.environment
: Environment variables inkey:value
format.tags
: Function tags.version
: Function version.image_size
: Size of the image for the function.loggroup_id
: ID of the log group for the function.package
: Package with the source code of the function version. You can only use either thepackage
orcontent
field.package.0.sha_256
: SHA256 hash of the deployed package.package.0.bucket_name
: Name of the bucket in Object Storage that stores the source code of the function version.package.0.object_name
: Name of the object in Object Storage that contains the source code of the function version.content
: Function source code. You can only use either thecontent
orpackage
field.content.0.zip_filename
: Name of the ZIP archive that contains the function source code.
Example configuration file structure:
provider "yandex" { token = "<OAuth or static key of service account>" folder_id = "<folder ID>" zone = "ru-central1-a" } resource "yandex_function" "test-function" { name = "test-function" description = "Test function" user_hash = "first-function" runtime = "python37" entrypoint = "main" memory = "128" execution_timeout = "10" service_account_id = "<service account ID>" tags = ["my_tag"] content { zip_filename = "<path to ZIP archive>" } } output "yandex_function_test-function" { value = "${yandex_function.test-function.id}" }
For more information about the resources you can create using Terraform, see the provider documentation.
-
Make sure that the configuration files are correct.
-
In the command line, go to the directory where you created the configuration file.
-
Run the check using the command:
$ terraform plan
If the configuration is described correctly, the terminal displays a list of created resources and their parameters.If there are errors in the configuration, Terraform points them out.
-
-
Deploy the cloud resources.
-
If the configuration doesn't contain any errors, run the command:
$ terraform apply
-
Confirm that you want to create the resources.
Afterwards, all the necessary resources are created in the specified folder. You can check resource availability and their settings in management console.
-