resource "aws_apigatewayv2_api" "http_api" { name = "${var.function_name}-gateway" protocol_type = "HTTP" } resource "aws_lambda_permission" "allow_apigw" { statement_id = "AllowExecutionFromAPIGateway" action = "lambda:InvokeFunction" function_name = aws_lambda_function.api.function_name principal = "apigateway.amazonaws.com" source_arn = "${aws_apigatewayv2_api.http_api.execution_arn}/*/*" } resource "aws_apigatewayv2_integration" "lambda_integration" { api_id = aws_apigatewayv2_api.http_api.id integration_type = "AWS_PROXY" integration_uri = aws_lambda_function.api.invoke_arn payload_format_version = "2.0" } resource "aws_apigatewayv2_route" "default_route" { api_id = aws_apigatewayv2_api.http_api.id route_key = "ANY /{proxy+}" target = "integrations/${aws_apigatewayv2_integration.lambda_integration.id}" } resource "aws_apigatewayv2_stage" "default_stage" { api_id = aws_apigatewayv2_api.http_api.id name = "$default" auto_deploy = true }