Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"errorMessage": "module initialization error"

Using Python, I followed and when it came to Test it, the following error popped up:

{
  "errorMessage": "module initialization error"
}

What could I have done wrong?



from __future__ import print_function

import os
from datetime import datetime
from urllib2 import urlopen

SITE = os.environ['site']  # URL of the site to check, stored in the site environment variable, e.g. https://aws.amazon.com
EXPECTED = os.environ['expected']  # String expected to be on the page, stored in the expected environment variable, e.g. Amazon


def validate(res):
    '''Return False to trigger the canary

    Currently this simply checks whether the EXPECTED string is present.
    However, you could modify this to perform any number of arbitrary
    checks on the contents of SITE.
    '''
    return EXPECTED in res


def lambda_handler(event, context):
    print('Checking {} at {}...'.format(SITE, event['time']))
    try:
        if not validate(urlopen(SITE).read()):
            raise Exception('Validation failed')
    except:
        print('Check failed!')
        raise
    else:
        print('Check passed!')
        return event['time']
    finally:
        print('Check complete at {}'.format(str(datetime.now())))


1 Answers

You don't need any environment variables. Just keep it simple

from __future__ import print_function

import os
from datetime import datetime
from urllib2 import urlopen


def lambda_handler(event, context):
    url = 'https://www.google.com' # change it with your own
    print('Checking {} at {}...'.format(url, datetime.utcnow()))
    html = urlopen(url).read()
    # do some processing
    return html

Here is another simple example.

from __future__ import print_function


def lambda_handler(event, context):
    first = event.get('first', 0)
    second = event.get('second', 0)
    sum = first + second
    return sum

Here is a sample event which will be used to invoke this lambda. you can configure event from Lambda web interface. (or google it)

{
  "first": 10,
  "second": 23
}
like image 87
Zohaib Ijaz Avatar answered Apr 19 '26 14:04

Zohaib Ijaz



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!