Создать функцию
-
В консоли управления
перейдите в каталог, в котором хотите создать функцию. -
Выберите сервис Cloud Functions
-
Нажмите кнопку Создать функцию.
-
Введите имя и описание функции. Формат имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать функцию, выполните команду:
yc serverless function create --name=<имя_функции>
Результат:
id: b09bhaokchn9********
folder_id: aoek49ghmknn********
created_at: "2019-06-14T10:03:37.475Z"
name: python_function
log_group_id: eolm8aoq9vcp********
http_invoke_url: https://functions.yandexcloud.net/b09bhaokchn9********
status: ACTIVE
Terraform
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать функцию:
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
yandex_function
— описание создаваемой функции и ее исходный код:name
— имя функции.folder_id
— идентификатор каталога.description
— текстовое описание функции.labels
— метки функции в форматеключ:значение
.user_hash
— произвольная строка, определяющая версию функции. При изменениях функции необходимо менять и эту строку. Функция обновится при изменении этой строки.runtime
— среда выполнения функции.entrypoint
— имя функции в исходном коде, которая будет служить точкой входа в приложения.memory
— объем памяти в мегабайтах, отведенный для выполнения функции.execution_timeout
— таймаут выполнения функции.service_account_id
— идентификатор сервисного аккаунта, от имени которого будет запускаться функция.environment
— переменные окружения в форматеключ:значение
.tags
— теги функции.version
— версия функции.image_size
— размер образа для функции.loggroup_id
— идентификатор группы журналов выполнения функции.package
— Пакет с исходным кодом версии функции. Можно использовать либо только полеpackage
, либо только полеcontent
.package.0.sha_256
— SHA256-хэш развертываемого пакета.package.0.bucket_name
— имя бакета в Object Storage, в котором хранится исходный код версии функции.package.0.object_name
— имя объекта в Object Storage, содержащего исходный код версии функции.content
— исходный код функции. Можно использовать либо только полеcontent
, либо только полеpackage
.content.0.zip_filename
— имя ZIP-архива, содержащего исходный код функции.
Пример структуры конфигурационного файла:
provider "yandex" { token = "<OAuth-токен_или_статический_ключ_сервисного_аккаунта>" 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 = "<идентификатор_сервисного_аккаунта>" tags = ["my_tag"] content { zip_filename = "<путь_к_ZIP-архиву>" } } output "yandex_function_test-function" { value = "${yandex_function.test-function.id}" }
Более подробную информацию о параметрах ресурса
yandex_function
см. в документации провайдера . -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить появление ресурсов и их настройки можно в консоли управления
или с помощью команды CLI:yc serverless function list
Чтобы создать функцию, воспользуйтесь методом REST API create для ресурса Function или вызовом gRPC API FunctionService/Create.
Создать функцию можно с помощью плагина Yandex Cloud Toolkit