Контекст вызова функции на Go
Контекст вызова — это объект, который опционально принимается обработчиком запросов. Он представляет собой объект типа context.Context
и предоставляет интерфейс для получения дополнительной информации о свойствах версии функции на Go:
lambdaRuntimeFunctionName
— идентификатор функции (string
);lambdaRuntimeFunctionVersion
— идентификатор версии функции (string
);lambdaRuntimeMemoryLimit
— объем памяти, указанный при создании версии, МБ (int
);lambdaRuntimeRequestID
— идентификатор обрабатываемого запроса (string
);
Для извлечения информации из контекста вызова следует воспользоваться его методом Value(key)
, в который в качестве параметра key
передать в виде строки один из ключей, описанных выше.
Аутентификация в API сервисов Yandex Cloud
Если в функции указан сервисный аккаунт, с помощью SDK можно получить информацию для аутентификации от имени этого сервисного аккаунта. Для его получения следует воспользоваться следующими методами:
creds := ycsdk.InstanceServiceAccount()
token, err := creds.IAMToken(ctx)
В поле token.IamToken
будет находиться необходимый IAM-токен.
Код выше работает через сервис метаданных, доступный в окружении функции с указанным сервисным аккаунтом.