AWS Lambda is I think one of the best additions to AWS, however it does have some issues becuase the architecture has changed over the years and one such problem the default VPC that it runs in. Default configuration runs great, but if you want better security, then not so much. But I digress. One of the most compelling features of Lambda is that you don't have to manager the VM or Docker Container. However because of that you might want to break up the responsibility between multiple Lambda functions, and in this case one Lambda will most certainly want to call another Lambda. So here's how you do that:
const aws = require('aws-sdk');
const lambda = new aws.Lambda({region: 'us-west-1'});
lambda.invoke({
FunctionName: 'LambdaFunctionName',
Payload: JSON.stringify(event, null, 2)
},
function(error, data) {
if (error) {
context.done('error', error);
}
if (data.Payload){
context.succeed(data.Payload)
}
});
Note: I really appreciate Lambda. But to be honest they are difficult to use. There is a time and a place to use them and it should be in every AWS developer's bag of tricks. The real trick I alluded to above is the VPC, but that's for a proper DevOps person to discuss the nuances of that. Also know that while in small uses Lambda is cost effective there is a cross over point where Lambda becomes more expensive than EC2 or Elastic Container Services (Docker).
Tuesday, June 26, 2018
Call an AWS Lambda Function from another Lambda Function
Posted by Chris Bensen at 7:00 AM 1 comments
Thursday, June 14, 2018
Docker ENV vs ARG
There are two types of variables in a Dockerfile, ENVs and ARGs. YOu define them in the Dockerfile like this:
ARG some_argument
This requires that you run:
$docker build --build-arg some_argument=something
Then there's ones with a default value.
ARG some_argument="default value"
You don't have to specify it during the docker build, but you can if you want.
ENV some_value=something
ENV some_other_value=${some_argument}
You can override these when you do docker run:
$docker run -e "some_value=others_stuff" ...
Posted by Chris Bensen at 7:00 AM 0 comments
Subscribe to:
Posts (Atom)