Есть ли способы установить значения для системных полей CloudWatch Logs? - PullRequest
0 голосов
/ 21 июня 2019

Я хочу установить значения для полей @requestId в лямбда-выполнениях, поскольку журналы, явно выведенные внутри исходного кода, не содержат значения поля @requestId.
Я прочитал статью и попытался вывести журналы, как показано ниже, но @requestId не заполнялся.

fmt.Print(`{"requestId":"come on!!"}`)

Ни один из приведенных ниже кодов.

fmt.Print(`{"@requestId":"come on!!"}`)

Защищены ли системные поля?

1 Ответ

0 голосов
/ 21 июня 2019

Когда запускается лямбда-функция AWS, в функцию передается элемент context.

С Обработчик лямбда-функции AWS в Go - AWS Lambda :

func HandleRequest(ctx context.Context, name MyEvent) (string, error) {
        return fmt.Sprintf("Hello %s!", name.Name ), nil
}

С Лямбда-контекстный объект AWS в Go - Лямбда-автомат AWS :

Свойства контекста

AwsRequestID - идентификаторзапроса вызова.

Таким образом, вы можете получить идентификатор запроса из context.Затем все, что печатает ваша функция, будет записано в CloudWatch Logs .Поэтому включите идентификатор запроса в ваше заявление о печати. ​​

...