示例#1
0
    def finish_invocation(self, execution_context):
        """Finish invocation.

        Args:
            execution_context (TestSuiteExecutionContext | TestSuiteExecutionContext): Execution context
        """
        try:
            wrapper_utils.finish_invocation(execution_context)
        except Exception as err:
            logger.error("finish invocation error: {}".format(err))
            pass
示例#2
0
def finish_invocation(execution_context):
    wrapper_utils.finish_invocation(execution_context)
    invocation_data = execution_context.invocation_data

    # Set response status code
    wrapper_utils.set_response_status(execution_context, get_response_status(execution_context))

    context = execution_context.platform_data['originalContext']

    _, used_mem = utils.process_memory_usage()
    used_mem_in_mb = used_mem / 1048576

    # Get outgoing trace links
    outgoing_trace_links = invocation_trace_support.get_outgoing_trace_links()

    # Inject trace link to response and add it to outgoing trace links for STEPFUNCTIONS
    inject_step_function_info(execution_context, outgoing_trace_links)
    # Inject trace link to response and add it to outgoing trace links for APPSYNC
    inject_appsync_function_info(execution_context, outgoing_trace_links)
    invocation_data.update(outgoing_trace_links)

    invocation_data['timeout'] = execution_context.timeout

    arn = getattr(context, constants.CONTEXT_INVOKED_FUNCTION_ARN, None)

    # Add AWS tags
    invocation_data['tags']['aws.region'] = utils.get_aws_region_from_arn(
        getattr(context, constants.CONTEXT_INVOKED_FUNCTION_ARN, None))
    invocation_data['tags']['aws.lambda.name'] = getattr(context, constants.CONTEXT_FUNCTION_NAME, None)
    invocation_data['tags']['aws.lambda.arn'] = arn
    invocation_data['tags']['aws.account_no'] = utils.get_aws_account_no(arn)
    invocation_data['tags']['aws.lambda.memory_limit'] = int(getattr(context, constants.CONTEXT_MEMORY_LIMIT_IN_MB, 0))
    invocation_data['tags']['aws.lambda.log_group_name'] = getattr(context, constants.CONTEXT_LOG_GROUP_NAME, None)
    invocation_data['tags']['aws.lambda.log_stream_name'] = getattr(context, constants.CONTEXT_LOG_STREAM_NAME, None)
    invocation_data['tags']['aws.lambda.invocation.coldstart'] = invocation_data['coldStart']
    invocation_data['tags']['aws.lambda.invocation.timeout'] = execution_context.timeout
    invocation_data['tags']['aws.lambda.invocation.request_id'] = getattr(context, constants.CONTEXT_AWS_REQUEST_ID,
                                                                          None)
    invocation_data['tags']['aws.lambda.invocation.memory_usage'] = math.floor(used_mem_in_mb)

    xray_info = utils.parse_x_ray_trace_info()
    if xray_info.get("trace_id"):
        invocation_data['tags']['aws.xray.trace.id'] = xray_info.get("trace_id")
    if xray_info.get("segment_id"):
        invocation_data['tags']['aws.xray.segment.id'] = xray_info.get("segment_id")

    execution_context.invocation_data = invocation_data
示例#3
0
def finish_invocation(execution_context):
    wrapper_utils.finish_invocation(execution_context)

    # Set response status code
    wrapper_utils.set_response_status(execution_context,
                                      get_response_status(execution_context))