Search code examples
python-2.7amazon-web-servicesaws-lambdapython-datetime

No module named 'datetime' for code deployed on aws lambda


I have a python code deployed on aws lambda. The code uses this code:

datetime.utcnow() + datetime.timedelta(minutes=30)

I am using import datetime in the beginning of the file. But when I deploy this code on Lambda, I get this error: No module named datetime

datetime is a part of python so it should be imported in aws on its own which is strange. How can I fix this? What package I should add?

I tried adding datetime.py in aws lambda package with code files but then it throws nonetype' object has no attribute 'strftime'

Please guide!

UPDATE: Attached info below-

LOGS: enter image description here

Files whose zip package is made Zip Structure

Pasting just the lambda handler code, (with names and slight modifications, tried to maintain the general flow)

import sys
import json
import traceback
import os
import datetime
from dynamo_db_helper import DynamoDBHelper
from api_helper import ApiHelper
from google_drive_helper import GoogleDriveHelper
from sflogger import Logger


def lambda_handler(event, context):
    try:
        id = event["Id"]
        set_config(id)

        val1 = event["key1"]
        val2 = event["key2"]
        val3 = event["key3"]
        val4 = event["key4"]
        val5 = event["key5"]
        val6 = event["key6"]
        val7 = event["key7"]
        val8 = event["key8"]
        val9 = event["key9"]
        val10 = stop_session_url.replace("/stopsession", "/verify/")

        db_helper = DynamoDBHelper(URL, DYNAMO_DB_METADATA_TABLE_NAME, stream_id)
        data = db_helper.get_item_from_db(id)

        if data is not None \
                and data['LastModifiedTime'] < datetime.datetime.utcnow() + datetime.timedelta(minutes=30):
            link = data["Link"]
        else:
            if data is not None \
                    and data['Time'] > datetime.datetime.utcnow() + datetime.timedelta(minutes=30):
                db_helper.delete_item_from_db(id)

            link = perform_this(event, db_helper, val10)

        if link is None:
            response = set_fail("error_message")
            return response

        response = set_success(link)
        return response

    except Exception as e:
        response = set_fail("error_message")
        return response


def set_fail(msg):
    response = {"status": "Google Editing session Failed", "message": msg}
    return json.dumps(response)


def set_success(link):
    response = {"status": "Success", "webViewLink": webViewLink}
    return json.dumps(response)

Let me know if anything is needed


Solution

  • The code below works.

    import datetime
    
    def lambda_handler(event, context):
      print(datetime.datetime.utcnow() + datetime.timedelta(minutes=30))