Go
Встроенный в FunctionGraph редактор кода не поддерживает Go. Чтобы запустить код из примера ниже:
На консоли управления выберите Computing → FunctionGraph.
Нажмите Create Function.
В выпадающем списке Runtime выберите «Go 1.x», а в Handler введите «handler».
Загрузите архив в FunctionGraph.
Сохраните функцию.
Запустите тест.
Выполняемый код
package mainimport ("fmt""go-runtime/go-api/context""go-runtime/pkg/runtime")func Handler ( payload [] byte , ctx context . RuntimeContext ) ( interface {}, error ) {//Get function namevar f_name string = "Hello world! Function (Go1.x) name is " + ctx . GetFunctionName ()//Print function namefmt . Println ( f_name )return f_name , nil}func main () {runtime . Register ( Handler )}
Обработчик
При создании новой функции в FunctionGraph нужно вручную прописать Handler — имя функции, которую FunctionGraph вызывает, чтобы выполнить ваш код. Оно должно соответствовать тому имени, которое вы определяете при создании функции.
В Handler для Go 1.x нужно указать имя исполняемого файла.
Исполняемая функция должна иметь два входящих аргумента:
payload — параметр события, определенный для функции, в формате JSON. Набор атрибутов зависит от типа события.
ctx — контекстные методы, предоставляемые для выполнения функции.
Функция в примере:
func Handler(payload []byte, ctx context.RuntimeContext) (interface{}, error) { // TODO }
Редактирование кода в онлайн-интерпретаторе не поддерживается.
Войдите на сервер Linux, на котором установлен Go 1.x SDK.
Скачайте FSS Go SDK и распакуйте в каталог с вашим проектом.
Создайте новый модуль командой:
go mod init handlerДобавьте в конфигурационный файл go.mod путь до библиотек:
module handlergo 1.18require (go - runtime v0 .0.0 - 00010101000000 - 000000000000)replace (go - runtime => ./ go - runtime)Добавьте исходники в архив и загрузите в консоль FunctionGraph.
Тест и просмотр результата
Результат выполнения появится после запуска теста и отработки функции.
Нажмите Test и после отработки функции ознакомьтесь с результатами. Если в поле Function Output будет «Hello world! Function (Go1.x) name is [your-function-name]», значит функция отработала правильно.
Контекстные методы
Метод |
Описание |
---|---|
GetRequestID() string |
Получает ID запроса. |
GetRemainingTimeInMilliSeconds() |
Получает оставшееся до тайм-аута время выполнения функции. |
GetAccessKey() string |
Получает Access Key (AK) агентства. Ключ действует в течение 24 часов. Если вы используете этот метод, вам нужно настроить агентство для этой функции. |
GetSecretKey() string |
Получает Secret Key (SK) агентства. Ключ действует в течение 24 часов. Если вы используете этот метод, вам нужно настроить агентство для этой функции. |
GetUserData(key string) string |
Получает значение переменной среды по ключу. |
GetFunctionName() string |
Получает имя функции. |
GetRunningTimeInSeconds() int |
Получает тайм-аут функции. |
GetVersion() string |
Получает версию функции. |
GetMemorySize() int |
Получает объем выделяемой памяти. |
GetCPUNumber() int |
Получает количество mcores, используемых функцией (1 CPU = 1000 mcores). Это значение пропорционально количеству выделяемой памяти. Количество выделяемых mcores рассчитывается следующим образом: Memory / 128 * 100 + 200. |
GetProjectID() string |
Получает ID проекта. |
GetPackage() string |
Получает название приложения, в котором находится функция. |
GetToken() string |
Получает токен агентства. Токен действителен в течение 24 часов. Если вы используете этот метод, вам нужно настроить агентство для этой функции. |
GetLogger() context.RuntimeLogger |
Получает метод logger из контекста. По умолчанию выводится время и ID запроса. |
- Выполняемый код
- Обработчик
- Тест и просмотр результата
- Контекстные методы