Это не то, что Lambda может сделать, потому что условие невозможно обнаружить внутри среды выполнения Lambda из-за развязки, встроенной в Lambda.
Когда вызывается функция Lambda, клиент (браузер)на самом деле не подключен к контейнеру, выполняющему функцию.Он подключен к службе Lambda , которая использовала отдельное соединение с контейнером для вызова функции.
Если клиент закрывает соединение, функция все еще выполняется до завершения, но ответСлужба отбрасывается, поскольку возвращать ее некому.
flush()
и ob_flush()
почти наверняка запрещены, поскольку Lambda - это строго запрос / ответ.Весь ответ возвращается, когда выполнение завершено - до этого ничего не возвращалось, поэтому нечего очищать, пока функция еще выполняется.
Если это действительно важная возможность, рассмотрите возможность использования Веб-сокеты API Gateway , которые запускают лямбда-функции при открытии соединений и снова при закрытии.Это необычный вариант использования этой функции, но он позволит избежать затрат на длительные лямбда-функции (которые не могут быть использованы в любом случае).