{ "info": { "author": "YANG Xudong", "author_email": "xudong.yang@hde.co.jp", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6" ], "description": "python-lambda-local\n===================\n\n|Join the chat at https://gitter.im/HDE/python-lambda-local| |wercker\nstatus| |PyPI version|\n\nRun lambda function on local machine\n\nPrepare development environment\n-------------------------------\n\nPlease use a newly created virtualenv of Python 2.7 or Python 3.6.\n\nInstallation\n------------\n\nWithin virtualenv, run the following command.\n\n.. code:: bash\n\n $ pip install python-lambda-local\n\nThis will install the package with name ``python-lambda-local`` in the\nvirtualenv. Now you can use the command ``python-lambda-local`` to run\nyour AWS Lambda function written in Python on your own machine.\n\nUsage as a shell command\n------------------------\n\nRun ``python-lambda-local -h`` to see the help.\n\n::\n\n usage: python-lambda-local [-h] [-l LIBRARY_PATH] [-f HANDLER_FUNCTION]\n [-t TIMEOUT] [-a ARN_STRING] [-v VERSION_NAME]\n [-e ENVIRONMENT_VARIABLES] [--version]\n FILE EVENT\n\n Run AWS Lambda function written in Python on local machine.\n\n positional arguments:\n FILE lambda function file name\n EVENT event data file name\n\n optional arguments:\n -h, --help show this help message and exit\n -l LIBRARY_PATH, --library LIBRARY_PATH\n path of 3rd party libraries\n -f HANDLER_FUNCTION, --function HANDLER_FUNCTION\n lambda function handler name, default: \"handler\"\n -t TIMEOUT, --timeout TIMEOUT\n seconds until lambda function timeout, default: 3\n -a ARN_STRING, --arn-string ARN_STRING\n ARN string for lambda function\n -v VERSION_NAME, --version-name VERSION_NAME\n lambda function version name\n -e ENVIRONMENT_VARIABLES, --environment-variables ENVIRONMENT_VARIABLES\n path to flat json file with environment variables\n --version print the version of python-lambda-local and exit\n\nPrepare development directory\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nProject directory structure\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSuppose your project directory is like this:\n\n::\n\n \u251c\u2500\u2500 event.json\n \u251c\u2500\u2500 lib\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 rx\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 abstractobserver.py\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 ... (package content of rx)\n ...\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 testscheduler.py\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 Rx-1.2.3.dist-info\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 DESCRIPTION.rst\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 METADATA\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 metadata.json\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 pbr.json\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 RECORD\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 top_level.txt\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 WHEEL\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 zip-safe\n \u2514\u2500\u2500 test.py\n\nThe handler\u2019s code is in ``test.py`` and the function name of the\nhandler is ``handler``. The source depends on 3rd party library ``rx``\nand it is installed in the directory ``lib``. The test event in json\nformat is in ``event.json`` file.\n\nContent of ``test.py``:\n^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n from __future__ import print_function\n from rx import Observable\n\n\n def handler(event, context):\n xs = Observable.from_(range(event['answer']))\n ys = xs.to_blocking()\n zs = (x*x for x in ys if x % 7 == 0)\n for x in zs:\n print(x)\n\nContent of ``event.json``:\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: json\n\n {\n \"answer\": 42\n }\n\nRun the lambda function\n^^^^^^^^^^^^^^^^^^^^^^^\n\nWithin the project root directory, you can run the lambda function with\nthe following command\n\n::\n\n python-lambda-local -l lib/ -f handler -t 5 test.py event.json\n\nThe output will be like:\n\n::\n\n [root - INFO - 2018-11-20 17:10:53,352] Event: {'answer': 42}\n [root - INFO - 2018-11-20 17:10:53,352] START RequestId: 3c8e6db4-886a-43da-a1c7-5e6f715de531 Version: \n 0\n 49\n 196\n 441\n 784\n 1225\n [root - INFO - 2018-11-20 17:10:53,359] END RequestId: 3c8e6db4-886a-43da-a1c7-5e6f715de531\n [root - INFO - 2018-11-20 17:10:53,360] REPORT RequestId: 3c8e6db4-886a-43da-a1c7-5e6f715de531 Duration: 2.17 ms\n [root - INFO - 2018-11-20 17:10:53,360] RESULT:\n None\n\nUsage as a library\n------------------\n\nAPI signature\n~~~~~~~~~~~~~\n\n.. code:: python\n\n call(func, event, context, environment_variables={})\n\nCall a handler function ``func`` with given ``event``, ``context`` and\ncustom ``environment_variables``.\n\nSample\n~~~~~~\n\n1. Make sure the 3rd party libraries used in the AWS Lambda function can\n be imported.\n\n.. code:: bash\n\n pip install rx\n\n2. To call the lambda function above with your python code:\n\n.. code:: python\n\n from lambda_local.main import call\n from lambda_local.context import Context\n\n import test\n\n event = {\n \"answer\": 42\n }\n context = Context(5)\n\n call(test.handler, event, context)\n\n.. |Join the chat at https://gitter.im/HDE/python-lambda-local| image:: https://badges.gitter.im/Join%20Chat.svg\n :target: https://gitter.im/HDE/python-lambda-local?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n.. |wercker status| image:: https://app.wercker.com/status/04f5bc5b7de3d5c6f13eb5b871035226/s\n :target: https://app.wercker.com/project/bykey/04f5bc5b7de3d5c6f13eb5b871035226\n.. |PyPI version| image:: https://badge.fury.io/py/python-lambda-local.svg\n :target: https://badge.fury.io/py/python-lambda-local\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/HDE/python-lambda-local", "keywords": "AWS Lambda", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "python-lambda-local", "package_url": "https://pypi.org/project/python-lambda-local/", "platform": "", "project_url": "https://pypi.org/project/python-lambda-local/", "project_urls": { "Homepage": "https://github.com/HDE/python-lambda-local" }, "release_url": "https://pypi.org/project/python-lambda-local/0.1.8/", "requires_dist": [ "boto3" ], "requires_python": "", "summary": "Run lambda function in python on local machine.", "version": "0.1.8" }, "last_serial": 4759100, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "6e6f775b07bc25f758893678edfdfe37", "sha256": "c9177cc9ae07d08f69da4a372495d0ab357fc9f855dfd55c4edbc5782cb788f2" }, "downloads": -1, "filename": "python_lambda_local-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "6e6f775b07bc25f758893678edfdfe37", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8003, "upload_time": "2015-10-26T07:20:54", "url": "https://files.pythonhosted.org/packages/ec/9f/ebd1d7d974a9a7d94ef6ddac3e6a95ec7f76087513ce7512fd735cdef199/python_lambda_local-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25215270f8aaa5875f4e98be05d3fe0b", "sha256": "5687cf7273d5d2f091531cbb3a979b44288772c8e37750b13e4d487f26b3fcd4" }, "downloads": -1, "filename": "python-lambda-local-0.1.tar.gz", "has_sig": false, "md5_digest": "25215270f8aaa5875f4e98be05d3fe0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5740, "upload_time": "2015-10-26T07:21:01", "url": "https://files.pythonhosted.org/packages/fb/ed/ee87083b38759457005ee34341a5cee6fd498b06e1f6d573fba10fc2114b/python-lambda-local-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "9d8cd9c1d3b9b268a28f32ff3f5447b7", "sha256": "127d36ca930990c0a2db8e7300c089960cd9d9151135ab03f07f7fcdba4fabd3" }, "downloads": -1, "filename": "python_lambda_local-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "9d8cd9c1d3b9b268a28f32ff3f5447b7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8117, "upload_time": "2015-10-26T07:34:49", "url": "https://files.pythonhosted.org/packages/74/7c/f5aeffe12693b743df32657c9775037ab4461badb20aea1f817b9838e5ef/python_lambda_local-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e22a24d9d1913f992c0b4119fe5760b6", "sha256": "7f947405325f34babd0e34ef250815b31ca2e5543212f97f1aee6b6808f5c570" }, "downloads": -1, "filename": "python-lambda-local-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e22a24d9d1913f992c0b4119fe5760b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6302, "upload_time": "2015-10-26T07:36:13", "url": "https://files.pythonhosted.org/packages/8d/2a/4802f984b494ad993b552f6b01d1415ae1f0b3dc02ebd2872c333d716292/python-lambda-local-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "eeb2fd3e7574f022e164cba9229b3c2e", "sha256": "6835d59e56cbeffac6858cdf15444aa7de98b5113577a3700521cafd84a2ff25" }, "downloads": -1, "filename": "python-lambda-local-0.1.2.tar.gz", "has_sig": false, "md5_digest": "eeb2fd3e7574f022e164cba9229b3c2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5979, "upload_time": "2015-12-17T10:23:43", "url": "https://files.pythonhosted.org/packages/ee/5c/c942935ad28b7dc9f6d259cdcb0704df0bed801b5222e6106105b21671d2/python-lambda-local-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "8708cc8102a8566e1e099df30d1802ed", "sha256": "f290c53cfc0f9d7bf2e3eafffc44b76efa50f44f50cd96f999c31819d64ecd14" }, "downloads": -1, "filename": "python-lambda-local-0.1.3.tar.gz", "has_sig": false, "md5_digest": "8708cc8102a8566e1e099df30d1802ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5983, "upload_time": "2017-02-12T02:24:37", "url": "https://files.pythonhosted.org/packages/9e/77/dccb5cec0e84c74051cd0bb20ddaaa9818834cf69df5970e16f8bcc9db31/python-lambda-local-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b6145b49bdae1cc482126905dbe18a0e", "sha256": "ed744622f62617e43f83d95ed139fb3743176d74ac15208fe71456d83fe1bb6e" }, "downloads": -1, "filename": "python-lambda-local-0.1.4.tar.gz", "has_sig": false, "md5_digest": "b6145b49bdae1cc482126905dbe18a0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6451, "upload_time": "2017-04-19T05:27:19", "url": "https://files.pythonhosted.org/packages/36/ef/64b44c2671a4763a8b8f571e41f7117e55b293ff57089ce2d65e7831bdad/python-lambda-local-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "11a041440121c4f8a92aafc2baff71f2", "sha256": "cb5988f01a9f5bf556e952af07d70b6834009f61dd1724dd97deddfca07e5027" }, "downloads": -1, "filename": "python-lambda-local-0.1.5.tar.gz", "has_sig": false, "md5_digest": "11a041440121c4f8a92aafc2baff71f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7453, "upload_time": "2017-12-14T03:09:17", "url": "https://files.pythonhosted.org/packages/c0/35/0ee3601df077276deb8597148ddac38753a72304034f66443aa5dc0ebf3d/python-lambda-local-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "fe9c5f4237cd7d34ff050cb0d12f56db", "sha256": "344f030ff43f3a5027849d601410f6e7a6a780fe8a7baee4c63192e0f113ff5f" }, "downloads": -1, "filename": "python-lambda-local-0.1.6.tar.gz", "has_sig": false, "md5_digest": "fe9c5f4237cd7d34ff050cb0d12f56db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6919, "upload_time": "2018-09-03T06:16:00", "url": "https://files.pythonhosted.org/packages/48/2e/728cd8091a7f4214e8098b9dbaeec5c79eef36ef2e85c5216cd414df09c4/python-lambda-local-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "dc582576a4c68d9ed15885f9c8a1c900", "sha256": "07fe946b0bce9e32aa14966303b82ddc09f411bee409e7b18f54230f3e97ec90" }, "downloads": -1, "filename": "python-lambda-local-0.1.7.tar.gz", "has_sig": false, "md5_digest": "dc582576a4c68d9ed15885f9c8a1c900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7105, "upload_time": "2018-10-23T03:30:31", "url": "https://files.pythonhosted.org/packages/d1/87/f54ade7dea162f501451340ec6ce1f906d7ef5ed09f310c6a9dd468caaac/python-lambda-local-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "0835173bef018192007a418c25ad3164", "sha256": "11a60d121f1632109dd9eba179d39ec816232a29bd554bac63346426f4d78515" }, "downloads": -1, "filename": "python_lambda_local-0.1.8-py2-none-any.whl", "has_sig": false, "md5_digest": "0835173bef018192007a418c25ad3164", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8919, "upload_time": "2019-01-30T10:35:24", "url": "https://files.pythonhosted.org/packages/e0/f9/8c1b4866994eb73f31a281c838f34dda8ad02a188330679da73b937e6251/python_lambda_local-0.1.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3be21517dab8e81c61a462d34bbbef4a", "sha256": "7a01ba51e4073b966455e9532496e9ff7c9294744f4fadb91dab71000cd71eaf" }, "downloads": -1, "filename": "python_lambda_local-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "3be21517dab8e81c61a462d34bbbef4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8919, "upload_time": "2019-01-30T10:35:26", "url": "https://files.pythonhosted.org/packages/d8/58/855661429b4efcf338de2dba253abbdff170600a0bf3e66f6107ddd008e9/python_lambda_local-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b61dddcc40572cdff9a83cd7736421be", "sha256": "a98a2ecf414ba61edb21be823a01278751cb517b2b2deab811242f0b87bb1ba1" }, "downloads": -1, "filename": "python-lambda-local-0.1.8.tar.gz", "has_sig": false, "md5_digest": "b61dddcc40572cdff9a83cd7736421be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7674, "upload_time": "2019-01-30T10:35:27", "url": "https://files.pythonhosted.org/packages/0e/40/fe6293003d6dcae247c2d10824fd947b3ea56b77b27a793b3dbf9238cc4b/python-lambda-local-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0835173bef018192007a418c25ad3164", "sha256": "11a60d121f1632109dd9eba179d39ec816232a29bd554bac63346426f4d78515" }, "downloads": -1, "filename": "python_lambda_local-0.1.8-py2-none-any.whl", "has_sig": false, "md5_digest": "0835173bef018192007a418c25ad3164", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8919, "upload_time": "2019-01-30T10:35:24", "url": "https://files.pythonhosted.org/packages/e0/f9/8c1b4866994eb73f31a281c838f34dda8ad02a188330679da73b937e6251/python_lambda_local-0.1.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3be21517dab8e81c61a462d34bbbef4a", "sha256": "7a01ba51e4073b966455e9532496e9ff7c9294744f4fadb91dab71000cd71eaf" }, "downloads": -1, "filename": "python_lambda_local-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "3be21517dab8e81c61a462d34bbbef4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8919, "upload_time": "2019-01-30T10:35:26", "url": "https://files.pythonhosted.org/packages/d8/58/855661429b4efcf338de2dba253abbdff170600a0bf3e66f6107ddd008e9/python_lambda_local-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b61dddcc40572cdff9a83cd7736421be", "sha256": "a98a2ecf414ba61edb21be823a01278751cb517b2b2deab811242f0b87bb1ba1" }, "downloads": -1, "filename": "python-lambda-local-0.1.8.tar.gz", "has_sig": false, "md5_digest": "b61dddcc40572cdff9a83cd7736421be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7674, "upload_time": "2019-01-30T10:35:27", "url": "https://files.pythonhosted.org/packages/0e/40/fe6293003d6dcae247c2d10824fd947b3ea56b77b27a793b3dbf9238cc4b/python-lambda-local-0.1.8.tar.gz" } ] }