Контекст вызова функции на 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
: объект, содержащий ключи полей и переданные значения.