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

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

  • Настройте асинхронный вызов
  • Вызовите функцию
  • См. также
  1. Пошаговые инструкции
  2. Вызов функции
  3. Вызвать функцию асинхронно

Вызвать функцию асинхронно

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

Примечание

Функциональность находится на стадии Preview.

Настройте асинхронный вызовНастройте асинхронный вызов

Консоль управления
CLI
Terraform
API
  1. В консоли управления перейдите в каталог, в котором находится функция.
  2. Выберите сервис Cloud Functions.
  3. Выберите функцию.
  4. Перейдите на вкладку Редактор.
  5. В блоке Асинхронный вызов активируйте переключатель Включить.
  6. В поле Количество повторных попыток укажите количество повторных вызовов функции, которые будут сделаны, прежде чем вызов будет считаться неуспешным.
  7. В поле Сервисный аккаунт укажите сервисный аккаунт, у которого есть права на вызов функции.
  8. Укажите в полях Назначение для успешного результата и Назначение для неуспешного результата, куда отправлять сообщения об успешном и неуспешном вызовах функции соответственно:
    • Не задано — не отправлять сообщения.
    • Message Queue — отправлять сообщения в очередь Message Queue:
      • Очередь сообщений — очередь Message Queue, в которую нужно отправлять сообщения.
      • Сервисный аккаунт — сервисный аккаунт, у которого есть права на запись в очередь.
  9. Нажмите кнопку Сохранить изменения.

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

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

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

yc serverless function version create \
  --function-name=<имя_функции> \
  --runtime <среда_выполнения> \
  --entrypoint <точка_входа> \
  --memory <объем_RAM> \
  --execution-timeout <максимальное_время_выполнения> \
  --source-version-id <идентификатор_версии> \
  --async-max-retries <количество_повторных_вызовов> \
  --async-service-account-id <идентификатор_сервисного_аккаунта> \
  --async-success-ymq-arn <очередь_сообщений> \
  --async-success-sa-id <идентификатор_сервисного_аккаунта> \
  --async-failure-ymq-arn <очередь_сообщений> \
  --async-failure-sa-id <идентификатор_сервисного_аккаунта>

Где:

  • --function-name — имя функции.
  • --runtime — среда выполнения.
  • --entrypoint — точка входа, указывается в формате <имя_файла_с_функцией>.<имя_обработчика>.
  • --memory — объем RAM.
  • --execution-timeout — максимальное время выполнения функции до таймаута.
  • --source-version-id — идентификатор версии функции, код которой вы хотите скопировать.
  • --async-max-retries — количество повторных вызовов функции, которые будут сделаны, прежде чем вызов будет считаться неуспешным.
  • --async-service-account-id — идентификатор сервисного аккаунта, у которого есть права на вызов функции.
  • --async-success-ymq-arn — ARN очереди Message Queue, в которую нужно отправлять сообщения об успешных вызовах функции. Если параметр не указан, сообщения не отправляются.
  • --async-success-sa-id — идентификатор сервисного аккаунта с правами на запись в очередь async-success-ymq-arn.
  • --async-failure-ymq-arn — ARN очереди Message Queue, в которую нужно отправлять сообщения о неуспешных вызовах функции. Если параметр не указан, сообщения не отправляются.
  • --async-failure-sa-id — идентификатор сервисного аккаунта с правами на запись в очередь async-failure-ymq-arn.

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы настроить асинхронный вызов:

  1. Откройте файл конфигурации Terraform и добавьте к описанию функции блок async_invocation:

    resource "yandex_function" "test-function" {
      name               = "<имя_функции>"
      user_hash          = "<хеш_функции>"
      runtime            = "<среда_выполнения>"
      entrypoint         = "<точка_входа>"
      memory             = "<объем_RAM>"
      execution_timeout  = "<максимальное время выполнения>"
      service_account_id = "<идентификатор_сервисного_аккаунта>"
    
      async_invocation {
        retries_count       = "<количество_повторных_вызовов>"
        service_account_id  = "<идентификатор_сервисного_аккаунта>"
        ymq_failure_target {
          service_account_id = "<идентификатор_сервисного_аккаунта>"
          arn                = "<очередь_сообщений>"
        }
        ymq_success_target {
          service_account_id = "идентификатор_сервисного_аккаунта"
          arn                = "<очередь_сообщений>"
        }
      }
    }
    

    Где:

    • async_invocation — параметры асинхронного вызова:
      • retries_count — количество повторных вызовов функции, которые будут сделаны, прежде чем вызов будет считаться неуспешным.
      • service_account_id — сервисный аккаунт, у которого есть права на вызов функции.
      • ymq_failure_target — параметры очереди для неуспешного вызова:
        • service_account_id — сервисный аккаунт с правами на запись в очередь для неуспешного асинхронного вызова.
        • arn — ARN очереди Message Queue, в которую нужно отправлять сообщения о неуспешных вызовах функции. Если параметр не указан, сообщения не отправляются.
      • ymq_success_target — параметры очереди для успешного вызова:
        • service_account_id — сервисный аккаунт с правами на запись в очередь для успешного асинхронного вызова.
        • arn — ARN очереди Message Queue, в которую нужно отправлять сообщения об успешных вызовах функции. Если параметр не указан, сообщения не отправляются.

    Более подробную информацию о параметрах ресурса yandex_function см. в документации провайдера.

  2. Примените изменения:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

Проверить изменение функции и ее настройки можно в консоли управления или с помощью команды CLI:

yc serverless function version get <идентификатор_версии_функции>

Чтобы настроить асинхронный вызов, воспользуйтесь методом REST API createVersion для ресурса Function или вызовом gRPC API FunctionService/CreateVersion.

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

Вызовите функцию по HTTPS, указав параметр строки запроса ?integration=async.

См. такжеСм. также

  • Асинхронный вызов функции

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

Предыдущая
Вызвать функцию
Следующая
Аутентифицироваться при вызове приватной функции через HTTPS
Проект Яндекса
© 2025 ООО «Яндекс.Облако»