@@ -8,15 +8,14 @@ Run lambda function on local machine
88
99## Prepare development environment
1010
11- Please use a newly created virtualenv for python2.7 .
11+ Please use a newly created virtualenv of Python 2.7 or Python 3.6 .
1212
1313## Installation
1414
1515Within virtualenv, run the following command.
1616
1717``` bash
18- $ cd $PROJECT_ROOT
19- $ pip install ./
18+ $ pip install python-lambda-local
2019```
2120
2221This will install the package with name ` python-lambda-local ` in the virtualenv.
@@ -28,7 +27,7 @@ Run `python-lambda-local -h` to see the help.
2827
2928```
3029usage: python-lambda-local [-h] [-l LIBRARY_PATH] [-f HANDLER_FUNCTION]
31- [-t TIMEOUT]
30+ [-t TIMEOUT] [-a ARN_STRING] [-v VERSION_NAME]
3231 FILE EVENT
3332
3433Run AWS Lambda function written in Python on local machine.
@@ -45,6 +44,10 @@ optional arguments:
4544 Lambda function handler name. Default: "handler".
4645 -t TIMEOUT, --timeout TIMEOUT
4746 Seconds until lambda function timeout. Default: 3
47+ -a ARN_STRING, --arn-string ARN_STRING
48+ arn string for function
49+ -v VERSION_NAME, --version-name VERSION_NAME
50+ function version name
4851```
4952
5053### Prepare development directory
@@ -73,29 +76,30 @@ Suppose your project directory is like this:
7376└── test.py
7477```
7578
76- In the handler's code is in ` test.py ` and the function name of the handler is ` handler ` .
77- The source depends on 3rd party library ` rx ` and it is install in the directory ` lib ` .
78- The test event of json format is in ` event.json ` file.
79+ The handler's code is in ` test.py ` and the function name of the handler is ` handler ` .
80+ The source depends on 3rd party library ` rx ` and it is installed in the directory ` lib ` .
81+ The test event in json format is in ` event.json ` file.
7982
8083#### Content of ` test.py ` :
8184
8285``` python
86+ from __future__ import print_function
8387from rx import Observable
8488
8589
8690def handler (event , context ):
87- xs = Observable.from_([ 1 , 2 , 3 , 4 , 5 , 6 ] )
91+ xs = Observable.from_(range (event[ ' answer ' ]) )
8892 ys = xs.to_blocking()
89- zs = (x* x for x in ys if x > 3 )
93+ zs = (x* x for x in ys if x % 7 == 0 )
9094 for x in zs:
91- print x
95+ print (x)
9296```
9397
9498#### Content of ` event.json ` :
9599
96100``` json
97101{
98- "key " : " value "
102+ "answer " : 42
99103}
100104```
101105
@@ -110,11 +114,16 @@ python-lambda-local -l lib/ -f handler -t 5 test.py event.json
110114The output will be like:
111115
112116```
113- [INFO 2015-10-16 18:21:14,774] Event: {'key': 'value'}
114- [INFO 2015-10-16 18:21:14,774] START RequestId: 324cb1c5-fa9b-4f39-8ad9-01c95f7d5744
115- 16
116- 25
117- 36
118- [INFO 2015-10-16 18:21:14,775] END RequestId: 324cb1c5-fa9b-4f39-8ad9-01c95f7d5744
119- [INFO 2015-10-16 18:21:14,775] RESULT: None
117+ [root - INFO - 2017-04-19 12:39:05,512] Event: {u'answer': 42}
118+ [root - INFO - 2017-04-19 12:39:05,512] START RequestId: b918f9ae-0ca1-44af-9937-dd5f9eeedcc1
119+ 0
120+ 49
121+ 196
122+ 441
123+ 784
124+ 1225
125+ [root - INFO - 2017-04-19 12:39:05,515] END RequestId: b918f9ae-0ca1-44af-9937-dd5f9eeedcc1
126+ [root - INFO - 2017-04-19 12:39:05,515] RESULT:
127+ None
128+ [root - INFO - 2017-04-19 12:39:05,515] REPORT RequestId: b918f9ae-0ca1-44af-9937-dd5f9eeedcc1 Duration: 2.27 ms
120129```
0 commit comments