AWS Lambda: Programatically Create a Python ‘Hello World’ Function
In this post we take a look at how to quickly create a Python function using AWS Lambda, including their configurations and uploading them to the service.
Join the DZone community and get the full member experience.
Join For FreeI’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 file
Now 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:
Published at DZone with permission of Mark Needham, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments