Python
AWS Lambda: Programatically create a Python ‘Hello World’ function
I’ve been playing around with AWS Lambda over the last couple of weeks and I wanted to automate the creation of these functions and all their surrounding config.
Let’s say we have the following Hello World function:
def lambda_handler(event, context):
print("Hello world")To upload it to AWS we need to put it inside a zip file so let’s do that:
$ zip HelloWorld.zip HelloWorld.py
$ unzip -l HelloWorld.zip
Archive: HelloWorld.zip
Length Date Time Name
-------- ---- ---- ----
61 04-02-17 22:04 HelloWorld.py
-------- -------
61 1 fileNow we’re ready to write a script to create our AWS lambda function.
import boto3
lambda_client = boto3.client('lambda')
fn_name = "HelloWorld"
fn_role = 'arn:aws:iam::[your-aws-id]:role/lambda_basic_execution'
lambda_client.create_function(
FunctionName=fn_name,
Runtime='python2.7',
Role=fn_role,
Handler="{0}.lambda_handler".format(fn_name),
Code={'ZipFile': open("{0}.zip".format(fn_name), 'rb').read(), },
)[your-aws-id] needs to be replaced with the identifier of our AWS account. We can find that out be running the following command against the AWS CLI:
$ aws ec2 describe-security-groups --query 'SecurityGroups[0].OwnerId' --output text 123456789012
Now we can create our function:
$ python CreateHelloWorld.py
And if we test the function we’ll get the expected output:
| Reference: | AWS Lambda: Programatically create a Python ‘Hello World’ function from our WCG partner Mark Needham at the Mark Needham Blog blog. |




