Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Страница сервиса
Yandex Cloud Functions
Документация
Yandex Cloud Functions
  • Сопоставление с другими сервисами Yandex Cloud
    • Обзор
      • Обзор
      • Node.js
      • Python
      • Go
      • PHP
      • Bash
      • Java
      • Kotlin
  • Инструменты
  • Правила тарификации
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Создайте функцию
  • Создайте первую версию функции
  • Подготовьте ZIP-архив с кодом функции
  • Создайте версию функции
  • Вызовите функцию
  • Что дальше
  1. Начало работы
  2. Создание функции
  3. Java

Создание функции на Java

Статья создана
Yandex Cloud
Улучшена
Обновлена 26 августа 2025 г.
  • Перед началом работы
  • Создайте функцию
  • Создайте первую версию функции
    • Подготовьте ZIP-архив с кодом функции
    • Создайте версию функции
  • Вызовите функцию
  • Что дальше

Создайте и выполните функцию на Java, которая приветствует пользователя.

Перед началом работыПеред началом работы

Создайте каталог в Yandex Cloud.

Создайте функциюСоздайте функцию

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором хотите создать функцию.
  2. Выберите сервис Cloud Functions.
  3. Нажмите кнопку Создать функцию.
  4. Введите имя функции — java-function.
  5. Нажмите кнопку Создать.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать функцию, выполните команду:

yc serverless function create --name=java-function

Результат:

id: b09bhaokchn9********
folder_id: aoek49ghmknn********
created_at: "2019-06-14T10:03:37.475Z"
name: java-function
log_group_id: eolm8aoq9vcp********
http_invoke_url: https://functions.yandexcloud.net/b09bhaokchn9********
status: ACTIVE

Создать функцию можно с помощью метода API create.

Создайте первую версию функцииСоздайте первую версию функции

Чтобы создать версию функции, вы можете воспользоваться одним из форматов загрузки кода. Для примера будет использован ZIP-архив.

Важно

Файл больше 3,5 МБ необходимо загружать через Object Storage. Подробнее об ограничениях читайте в разделе Квоты и лимиты в Cloud Functions.

Подготовьте ZIP-архив с кодом функцииПодготовьте ZIP-архив с кодом функции

  1. Сохраните следующий код в файл с названием Handler.java:

    import java.util.HashMap;
    import java.util.Map;
    import java.util.function.Function;
    
    class Request {
        Map<String, String> queryStringParameters;
    }
    
    class Response {
        private int statusCode;
        private Map<String, String> headers;
        private Boolean isBase64Encoded;
        private String body;
    
        public Response(int statusCode, Map<String, String> headers, Boolean isBase64Encoded, String body) {
            this.statusCode = statusCode;
            this.headers = headers;
            this.isBase64Encoded = isBase64Encoded;
            this.body = body;
        }
    }
    
    public class Handler implements Function<Request, Response> {
        private Integer statusCode = 200;
        private Boolean isBase64Encoded = false;
    
        @Override
        public Response apply(Request request) {
            Map<String, String> headers = new HashMap<>();
            headers.put("Content-Type", "text/plain");
    
            String name = request.queryStringParameters.get("name");
            return new Response(statusCode, headers, isBase64Encoded, String.format("Hello, %s!", name));
        }
    }
    
  2. Добавьте файл Handler.java в ZIP-архив hello-java.zip.

Создайте версию функцииСоздайте версию функции

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию java-function.
  4. В разделе Последняя версия нажмите кнопку Создать в редакторе.
  5. Выберите среду выполнения Java 21.
  6. Отключите опцию Добавить файлы с примерами кода и нажмите кнопку Продолжить.
  7. Задайте параметры версии:
    • Способ — ZIP-архив.
    • Файл — прикрепите файл hello-java.zip.
    • Точка входа — Handler.
    • Таймаут — 3.
    • Память — 128 МБ.
    • Сервисный аккаунт — Не выбрано.
  8. Нажмите кнопку Сохранить изменения.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать версию функции, выполните команду:

yc serverless function version create \
  --function-name=java-function \
  --runtime java21 \
  --entrypoint Handler \
  --memory 128m \
  --execution-timeout 3s \
  --source-path ./hello-java.zip

Где:

  • --function-name — имя функции, версию которой вы хотите создать.
  • --runtime — среда выполнения.
  • --entrypoint — точка входа.
  • --memory — объем RAM.
  • --execution-timeout — максимальное время выполнения функции до таймаута.
  • --source-path — ZIP-архив с кодом функции и необходимыми зависимостями.

Результат:

done (1s)
id: d4evvn8obisa********
function_id: d4elpv8pft63********
created_at: "2020-08-01T19:09:19.531Z"
runtime: java21
entrypoint: Handler
resources:
    memory: "134217728"
execution_timeout: 3s
image_size: "4096"
status: ACTIVE
tags:
- $latest
log_group_id: ckg3qh8h363p********

Создать версию функции можно с помощью метода API createVersion.

Вызовите функциюВызовите функцию

Примечание

Чтобы любой пользователь мог вызывать функцию, необходимо сделать ее публичной. Подробнее о правах читайте в разделе Управление доступом в Cloud Functions.

Консоль управления
CLI
HTTPS
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию.
  4. Перейдите на вкладку Тестирование.
  5. В поле Тег версии выберите $latest, чтобы вызвать последнюю версию функции.
  6. В поле Шаблон данных выберите Без шаблона.
  7. В поле Входные данные введите:
    {"queryStringParameters": {"name": "Username"}}
    
  8. Нажмите кнопку Запустить тест.
  9. В разделе Результат тестирования, в поле Состояние функции, будет показан статус тестирования. Важно: максимальное время выполнения функции до таймаута (включая начальную инициализацию при первом запуске) — 10 минут.
  10. В поле Ответ функции появится результат выполнения функции:
    {
      "statusCode": 200,
      "headers": {
        "Content-Type": "text/plain"
      },
      "isBase64Encoded": false,
      "body": "Hello, Username!"
    }
    

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы вызвать функцию, выполните команду:

yc serverless function invoke <идентификатор_функции> -d '{"queryStringParameters": {"name": "Username"}}'

Результат:

{"statusCode":200,"headers":{"Content-Type":"text/plain"},"isBase64Encoded":false,"body":"Hello, Username!"}

По умолчанию вызывается версия функции с тегом $latest.

Ссылку для вызова функции можно найти на вкладке Обзор, в поле Ссылка для вызова.

Для обеспечения безопасности функцию можно вызвать только по протоколу HTTPS. Вызовите ее как обычный HTTPS-запрос, вставив ссылку в адресную строку браузера и добавив в URL параметр name:

https://functions.yandexcloud.net/<идентификатор_функции>?name=Username

На странице появится ответ:

Hello, Username!

Что дальшеЧто дальше

  • Прочитайте, какой должна быть структура функции для вызова разными способами (HTTP, CLI), в разделе Вызов функции в Cloud Functions.
  • Ознакомьтесь с концепциями сервиса.
  • Посмотрите, что можно делать с функциями и версиями в пошаговых инструкциях.

Была ли статья полезна?

Предыдущая
Bash
Следующая
Kotlin
Проект Яндекса
© 2025 ООО «Яндекс.Облако»