class LambdaContext

Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Attributes

aws_request_id[R]
client_context[R]
deadline_ms[R]
function_name[R]
function_version[R]
identity[R]
invoked_function_arn[R]
log_group_name[R]
log_stream_name[R]
memory_limit_in_mb[R]

Public Class Methods

new(request) click to toggle source
# File lib/aws_lambda_ric/lambda_context.rb, line 10
def initialize(request)
  @clock_diff = Process.clock_gettime(Process::CLOCK_REALTIME, :millisecond) - Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond)
  @deadline_ms = request['Lambda-Runtime-Deadline-Ms'].to_i
  @aws_request_id = request['Lambda-Runtime-Aws-Request-Id']
  @invoked_function_arn = request['Lambda-Runtime-Invoked-Function-Arn']
  @log_group_name = ENV['AWS_LAMBDA_LOG_GROUP_NAME']
  @log_stream_name = ENV['AWS_LAMBDA_LOG_STREAM_NAME']
  @function_name = ENV['AWS_LAMBDA_FUNCTION_NAME']
  @memory_limit_in_mb = ENV['AWS_LAMBDA_FUNCTION_MEMORY_SIZE']
  @function_version = ENV['AWS_LAMBDA_FUNCTION_VERSION']
  @identity = JSON.parse(request['Lambda-Runtime-Cognito-Identity']) if request['Lambda-Runtime-Cognito-Identity']
  @client_context = JSON.parse(request['Lambda-Runtime-Client-Context']) if request['Lambda-Runtime-Client-Context']
end

Public Instance Methods

get_remaining_time_in_millis() click to toggle source
# File lib/aws_lambda_ric/lambda_context.rb, line 24
def get_remaining_time_in_millis
  now = Process.clock_gettime(Process::CLOCK_MONOTONIC, :millisecond) + @clock_diff
  remaining = @deadline_ms - now
  remaining.positive? ? remaining : 0
end