Контекст вызова функции на Node.js
Контекст вызова — это объект, который принимается обработчиком запросов функции на Node.js в качестве второго аргумента.
Контекст вызова содержит дополнительную информацию о свойствах версии функции на Node.js:
functionName— идентификатор функции;functionVersion— идентификатор версии функции;memoryLimitInMB— объем памяти, указанный при создании версии, МБ;requestId— идентификатор обрабатываемого запроса;token— параметры для аутентификации в API сервисов Yandex Cloud.
Контекст также содержит вспомогательные методы:
getRemainingTimeInMillis()— возвращает время, оставшееся на выполнение текущего запроса в миллисекундах;getPayload()— возвращает тело запроса, если используется HTTP-интеграция. По умолчанию HTTP-интеграция используется для всех вызовов функции, если не указан параметр?integration=raw.
Использование контекста вызова
С помощью контекста вызова вы можете аутентифицироваться в API сервисов Yandex Cloud, а также управлять получением тела HTTP-запроса (параметр body).
Аутентификация в API сервисов Yandex Cloud
Если в функции указан сервисный аккаунт, то параметр token содержит информацию для аутентификации от имени этого сервисного аккаунта:
access_token— IAM-токен;expires_in— время жизни токена в секундах;token_type— тип токена (Bearer).
Также данную информацию можно получить с помощью сервиса метаданных. Подробнее об этом способе читайте в разделе Аутентификация изнутри ВМ.
Получение тела запроса
getPayload() — это вспомогательный метод, который упрощает получение тела запроса (параметр body). В зависимости от содержимого тела запроса и заголовка, функция обрабатывает данные разными методами:
- Если в качестве тела запроса был передан JSON-документ и был установлен заголовок
Content-Type: application/json, функция возвращает результат выполнения методаJSON.parseнад данными, которые были переданы в теле запроса. - Если в качестве тела запроса были переданы параметры формы и был установлен заголовок
Content-Type: application/x-www-form-urlencoded, функция возвращает результат выполнения методаquerystring.parse: объект, содержащий ключи полей и переданные значения.