- tocdepth
2
Node.js
Встроенный в FunctionGraph редактор кода поддерживает Node.js. Чтобы запустить код из примера ниже:
На консоли управления выберите
.Нажмите Create Function.
Скопируйте и вставьте код в редактор FunctionGraph.
В выпадающем списке Runtime выберите «Node.js 12.13», а в Handler введите «index.handler».
Сохраните функцию.
Запустите тест.
Выполняемый код
exports.handler = async (event, context) => { //Get function name f_name = context.getFunctionName() f_name = "Hello world! Function name is " + f_name //Print function name console.log(f_name); return f_name; }
Обработчик
При создании новой функции в FunctionGraph нужно вручную указать Handler — имя функции, которую FunctionGraph вызывает, чтобы выполнить ваш код. Оно должно соответствовать тому имени, которое вы определяете при создании функции.
Handler для Node.js имеет следующий формат:
[file_name].[execution_function_name]
Где:
file_name
— название исполняемого файла.execution_function_name
— название функции. Функция в примере —exports.handler = async (event, context) => { // TODO }
, ее название —handler
.
Функция «execution_function_name» должна иметь два входящих аргумента:
event — параметр события, определенный для функции, в формате JSON. Набор атрибутов зависит от типа события.
context — контекстные методы, предоставляемые для выполнения функции.
Примечание
Опционально можно использовать директиву «callback», которая используется для возврата сообщения и информации об ошибке фронтенду:
exports.handler = async (event, context, callback [optional]) => { return data;}
Тест и просмотр результата
Результат выполнения появится после запуска теста и отработки функции.
Нажмите Test и после отработки функции ознакомьтесь с результатами. Если в поле Function Output будет «Hello world! Function name is [your-function-name]», значит функция отработала правильно.
Контекстные методы
Метод |
Описание |
---|---|
getRequestID() |
Получает ID запроса. |
getRemainingTimeInMilliSeconds() |
Получает оставшееся до тайм-аута время выполнения функции. |
getAccessKey() |
Получает Access Key (AK) агентства. Ключ действует в течение 24 часов. Если вы используете этот метод, вам нужно настроить агентство для этой функции. |
getSecretKey() |
Получает Secret Key (SK) агентства. Ключ действует в течение 24 часов. Если вы используете этот метод, вам нужно настроить агентство для этой функции. |
getUserData(string key) |
Получает значение переменной среды по ключу. |
getFunctionName() |
Получает имя функции. |
getRunningTimeInSeconds() |
Получает тайм-аут функции. |
getVersion() |
Получает версию функции. |
getMemorySize() |
Получает объем выделяемой памяти. |
getCPUNumber() |
Получает количество mcores, используемых функцией (1 CPU = 1000 mcores). Это значение пропорционально количеству выделяемой памяти. Количество выделяемых mcores рассчитывается следующим образом: Memory / 128 * 100 + 200. |
getProjectID() |
Получает ID проекта. |
getPackage() |
Получает название приложения, в котором находится функция. |
getToken() |
Получает токен агентства. Токен действителен в течение 24 часов. Если вы используете этот метод, вам нужно настроить агентство для этой функции. |
getLogger() |
Получает метод logger из контекста и возвращает класс вывода логов. Логи выводятся в формате Time-Request ID-Content с использованием метода info. Пример использования метода info для вывода логов: logg = context.getLogger()
logg.info("hello")
|
для Dev & Test