Есть ли способы установить значения для системных полей CloudWatch Logs?
Я хочу установить значения для полей @requestId
в лямбда-выполнениях, поскольку журналы, явно выведенные внутри исходного кода, не содержат @requestId
значение поля.
Я прочитал статью и попытался вывести журналы, подобные приведенным ниже, но @requestId заполнять не удалось.
fmt.Print(`{"requestId":"come on!!"}`)
Ни ниже код
fmt.Print(`{"@requestId":"come on!!"}`)
Защищены ли системные поля?
1 ответ
Когда запускается функция AWS Lambda, context
элемент передается в функцию.
Из обработчика лямбда-функций AWS в Go - лямбда-AWS:
func HandleRequest(ctx context.Context, name MyEvent) (string, error) {
return fmt.Sprintf("Hello %s!", name.Name ), nil
}
Из AWS Lambda Context Object в Go - AWS Lambda:
Свойства контекста
AwsRequestID
- Идентификатор запроса вызова.
Таким образом, вы можете получить идентификатор запроса из context
, Затем все, что печатает ваша функция, будет записано в журналах CloudWatch. Поэтому, включите идентификатор запроса в ваше заявление на печать.