A step by step tuto to progressively learn devops on clouds.
The goal is to have a CI/CD full functioning with infra as code as soon as possible. Linking to other services will be done in a second time.
The steps are thus proposed in different order depending on the cloud provider and type of service deployed. Just make steps as small as possible to know how to deploy code + infra as soon as possible.
Just create your first lambda through AWS console. Maybe the most complexe thing is to create your AWS account :).
Then follow the following tutorial: https://aws.amazon.com/getting-started/tutorials/run-serverless-code/
It's just a Hello World lambda, without even API Gateway in front of it in order to call it through a Rest Webservice.
Deploy your code from your local machine to your account.
This will ask you to install AWS CLI and AWS SAM CLI, create your first IAM Admin User and Group...
By the way, you will create the API Gateway to access the function through a Rest Webservice.
branch AWS-lambda-2-CLI
Deploy your code from a github repository using a Raw Travis CI pipeline.
By RAW we mean not using travis lambda provider that does all the magic, but help us learn not much.
Mixing the tutorial: https://dev.to/codevbus/deploy-aws-lambda-functions-with-aws-sam-cli-and-travis-ci-part-2-2goh on the code of previous step. The most difficult to adapt are the roles of the travis service account.
branch AWS-lambda-3-travis
ACHIEVEMENT UNLOCKED: FULL CI-CD with infra as code.
What about configuring other CI/CD tools such as Jenkins or Gitlab?
Adding access to database and s3 in your lambda
You can go further here for a fullstack web application: https://github.com/aws-samples/lambda-refarch-webapp pointed by https://aws.amazon.com/lambda/