Difference between revisions of "Terraform resource: aws lambda function"
Jump to navigation
Jump to search
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | <code>[[aws_lambda_function]]</code> | + | <code>[[aws_lambda_function]]</code> https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function |
− | + | ||
+ | == Official example == | ||
+ | |||
+ | data "[[aws_iam_policy_document]]" "assume_role" { | ||
+ | statement { | ||
+ | effect = "Allow" | ||
+ | |||
+ | principals { | ||
+ | type = "Service" | ||
+ | identifiers = ["lambda.amazonaws.com"] | ||
+ | } | ||
+ | |||
+ | actions = ["sts:AssumeRole"] | ||
+ | } | ||
+ | } | ||
+ | |||
+ | resource "aws_iam_role" "iam_for_lambda" { | ||
+ | name = "iam_for_lambda" | ||
+ | assume_role_policy = data.aws_iam_policy_document.assume_role.json | ||
+ | } | ||
+ | |||
+ | data "[[archive_file]]" "lambda" { | ||
+ | type = "zip" | ||
+ | source_file = "lambda.js" | ||
+ | output_path = "lambda_function_payload.zip" | ||
+ | } | ||
+ | |||
+ | resource "aws_lambda_function" "test_lambda" { | ||
+ | # If the file is not in the current working directory you will need to include a | ||
+ | # path.module in the filename. | ||
+ | filename = "lambda_function_payload.zip" | ||
+ | function_name = "lambda_function_name" | ||
+ | role = aws_iam_role.iam_for_lambda.arn | ||
+ | handler = "index.test" | ||
+ | |||
+ | source_code_hash = data.archive_file.lambda.output_base64sha256 | ||
+ | |||
+ | runtime = "nodejs18.x" | ||
+ | |||
+ | environment { | ||
+ | variables = { | ||
+ | foo = "bar" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
== Related == | == Related == |
Latest revision as of 12:50, 9 October 2024
aws_lambda_function
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function
Official example[edit]
data "aws_iam_policy_document" "assume_role" { statement { effect = "Allow" principals { type = "Service" identifiers = ["lambda.amazonaws.com"] } actions = ["sts:AssumeRole"] } }
resource "aws_iam_role" "iam_for_lambda" { name = "iam_for_lambda" assume_role_policy = data.aws_iam_policy_document.assume_role.json }
data "archive_file" "lambda" { type = "zip" source_file = "lambda.js" output_path = "lambda_function_payload.zip" }
resource "aws_lambda_function" "test_lambda" { # If the file is not in the current working directory you will need to include a # path.module in the filename. filename = "lambda_function_payload.zip" function_name = "lambda_function_name" role = aws_iam_role.iam_for_lambda.arn handler = "index.test" source_code_hash = data.archive_file.lambda.output_base64sha256
runtime = "nodejs18.x"
environment { variables = { foo = "bar" } }
}
Related[edit]
See also[edit]
Advertising: