Reference¶
Base Class¶
- class TriggeredXrayRecorder(trace_header, trigger_metadata, lambda_request_id, lambda_arn, region=None, setup_environment=True)¶
Provides setup defaults to allow trace continuation from any existing trace.
Example
>>> from aws_xray_lambda_segment_shim import TriggeredXrayRecorder >>> from aws_xray_sdk.core.models.trace_header import TraceHeader >>> recorder = TriggeredXrayRecorder( ... trace_header=TraceHeader( ... root="1-5759e988-bd862e3fe1be46a994272793", ... parent="3995c3f42cd8ad8", ... sampled=1, ... ), ... trigger_metadata={"message_id": "059f36b4-87a3-44ab-83d2-661975830a7d"}, ... lambda_request_id="test_request_id", ... lambda_arn="arn:aws:lambda:us-west-2:123456789012:function:my-function", ... region="eu-west-1", ... ) >>> with recorder.in_segment() as segment: ... segment.trace_id '1-5759e988-bd862e3fe1be46a994272793'
- Parameters
trace_header (aws_xray_sdk.core.models.trace_header.TraceHeader) –
trigger_metadata (Dict[str, str]) –
lambda_request_id (str) –
lambda_arn (str) –
region (str) –
setup_environment (bool) –
- Return type
None
Helper Functions¶
- get_sqs_triggered_recorder(record, lambda_request_id, lambda_arn, region=None, setup_environment=True)¶
Continue a trace from an SQS message.
For this to work the SQS message must have a trace header. Trace headers are populated in SQS messages when the message is put on the queue by an AWS X-Ray instrumented AWS SDK (e.g. boto3).
For more on how SQS and X-Ray work consult the documentation.
Example
>>> from aws_xray_lambda_segment_shim import get_sqs_triggered_recorder >>> # Setup the lambda handler >>> def lambda_handler(event, context): ... for i, record in enumerate(event["Records"]): ... recorder = get_sqs_triggered_recorder( ... record=record, ... lambda_request_id=context.aws_request_id, ... lambda_arn=context.invoked_function_arn, ... ) ... with recorder.in_segment() as segment: ... print( ... "I'm triggered by an SQS Record and using trace id ", ... segment.trace_id ... ) >>> # Pretend we're invoking the lambda >>> lambda_handler( ... event=MOCK_EVENT, ... context=MOCK_CONTEXT, ... ) I'm triggered by an SQS Record and using trace id 1-5759e988-bd862e3fe1be46a994272793
- Parameters
record (dict) –
lambda_request_id (str) –
lambda_arn (str) –
region (Optional[str]) –
setup_environment (bool) –
- Return type