{ "info": { "author": "Philipp Gorczak", "author_email": "p.gorczak@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP :: Site Management", "Topic :: System :: Software Distribution", "Topic :: Utilities" ], "description": "awslambda\n=========\n\n*A tool for deploying Python projects to AWS Lambda.*\n\nGetting started\n---------------\nAuthentication is left to *boto3* so you can set it up just like the `regular\nAWS CLI `_. You need an\n`S3 bucket\n`_ for\ntemporary storage. For a quick tutorial on execution roles, see the `official\ndocs\n`_\n(of course you need one that can execute lambdas).\n\nIn a new folder, create *mymodule.py*.\n\n.. code:: python\n\n def hello(*args):\n return \"Hello, world!\"\n\n\nThen deploy the function (fill in your execution role resource name from the\nAWS console).\n\n::\n\n awslambda . mybucket --create hello mymodule.hello arn:aws:iam::xxxxxxxxxxxx:role/myrole\n\n\nWhen *awslambda* is done, you can test your new function in the Lambda\nmanagement console.\n\n>From now on, if you make changes to the function, just run:\n\n::\n\n awslambda . mybucket --update hello\n\n\nYou can use as many options as you like (some shown here with short names).\n\n::\n\n awslambda . mybucket -u hello -u myotherlambda --delete myoldlambda\n\n\nOr specify your functions in a YAML file (let's call it *sync.yaml*).\n\n.. code:: yaml\n\n hello:\n handler: mymodule.hello\n role: arn:aws:iam::xxxxxxxxxxxx:role/myrole\n # myotherlambda:\n # handler: myothermodule.myotherhandler\n # role: arn:aws:iam::xxxxxxxxxxxx:role/myrole\n\nWhen syncing from a file, *awslambda* will update existing functions and create\nthe others automatically.\n\n::\n\n awslambda . mybucket --sync sync.yaml\n\n\nTo add dependencies, use your `pip requirements file\n`_.\n\n::\n\n awslambda . mybucket -s sync.yaml --requirements requirements.txt\n\n\n*Note that compiled dependencies* awslambda *downloads on your local machine\nmight not work on the AWS servers. Pure Python libraries should always work.\nFor others, it could be helpful to run* awslambda *itself in a Lambda function.\nA process knows as* awslambdaception.\n\nA template greeting page\n........................\n\nLet's use the features introduced above to create a greeting page. We will use\nthe `Jinja2 `_ templating engine.\nEdit *mymodule.py*,\n\n.. code:: python\n\n from jinja2 import Template\n\n template = Template('''\n \n \n

Hello, {{ parameters.name }}!

\n

{{ parameters.message }}

\n \n \n ''')\n\n\n def hello(event, context):\n return {\n 'statusCode': 200,\n 'headers': {'Content-Type': 'text/HTML'},\n 'body': template.render(parameters=event['queryStringParameters'])}\n\n\nand create a simple *requirements.txt*.\n\n::\n\n Jinja2\n\n\nDeploy,\n\n::\n\n awslambda . mybucket -s sync.yaml -r requirements.txt\n\n\nthen open the function in your AWS console. Go to *Triggers* and add an\n*API Gateway* trigger. Set security to *Open* for now. Open the URL of the\ncreated trigger in your browser. You should see \"Hello, !\". To customize the\npage append e.g.\n\n::\n\n ?name=Commander Shepard&message=You've received a new message at your private terminal.\n\n\nto the URL and enjoy your serverless, templated webpage!\n\n\nUsage\n-----\n\n::\n\n Usage: awslambda [OPTIONS] SOURCE_DIR S3_BUCKET\n\n Deploy Python code to AWS lambda.\n\n Zips the contents of the source directory together with optional pip\n requirements. The archive is temporarily uploaded to an S3 bucket and used\n to create or update lambda functions.\n\n Reference handlers from your source directory like you would in any Python\n module-tree (e.g. mymodule.myhandler, mymodule.mysubmodule.myhandler,\n etc.).\n\n Roles are ARNs like \"arn:aws:iam::xxxxxxxxxxxx:role/myrole\"\n\n YAML file entries for the sync option map function names to handlers and\n roles:\n\n myLambda:\n handler: mymodule.myhandler\n role: arn:aws:iam::xxxxxxxxxxxx:role/myrole\n\n Options:\n -r, --requirements PATH pip compatible requirements file. Will be\n included in the archive.\n -c, --create NAME HANDLER ROLE Create a new lambda function. Example:\n --create myLambda mymodule.myhandler myrole\n -u, --update NAME Update a lambda function.\n -d, --delete NAME Delete a lambda function.\n -s, --sync FILENAME Keep lambdas defined in YAML file in sync\n with deployed lambdas.\n --help Show this message and exit.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pgorczak/awslambda", "keywords": "aws lambda", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "awslambda", "package_url": "https://pypi.org/project/awslambda/", "platform": "", "project_url": "https://pypi.org/project/awslambda/", "project_urls": { "Homepage": "https://github.com/pgorczak/awslambda" }, "release_url": "https://pypi.org/project/awslambda/1.0.6/", "requires_dist": [ "boto3", "click", "PyYAML" ], "requires_python": "", "summary": "A tool for deploying Python projects to AWS Lambda.", "version": "1.0.6" }, "last_serial": 2498147, "releases": { "1.0.4": [ { "comment_text": "", "digests": { "md5": "bc1720163a8e8f0d0cd7dfd37920a8bd", "sha256": "02aa9a85c572d8be11ddccd0cac125fad2551cf510298ef8dbb62b4ccedec9cb" }, "downloads": -1, "filename": "awslambda-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "bc1720163a8e8f0d0cd7dfd37920a8bd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7499, "upload_time": "2016-09-18T14:36:13", "url": "https://files.pythonhosted.org/packages/3a/dc/20c1772962f4bbc039456cbe8a83295db044f6e456a6fc6bb55cefe0e485/awslambda-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "082eec4f5b654fd82efb80ffc37ca79e", "sha256": "96faa74d8c5ee46d811842736ff7e730a2609ecc7ba2972c4298aa92fc3c2896" }, "downloads": -1, "filename": "awslambda-1.0.4.tar.gz", "has_sig": false, "md5_digest": "082eec4f5b654fd82efb80ffc37ca79e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4994, "upload_time": "2016-09-18T14:35:59", "url": "https://files.pythonhosted.org/packages/89/23/daa79d2766a74a87e1e7ab85b18dd3dce9b7777450937e9a35d7380b0dcd/awslambda-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "a326f2deb637a4732b2fad0e141a1578", "sha256": "5feca848e785e19b07365f6f25624b74da60a28aaa63021f537d05934b0c6f69" }, "downloads": -1, "filename": "awslambda-1.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "a326f2deb637a4732b2fad0e141a1578", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7512, "upload_time": "2016-11-27T15:27:57", "url": "https://files.pythonhosted.org/packages/24/15/180c555b8cf7edfc8905599bc72ef56aa026a9692802be240ef86b44455f/awslambda-1.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b05eebefe93dd5f3350e40ee99daa871", "sha256": "ed1b82fd6f3210354482502480306aa2802afa9f911494f46d0307506395399c" }, "downloads": -1, "filename": "awslambda-1.0.5.tar.gz", "has_sig": false, "md5_digest": "b05eebefe93dd5f3350e40ee99daa871", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5010, "upload_time": "2016-11-27T15:27:59", "url": "https://files.pythonhosted.org/packages/06/59/35096af0c83967509295b03b42f1a052f9c03664867c2a9df7ef22aa8fcd/awslambda-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "fb7941aa4cb6336b8913a9ef47230110", "sha256": "86f29e30085fc8b1324862b18d8b319e15debcae8a134f4ea1d6cb6c82477619" }, "downloads": -1, "filename": "awslambda-1.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "fb7941aa4cb6336b8913a9ef47230110", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9791, "upload_time": "2016-12-04T02:41:55", "url": "https://files.pythonhosted.org/packages/13/f9/76afb2d1aea570c999d308b7cc78182670ec944492d07cdf1a54ec114284/awslambda-1.0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf9c61869733bb6143cf68ebf759d0cf", "sha256": "8c8b9813ae57b7e402f9495ddc47149a147de30937cf02534d7a3c92da6cf7bb" }, "downloads": -1, "filename": "awslambda-1.0.6.tar.gz", "has_sig": false, "md5_digest": "bf9c61869733bb6143cf68ebf759d0cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6470, "upload_time": "2016-12-04T02:41:57", "url": "https://files.pythonhosted.org/packages/7f/ec/dc6779b725247012fe4a761ab17ccf9b6fb682ffd076705a593f1940eac9/awslambda-1.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fb7941aa4cb6336b8913a9ef47230110", "sha256": "86f29e30085fc8b1324862b18d8b319e15debcae8a134f4ea1d6cb6c82477619" }, "downloads": -1, "filename": "awslambda-1.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "fb7941aa4cb6336b8913a9ef47230110", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9791, "upload_time": "2016-12-04T02:41:55", "url": "https://files.pythonhosted.org/packages/13/f9/76afb2d1aea570c999d308b7cc78182670ec944492d07cdf1a54ec114284/awslambda-1.0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf9c61869733bb6143cf68ebf759d0cf", "sha256": "8c8b9813ae57b7e402f9495ddc47149a147de30937cf02534d7a3c92da6cf7bb" }, "downloads": -1, "filename": "awslambda-1.0.6.tar.gz", "has_sig": false, "md5_digest": "bf9c61869733bb6143cf68ebf759d0cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6470, "upload_time": "2016-12-04T02:41:57", "url": "https://files.pythonhosted.org/packages/7f/ec/dc6779b725247012fe4a761ab17ccf9b6fb682ffd076705a593f1940eac9/awslambda-1.0.6.tar.gz" } ] }