I have a S3 file called python.zip already uploaded which Im trying to reference to add it in Lambda Layer. I am using aws_s3_object data/resource in Terraform but it is erroring out no matter what I do.
** Error: Invalid data source
on main.tf line 12, in data "aws_S3_object" "layer_object": 12: data "aws_S3_object" "layer_object" {
The provider provider.aws does not support data source "aws_S3_object". **
Below Terraform code that I am using.
terraform {
backend s3 {
key = "InstanceCleanup.tfstate"
dynamodb_table = "terraform-state-locking"
}
}
provider "aws" {
region = "us-east-1"
}
data "aws_S3_object" "layer_object" {
bucket = "agent-buildup-806471337920"
key = "python.zip"
}
resource "aws_lambda_layer_version" "my_layer" {
filename = "python.zip"
layer_name = "Requests-2.31.0"
description = "Requests module for python 3.8 compatibilty"
compatible_runtimes = ["python3.8"]
s3_bucket = data.aws_S3_object.layer_object.bucket
s3_key = data.aws_S3_object.layer_object.key
}
## Lambda Function ##
resource "aws_lambda_function" "Instance_Cleanup" {
function_name = "Instance-Cleanup-function"
handler = "Instance-Cleanup.lambda_handler"
runtime = "python3.8"
filename = "Instance-Cleanup.zip"
timeout = 10
role = aws_iam_role.Lambda_role.arn
layers = [aws_lambda_layer_version.my_layer.arn]
source_code_hash = filebase64sha256("Instance-Cleanup.zip")
environment {
variables = {
pool_ids = join(",", var.pool_ids)
instance_names = join(",", var.instance_names)
}
}
}
Help me guys !!!!
The data source name is aws_s3_object
, with a lower case s3
, not aws_S3_object
.