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

Использование SDK для функции на Java

Статья создана
Yandex Cloud
Обновлена 21 апреля 2025 г.

Среда выполнения не содержит предустановленной библиотеки для работы с API Yandex Cloud. Для ее использования требуется добавить зависимость в приложение на Java. Исходный код библиотеки находится на GitHub. Доступность модулей библиотеки зависит от версии языка:

  • java-sdk-functions — только для Java 11.
  • java-sdk-serverless — для Java 17 и выше.

Другие модули доступны для любой версии Java.

SDK (Software Development Kit) позволяет управлять ресурсами Yandex Cloud от имени сервисного аккаунта, который указан в параметрах функции.

ПримерПример

Следующая функция получает на вход идентификатор каталога (folderId), авторизуется в SDK, получает список всех виртуальных машин Compute Cloud в заданном каталоге и запускает остановленные машины. В качестве результата возвращает сообщение-отчет с количеством запущенных машин.

Важно

Функцию необходимо вызывать с помощью Yandex Cloud CLI или с помощью HTTP-запроса с параметром ?integration=raw.

import yandex.cloud.api.compute.v1.InstanceOuterClass;
import yandex.cloud.api.compute.v1.InstanceServiceGrpc;
import yandex.cloud.api.compute.v1.InstanceServiceOuterClass;
import yandex.cloud.sdk.ServiceFactory;
import yandex.cloud.sdk.auth.Auth;

import java.util.function.Function;

public class Handler implements Function<String, String> {
  @Override
  public String apply(String folderId) {
    // Авторизация в SDK через сервисный аккаунт
    var defaultComputeEngine = Auth.computeEngineBuilder().build();
    var factory = ServiceFactory.builder()
            .credentialProvider(defaultComputeEngine)
            .build();
    var instanceService = factory.create(InstanceServiceGrpc.InstanceServiceBlockingStub.class, InstanceServiceGrpc::newBlockingStub);
    var listInstancesRequest = InstanceServiceOuterClass.ListInstancesRequest.newBuilder().setFolderId(folderId).build();
    // Получение списка ВМ по заданному в запросе folderId
    var listInstancesResponse = instanceService.list(listInstancesRequest);
    var instances = listInstancesResponse.getInstancesList();
    var count = 0;
    for (var instance : instances) {
      if (instance.getStatus() != InstanceOuterClass.Instance.Status.RUNNING) {
        var startInstanceRequest = InstanceServiceOuterClass.StartInstanceRequest.newBuilder().setInstanceId(instance.getId()).build();
        // Запуск ВМ с указанными в запросе идентификаторами ВМ
        var startInstanceResponse = instanceService.start(startInstanceRequest);
        if (!startInstanceResponse.hasError()) {
          count++;
        }
      }
    }
    return String.format("Started %d instances", count);
  }
}

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

Предыдущая
Обработка ошибок
Следующая
Обзор
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»