To create an AWS Lambda operate utilizing Terraform, you’ll want to outline the mandatory assets 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, akin 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" # Substitute 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" # Substitute together with your desired runtime
// Substitute with the trail to your Lambda operate code
filename = "path/to/lambda/code.zip"
// Substitute with the suitable values on your Lambda operate
atmosphere {
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 atmosphere on your Lambda operate (e.g.,nodejs14.x
,python3.8
, and so on.).filename
: Replace the trail to your Lambda operate code. Be sure that the code is packaged in a ZIP file.
You can too modify the atmosphere variables part (KEY
and VALUE
) based on your necessities.
-
Save the
lambda.tf
file. -
Initialize the Terraform configuration by operating 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 operating the next command:
terraform apply
Terraform will analyze the configuration, immediate for affirmation, after which create the mandatory assets, together with the Lambda operate.
Possibility 2 – Inline Lambda Supply
An inline Lambda operate signifies that the operate code is outlined immediately within the Terraform configuration file as an alternative 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" # Substitute 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" # Substitute together with your desired runtime
// Outline the inline Lambda operate code
inline_code = <<-EOT
exports.handler = async operate(occasion, context) {
console.log("Good day, inline Lambda operate!");
return {
statusCode: 200,
physique: "Good day from inline Lambda!"
};
};
EOT
// Substitute with the suitable values on your Lambda operate
atmosphere {
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 atmosphere variables. - Save the
lambda.tf
file. - Initialize the Terraform configuration by operating
terraform init
in your terminal. - As soon as the initialization is full, create the Lambda operate by operating
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 may have now created an inline Lambda operate utilizing Terraform.