Kappa seems to fill this gap. It is a command line tool that greatly simplifies the process of having lambdas deployed on the cloud. All steps described on the mentioned post can be automated. Now are talking!
Setup
Before start, be sure you have python (2.7.x) and pip available on the command line.
Installing kappa:
I strongly advice build It from sources as far there are important bug fixes that seems to be fixed recently:git clone https://github.com/garnaat/kappa.git cd kappa pip install -r requirements.txt python setup.py install
Instaling awscli:
sudo pip install awscli
Configuration:
First thing to do is create the the kappa configuration file. This is where I'm gonna tell It how to deploy my lambda function (config.yml).--- profile: my-default-profile region: us-west-2 iam: policy: name: AWSLambdaExecuteRole role: name: lambda_s3_exec_role lambda: name: myLambdaFuncId zipfile_name: integrator.zip description: Somethhing that helps describe your lambda function path: src/ handler: Integrator.handler runtime: nodejs memory_size: 128 timeout: 3 mode: event test_data: input.json event_sources: - arn: arn:aws:s3:::[set your bucket name] events: - s3:ObjectCreated:*
Lets see what is going on:
Line 2: There should be a profile that kappa will use to authenticate Itself on amazon and create the function in my behalf. We are gonna see it later on the awscli configuration;
Line 4: The policies assigned to this lambda. In case they aren't there yet, kappa will create them for me.
Line 9 - 18: function Runtime configs.
Line 19: This is the file that contains an example request in order to test the function. It is useful once we want to be sure everything is working fine after the deploy is over.
Line 20: Here I'm setting from where events will come from. In this case, any changes on the given bucket, will trigger a call to my function.
Now It's time to configure aws-cli. The only configuration needed is the security profile. Kappa will use It as stated before:
Create the following file in case Isn't already there: ~/aws/credentials and put the following content
[my-default-profile] aws_access_key_id=[YOUR KEY ID ] aws_secret_access_key=[YOUR ACCESS KEY ]
Having it set, It's time to deploy it using kappa tasks:
kappa config.yml create kappa config.yml add_event_source kappa config.yml invoke kappa config.yml status
It should be enough to see the function deployed on the aws-console. The previous commands in order did:
As far Kappa let me automate all deploy tasks,I'm able to create a smarter deploy process. I worked in an example about how could It be done here. I may forgot to mention some detail about the process of having It work, so in this case leave me message and I'll be glad to help.
- create the function on the amazon
- Make it listen changes on a given bucket
- Test the deployed function using fake data (simulating an event)
- Check the status of the deployed function on amazon.
As far Kappa let me automate all deploy tasks,I'm able to create a smarter deploy process. I worked in an example about how could It be done here. I may forgot to mention some detail about the process of having It work, so in this case leave me message and I'll be glad to help.
Thanks for providing your information. Keep Share AWS Online Training
ReplyDelete