0Pricing
Serverless AWS Lambda Development · Урок

Структурированное журналирование и идентификаторы корреляции

Научитесь создавать структурированные журналы JSON с возможностью поиска и отслеживать запрос между несколькими функциями с помощью идентификаторов корреляции.

«Структурированное журналирование и идентификаторы корреляции» — бесплатный урок Serverless AWS Lambda Development на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Serverless AWS Lambda Development, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Serverless AWS Lambda Development содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Plain Logs Do Not Scale

Free-text log lines are hard to filter at scale. Structured logging writes each entry as JSON with consistent fields you can query.

Anatomy of a Structured Log

A good log entry has a level, a message, and contextual fields like request id and user id.

{
  "level": "INFO",
  "message": "order placed",
  "orderId": 42,
  "requestId": "abc-123"
}

Emitting JSON Logs

Serialize a dictionary to JSON and print it. CloudWatch Logs Insights can then query individual fields.

import json, sys

def log(level, message, **fields):
    entry = {'level': level, 'message': message}
    entry.update(fields)
    print(json.dumps(entry), file=sys.stdout)

log('INFO', 'order placed', orderId=42)

Querying with Logs Insights

Logs Insights lets you filter and aggregate JSON fields with a query language.

fields @timestamp, orderId
| filter level = 'ERROR'
| sort @timestamp desc
| limit 20

The Correlation ID

A correlation ID is a unique value attached to a request and passed to every downstream service, so you can trace one request end to end.

Generating One

Create the ID at the entry point if the incoming request does not already carry one.

import uuid

def get_correlation_id(event):
    headers = event.get('headers') or {}
    return headers.get('x-correlation-id') or str(uuid.uuid4())

Propagating It

Pass the correlation ID forward in message attributes, HTTP headers, or event payloads so the next function logs the same ID.

sns.publish(
  TopicArn=topic,
  Message=body,
  MessageAttributes={
    'correlationId': {'DataType': 'String', 'StringValue': cid}
  }
)

Log Levels

Use levels (DEBUG, INFO, WARN, ERROR) and make the threshold configurable via an environment variable so production stays quiet but debuggable.

Never Log Secrets

Structured logs are searchable, which makes accidental secret logging dangerous. Redact tokens, passwords, and PII before logging.

Control Log Retention

Logs cost money to store. Set a retention period on each log group so old logs expire automatically.

aws logs put-retention-policy \
  --log-group-name /aws/lambda/orders \
  --retention-in-days 30

Tie Logs to Traces

Include the X-Ray trace id in your structured logs so you can jump from a log line straight to the distributed trace for that request.

Quick Check

Test your logging knowledge.

Recap

You learned structured JSON logging, querying with Logs Insights, threading correlation IDs across services, redacting secrets, and setting retention.

Часто задаваемые вопросы

Урок «Структурированное журналирование и идентификаторы корреляции» бесплатный?

Да — полный текст урока «Структурированное журналирование и идентификаторы корреляции» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Serverless AWS Lambda Development, подпишись на CoddyKit PRO. Курс Serverless AWS Lambda Development содержит 4 уроков всего.

Чему я научусь в уроке «Структурированное журналирование и идентификаторы корреляции»?

Научитесь создавать структурированные журналы JSON с возможностью поиска и отслеживать запрос между несколькими функциями с помощью идентификаторов корреляции. Ты практикуешь Serverless AWS Lambda Development с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Serverless AWS Lambda Development?

Предыдущий опыт не требуется. Serverless AWS Lambda Development на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Структурированное журналирование и идентификаторы корреляции»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Serverless AWS Lambda Development?

Да. Каждый урок Serverless AWS Lambda Development включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Расширенные политики и разрешения IAM
  2. Управление секретами с помощью AWS Secrets Manager
  3. Распределённая трассировка с AWS X-Ray
  4. Структурированное журналирование и идентификаторы корреляции
← Назад к Serverless AWS Lambda Development