Создание функции на Kotlin
Создайте и выполните функцию на Kotlin, которая приветствует пользователя.
Перед началом работы
Создайте каталог в Yandex Cloud.
Создайте функцию
- В консоли управления
 перейдите в каталог, в котором хотите создать функцию. - Выберите сервис Cloud Functions.
 - Нажмите кнопку Создать функцию.
 - Введите имя функции — 
kotlin-function. - Нажмите кнопку Создать.
 
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать функцию, выполните команду:
yc serverless function create --name=kotlin-function
        
    Результат:
id: d4eek526ai42********
folder_id: b1gt6g8ht345********
created_at: "2024-12-19T20:02:56.039Z"
name: kotlin-function
http_invoke_url: https://functions.yandexcloud.net/d4eek526ai42********
status: ACTIVE
        
    Создать функцию можно с помощью метода API create.
Создайте первую версию функции
Чтобы создать версию функции, вы можете воспользоваться одним из форматов загрузки кода. Для примера будет использован ZIP-архив.
Важно
Файл больше 3,5 МБ необходимо загружать через Object Storage. Подробнее об ограничениях читайте в разделе Квоты и лимиты в Cloud Functions.
Подготовьте ZIP-архив с кодом функции
- 
Сохраните следующий код в файл с названием
Handler.kt:data class Request( val httpMethod: String?, val headers: Map<String, String> = mapOf(), val body: String = "" ) data class Response( val statusCode: Int, val body: String ) fun handle(request: Request): Response { return Response(200, "Hello World!") } - 
Добавьте файл
Handler.ktв ZIP-архивhello-kotlin.zip. 
Создайте версию функции
- В консоли управления
 перейдите в каталог, в котором находится функция. - Выберите сервис Cloud Functions.
 - Выберите функцию 
kotlin-function. - В разделе Последняя версия нажмите кнопку Создать в редакторе.
 - Выберите среду выполнения 
Kotlin 2.0. - Отключите опцию Добавить файлы с примерами кода и нажмите кнопку Продолжить.
 - Задайте параметры версии:
- Способ — 
ZIP-архив. - Файл — прикрепите файл 
hello-kotlin.zip. - Точка входа — 
Handler. - Таймаут — 
3. - Память — 
128 МБ. - Сервисный аккаунт — 
Не выбрано. 
 - Способ — 
 - Нажмите кнопку Сохранить изменения.
 
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы создать версию функции, выполните команду:
yc serverless function version create \
  --function-name=kotlin-function \
  --runtime kotlin20 \
  --entrypoint Handler \
  --memory 128m \
  --execution-timeout 3s \
  --source-path ./hello-kotlin.zip
        
    Где:
--function-name— имя функции, версию которой вы хотите создать.--runtime— среда выполнения.--entrypoint— точка входа, указывается в формате<имя_файла_с_функцией>.<имя_обработчика>.--memory— объем RAM.--execution-timeout— максимальное время выполнения функции до таймаута.--source-path— ZIP-архив c кодом функции и необходимыми зависимостями.
Результат:
done (10s)
id: d4ektme8jo2d********
function_id: d4e9arrf01oh********
created_at: "2024-12-19T20:22:15.942Z"
runtime: kotlin20
entrypoint: Handler
resources:
  memory: "134217728"
execution_timeout: 3s
image_size: "4096"
status: ACTIVE
tags:
  - $latest
log_options:
  folder_id: b1gt6g8ht345********
concurrency: "1"
        
    Создать версию функции можно с помощью метода API createVersion.
Вызовите функцию
Примечание
Чтобы любой пользователь мог вызывать функцию, необходимо сделать ее публичной. Подробнее о правах читайте в разделе Управление доступом в Cloud Functions.
- 
В консоли управления
 перейдите в каталог, в котором находится функция. - 
Выберите сервис Cloud Functions.
 - 
Выберите функцию.
 - 
Перейдите на вкладку
 Тестирование. - 
В поле Тег версии выберите
$latest, чтобы вызвать последнюю версию функции. - 
В поле Шаблон данных выберите
Без шаблона. - 
В поле Входные данные введите:
{} - 
Нажмите кнопку
 Запустить тест. - 
В разделе Результат тестирования, в поле Состояние функции, будет показан статус тестирования. Важно: максимальное время выполнения функции до таймаута (включая начальную инициализацию при первом запуске) — 10 минут.
 - 
В поле Ответ функции появится результат выполнения функции:
{ "statusCode": 200, "body": "Hello World!" } 
Чтобы вызвать функцию, выполните команду:
yc serverless function invoke <идентификатор_функции> -d '{}'
        
    Результат:
{"statusCode":200,"body":"Hello World!"}
        
    По умолчанию вызывается версия функции с тегом $latest.
Ссылку для вызова функции можно найти на вкладке Обзор, в поле Ссылка для вызова.
Для обеспечения безопасности функцию можно вызвать только по протоколу HTTPS. Вызовите ее как обычный HTTPS-запрос, вставив ссылку в адресную строку браузера и добавив в URL параметр name:
https://functions.yandexcloud.net/<идентификатор_функции>
        
    На странице появится ответ:
Hello World!
        
    Что дальше
- Прочитайте, какой должна быть структура функции для вызова разными способами (HTTP, CLI), в разделе Вызов функции в Cloud Functions.
 - Ознакомьтесь с концепциями сервиса.
 - Посмотрите, что можно делать с функциями и версиями в пошаговых инструкциях.