[Документация Yandex Cloud](../../../index.md) > [Все решения](../../index.md) > [Cloud Functions](../index.md) > Как работать с облачными функциями асинхронно

# Как работать с облачными функциями асинхронно


## Описание сценария {#case-description}

* Необходимо реализовать асинхронный вызов облачной функции;
* Необходимо закрыть соединение и отдать ответ функции, не дожидаясь окончания работы облачной функции;
* Необходимо сделать так, чтобы функция работала более 10 минут.

## Решение {#case-resolution}

Напрямую реализовать асинхронные вызовы в Cloud Functions не получится - пока контейнер Serverless Containers или облачная функция выполняются, они не могут вернуть HTTP-ответ. Как только контейнер или функция вернут ответ, их выполнение завершается.

В качестве альтернативного сценария реализовать такой пайплайн возможно при помощи сервисов API Gateway и Data Streams.

1. Cоздайте шлюз API Gateway в качестве обработчика вебхука, к которому будет [подключен поток данных Data Streams](../../../api-gateway/concepts/extensions/datastreams.md).
1. Настройте [триггер для потока данных](../../../functions/concepts/trigger/data-streams-trigger.md), который будет вызывать контейнер или функцию.

В этом случае шлюз API Gateway вернет код ответа `HTTP 200 OK`, а контейнер или функция асинхронно обработают вызов.

{% note warning %}

Выполнение кода внутри контейнера Serverless Containers или облачной функции не может выполняться дольше 10 минут, в том числе с использованием триггеров. Мы пишем об этом [в документации сервисов](../../../serverless-containers/concepts/limits.md).

{% endnote %}

Если есть возможность разбить вычисление на несколько вызовов, вы можете собрать асинхронный конвейер: когда первый вызов производит вычисления и вызывает следующую стадию через тот же самый поток данных Data Streams. Однако следует учитывать, что в этом случае второй вызов может быть обработан в другом экземпляре контейнера или облачной функции.