@@ -171,46 +171,54 @@ def sentry_handler(
171171 }
172172
173173 function_name = aws_context .function_name
174- invoked_function_arn = aws_context .invoked_function_arn
175- function_version = aws_context .function_version
176-
177- attributes : "Attributes" = {
178- SPANDATA .SENTRY_OP : OP .FUNCTION_AWS ,
179- SPANDATA .SENTRY_ORIGIN : ORIGIN ,
180- SPANDATA .SENTRY_KIND : "server" ,
181- SPANDATA .SENTRY_SEGMENT_NAME_SOURCE : SegmentNameSource .COMPONENT ,
182- SPANDATA .CLOUD_PROVIDER : CLOUD_PROVIDER ,
183- SPANDATA .CLOUD_PLATFORM : CLOUD_PLATFORM ,
184- SPANDATA .CLOUD_REGION : environ ["AWS_REGION" ],
185- SPANDATA .FAAS_NAME : environ ["AWS_LAMBDA_FUNCTION_NAME" ],
186- SPANDATA .FAAS_VERSION : environ ["AWS_LAMBDA_FUNCTION_VERSION" ],
187- SPANDATA .FAAS_INVOCATION_ID : aws_context .aws_request_id ,
188- SPANDATA .AWS_LAMBDA_INVOKED_ARN : invoked_function_arn ,
189- SPANDATA .AWS_LOG_GROUP_NAMES : [aws_context .log_group_name ],
190- SPANDATA .AWS_LOG_STREAM_NAMES : [aws_context .log_stream_name ],
191- SPANDATA .MESSAGING_BATCH_MESSAGE_COUNT : batch_size ,
192- ** header_attributes ,
193- ** additional_attributes ,
194- }
195-
196- arn_parts = invoked_function_arn .split (":" )
197- with capture_internal_exceptions ():
198- attributes [SPANDATA .CLOUD_ACCOUNT_ID ] = arn_parts [4 ]
199174
200- resource_id = ":" .join (arn_parts [:7 ])
201- if function_version != LATEST_FUNCTION_VERSION :
202- resource_id = f"{ resource_id } :{ function_version } "
203- attributes [SPANDATA .CLOUD_RESOURCE_ID ] = resource_id
175+ if has_span_streaming_enabled (client .options ):
176+ attributes : "Attributes" = {
177+ SPANDATA .SENTRY_OP : OP .FUNCTION_AWS ,
178+ SPANDATA .SENTRY_ORIGIN : ORIGIN ,
179+ SPANDATA .SENTRY_KIND : "server" ,
180+ SPANDATA .SENTRY_SEGMENT_NAME_SOURCE : SegmentNameSource .COMPONENT ,
181+ SPANDATA .CLOUD_PROVIDER : CLOUD_PROVIDER ,
182+ SPANDATA .CLOUD_PLATFORM : CLOUD_PLATFORM ,
183+ SPANDATA .MESSAGING_BATCH_MESSAGE_COUNT : batch_size ,
184+ ** header_attributes ,
185+ ** additional_attributes ,
186+ }
204187
205- if "AWS_LAMBDA_METADATA_API" in environ and has_span_streaming_enabled (
206- client .options
207- ):
208188 with capture_internal_exceptions ():
209- availability_zone = _get_availability_zone ()
210- if availability_zone is not None :
211- attributes [SPANDATA .CLOUD_AVAILABILITY_ZONE ] = availability_zone
189+ invoked_function_arn = aws_context .invoked_function_arn
190+ function_version = aws_context .function_version
191+ arn_parts = invoked_function_arn .split (":" )
192+ resource_id = ":" .join (arn_parts [:7 ])
193+ if function_version != LATEST_FUNCTION_VERSION :
194+ resource_id = f"{ resource_id } :{ function_version } "
195+
196+ attributes .update (
197+ {
198+ SPANDATA .CLOUD_REGION : environ ["AWS_REGION" ],
199+ SPANDATA .CLOUD_ACCOUNT_ID : arn_parts [4 ],
200+ SPANDATA .CLOUD_RESOURCE_ID : resource_id ,
201+ SPANDATA .FAAS_NAME : environ ["AWS_LAMBDA_FUNCTION_NAME" ],
202+ SPANDATA .FAAS_VERSION : environ [
203+ "AWS_LAMBDA_FUNCTION_VERSION"
204+ ],
205+ SPANDATA .FAAS_INVOCATION_ID : aws_context .aws_request_id ,
206+ SPANDATA .AWS_LAMBDA_INVOKED_ARN : invoked_function_arn ,
207+ SPANDATA .AWS_LOG_GROUP_NAMES : [aws_context .log_group_name ],
208+ SPANDATA .AWS_LOG_STREAM_NAMES : [
209+ aws_context .log_stream_name
210+ ],
211+ }
212+ )
213+
214+ if "AWS_LAMBDA_METADATA_API" in environ :
215+ with capture_internal_exceptions ():
216+ availability_zone = _get_availability_zone ()
217+ if availability_zone is not None :
218+ attributes [SPANDATA .CLOUD_AVAILABILITY_ZONE ] = (
219+ availability_zone
220+ )
212221
213- if has_span_streaming_enabled (client .options ):
214222 sentry_sdk .traces .continue_trace (headers )
215223 Scope .set_custom_sampling_context (sampling_context )
216224 span_ctx = sentry_sdk .traces .start_span (
0 commit comments