To create an AWS Lambda operate utilizing Terraform, it’s essential outline the required sources in a Terraform configuration file. Right here’s an instance of how one can create a Lambda operate utilizing Terraform:
Possibility 1 – Seperate Lambda Supply
- Create a brand new listing on your Terraform configuration and navigate to it in your terminal.
- Create a brand new file with a
.tf
extension, equivalent tolambda.tf
, and open it in a textual content editor. - Within the lambda.tf file, add the next code:
supplier "aws" {
area = "us-east-1" # Exchange together with your desired AWS area
}
useful resource "aws_lambda_function" "my_lambda" {
function_name = "my-lambda-function"
function = aws_iam_role.lambda_role.arn
handler = "index.handler"
runtime = "nodejs14.x" # Exchange together with your desired runtime
// Exchange with the trail to your Lambda operate code
filename = "path/to/lambda/code.zip"
// Exchange with the suitable values on your Lambda operate
setting {
variables = {
KEY = "VALUE"
KEY2 = "VALUE2"
}
}
}
useful resource "aws_iam_role" "lambda_role" {
title = "my-lambda-role"
assume_role_policy = <<EOF
{
"Model": "2012-10-17",
"Assertion": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
}
useful resource "aws_iam_role_policy_attachment" "lambda_policy_attachment" {
function = aws_iam_role.lambda_role.title
policy_arn = "arn:aws:iam::aws:coverage/service-role/AWSLambdaBasicExecutionRole"
}
- Within the above code, you’ll be able to customise the next elements:
area
: Specify the AWS area the place you wish to create the Lambda operate.runtime
: Specify the runtime setting on your Lambda operate (e.g.,nodejs14.x
,python3.8
, and many others.).filename
: Replace the trail to your Lambda operate code. Make sure that the code is packaged in a ZIP file.
You may also modify the setting variables part (KEY
and VALUE
) in accordance with your necessities.
-
Save the
lambda.tf
file. -
Initialize the Terraform configuration by working the next command in your terminal:
terraform init
- As soon as the initialization is full, you’ll be able to create the Lambda operate by working the next command:
terraform apply
Terraform will analyze the configuration, immediate for affirmation, after which create the required sources, together with the Lambda operate.
Possibility 2 – Inline Lambda Supply
An inline Lambda operate signifies that the operate code is outlined instantly within the Terraform configuration file as a substitute of referencing an exterior code file. Right here’s an instance of how one can create an inline Lambda operate utilizing Terraform:
- Comply with steps 1 and a couple of from the earlier reply to arrange your Terraform configuration.
- Within the
lambda.tf
file, add the next code:
supplier "aws" {
area = "us-east-1" # Exchange together with your desired AWS area
}
useful resource "aws_lambda_function" "my_lambda" {
function_name = "my-lambda-function"
function = aws_iam_role.lambda_role.arn
handler = "index.handler"
runtime = "nodejs14.x" # Exchange together with your desired runtime
// Outline the inline Lambda operate code
inline_code = <<-EOT
exports.handler = async operate(occasion, context) {
console.log("Hey, inline Lambda operate!");
return {
statusCode: 200,
physique: "Hey from inline Lambda!"
};
};
EOT
// Exchange with the suitable values on your Lambda operate
setting {
variables = {
KEY = "VALUE"
KEY2 = "VALUE2"
}
}
}
useful resource "aws_iam_role" "lambda_role" {
title = "my-lambda-role"
assume_role_policy = <<EOF
{
"Model": "2012-10-17",
"Assertion": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
}
useful resource "aws_iam_role_policy_attachment" "lambda_policy_attachment" {
function = aws_iam_role.lambda_role.title
policy_arn = "arn:aws:iam::aws:coverage/service-role/AWSLambdaBasicExecutionRole"
}
- Customise the code as wanted, such because the
area
,function_name
,runtime
, and setting variables. - Save the
lambda.tf
file. - Initialize the Terraform configuration by working
terraform init
in your terminal. - As soon as the initialization is full, create the Lambda operate by working
terraform apply
.
Terraform will analyze the configuration, immediate for affirmation, and create the inline Lambda operate utilizing the code supplied within the inline_code
block.
That’s it! You might have now created an inline Lambda operate utilizing Terraform.