{"id":19129433,"url":"https://github.com/launchbynttdata/tf-aws-module_collection-lambda_function","last_synced_at":"2026-04-18T04:02:18.219Z","repository":{"id":250939815,"uuid":"795229555","full_name":"launchbynttdata/tf-aws-module_collection-lambda_function","owner":"launchbynttdata","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-30T18:44:58.000Z","size":205,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-12T16:27:16.127Z","etag":null,"topics":["aws","infrastructure-as-code","platform-automation","reference","terraform"],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/launchbynttdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-02T20:57:07.000Z","updated_at":"2025-01-14T14:32:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"6966666c-e1f9-4908-a91e-e6c559ed9878","html_url":"https://github.com/launchbynttdata/tf-aws-module_collection-lambda_function","commit_stats":null,"previous_names":["launchbynttdata/tf-aws-module_collection-lambda_function"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/launchbynttdata/tf-aws-module_collection-lambda_function","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-aws-module_collection-lambda_function","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-aws-module_collection-lambda_function/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-aws-module_collection-lambda_function/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-aws-module_collection-lambda_function/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/launchbynttdata","download_url":"https://codeload.github.com/launchbynttdata/tf-aws-module_collection-lambda_function/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchbynttdata%2Ftf-aws-module_collection-lambda_function/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31955919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","infrastructure-as-code","platform-automation","reference","terraform"],"created_at":"2024-11-09T06:07:28.430Z","updated_at":"2026-04-18T04:02:18.193Z","avatar_url":"https://github.com/launchbynttdata.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tf-aws-module_collection-lambda_function\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![License: CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC_BY--NC--ND_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-nd/4.0/)\n\n## Overview\n\nThis terrform module creates a Memcached cluster in AWS\n\n## Pre-Commit hooks\n\n[.pre-commit-config.yaml](.pre-commit-config.yaml) file defines certain `pre-commit` hooks that are relevant to terraform, golang and common linting tasks. There are no custom hooks added.\n\n`commitlint` hook enforces commit message in certain format. The commit contains the following structural elements, to communicate intent to the consumers of your commit messages:\n\n- **fix**: a commit of the type `fix` patches a bug in your codebase (this correlates with PATCH in Semantic Versioning).\n- **feat**: a commit of the type `feat` introduces a new feature to the codebase (this correlates with MINOR in Semantic Versioning).\n- **BREAKING CHANGE**: a commit that has a footer `BREAKING CHANGE:`, or appends a `!` after the type/scope, introduces a breaking API change (correlating with MAJOR in Semantic Versioning). A BREAKING CHANGE can be part of commits of any type.\nfooters other than BREAKING CHANGE: \u003cdescription\u003e may be provided and follow a convention similar to git trailer format.\n- **build**: a commit of the type `build` adds changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)\n- **chore**: a commit of the type `chore` adds changes that don't modify src or test files\n- **ci**: a commit of the type `ci` adds changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)\n- **docs**: a commit of the type `docs` adds documentation only changes\n- **perf**: a commit of the type `perf` adds code change that improves performance\n- **refactor**: a commit of the type `refactor` adds code change that neither fixes a bug nor adds a feature\n- **revert**: a commit of the type `revert` reverts a previous commit\n- **style**: a commit of the type `style` adds code changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)\n- **test**: a commit of the type `test` adds missing tests or correcting existing tests\n\nBase configuration used for this project is [commitlint-config-conventional (based on the Angular convention)](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional#type-enum)\n\nIf you are a developer using vscode, [this](https://marketplace.visualstudio.com/items?itemName=joshbolduc.commitlint) plugin may be helpful.\n\n`detect-secrets-hook` prevents new secrets from being introduced into the baseline. TODO: INSERT DOC LINK ABOUT HOOKS\n\nIn order for `pre-commit` hooks to work properly\n\n- You need to have the pre-commit package manager installed. [Here](https://pre-commit.com/#install) are the installation instructions.\n- `pre-commit` would install all the hooks when commit message is added by default except for `commitlint` hook. `commitlint` hook would need to be installed manually using the command below\n\n```\npre-commit install --hook-type commit-msg\n```\n\n## To test the resource group module locally\n\n1. For development/enhancements to this module locally, you'll need to install all of its components. This is controlled by the `configure` target in the project's [`Makefile`](./Makefile). Before you can run `configure`, familiarize yourself with the variables in the `Makefile` and ensure they're pointing to the right places.\n\n```\nmake configure\n```\n\nThis adds in several files and directories that are ignored by `git`. They expose many new Make targets.\n\n2. The first target you care about is `env`. This is the common interface for setting up environment variables. The values of the environment variables will be used to authenticate with cloud provider from local development workstation.\n\n`make configure` command will bring down `aws_env.sh` file on local workstation. Developer would need to modify this file, replace the environment variable values with relevant values.\n\nThese environment variables are used by `terratest` integration suit.\n\nThen run this make target to set the environment variables on developer workstation.\n\n```\nmake env\n```\n\n3. The first target you care about is `check`.\n\n**Pre-requisites**\nBefore running this target it is important to ensure that, developer has created files mentioned below on local workstation under root directory of git repository that contains code for primitives/segments. Note that these files are `aws` specific. If primitive/segment under development uses any other cloud provider than AWS, this section may not be relevant.\n\n- A file named `provider.tf` with contents below\n\n```\nprovider \"aws\" {\n  profile = \"\u003cprofile_name\u003e\"\n  region  = \"\u003cregion_name\u003e\"\n}\n```\n\n- A file named `terraform.tfvars` which contains key value pair of variables used.\n\nNote that since these files are added in `gitignore` they would not be checked in into primitive/segment's git repo.\n\nAfter creating these files, for running tests associated with the primitive/segment, run\n\n```\nmake check\n```\n\nIf `make check` target is successful, developer is good to commit the code to primitive/segment's git repo.\n\n`make check` target\n\n- runs `terraform commands` to `lint`,`validate` and `plan` terraform code.\n- runs `conftests`. `conftests` make sure `policy` checks are successful.\n- runs `terratest`. This is integration test suit.\n- runs `opa` tests\n\n# Know Issues\nCurrently, the `encrypt at transit` is not supported in terraform. There is an open issue for this logged with Hashicorp - https://github.com/hashicorp/terraform-provider-aws/pull/26987\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.5.0, \u003c= 1.5.5 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | ~\u003e 5.0 |\n\n## Providers\n\nNo providers.\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_lambda_function\"\u003e\u003c/a\u003e [lambda\\_function](#module\\_lambda\\_function) | terraform-aws-modules/lambda/aws | ~\u003e 5.2.0 |\n| \u003ca name=\"module_resource_names\"\u003e\u003c/a\u003e [resource\\_names](#module\\_resource\\_names) | git::https://github.com/launchbynttdata/tf-launch-module_library-resource_name.git | 1.0.0 |\n| \u003ca name=\"module_security_group\"\u003e\u003c/a\u003e [security\\_group](#module\\_security\\_group) | terraform-aws-modules/security-group/aws | ~\u003e 4.17.1 |\n| \u003ca name=\"module_alb\"\u003e\u003c/a\u003e [alb](#module\\_alb) | terraform-aws-modules/alb/aws | ~\u003e 8.6.0 |\n| \u003ca name=\"module_kms_key\"\u003e\u003c/a\u003e [kms\\_key](#module\\_kms\\_key) | terraform-aws-modules/kms/aws | ~\u003e 1.5.0 |\n| \u003ca name=\"module_s3_bucket\"\u003e\u003c/a\u003e [s3\\_bucket](#module\\_s3\\_bucket) | terraform-aws-modules/s3-bucket/aws | ~\u003e 3.10.1 |\n| \u003ca name=\"module_dns_record\"\u003e\u003c/a\u003e [dns\\_record](#module\\_dns\\_record) | git::https://github.com/launchbynttdata/tf-aws-module_primitive-dns_record.git | 1.0.0 |\n| \u003ca name=\"module_acm\"\u003e\u003c/a\u003e [acm](#module\\_acm) | terraform-aws-modules/acm/aws | ~\u003e 4.3.2 |\n| \u003ca name=\"module_eventbridge\"\u003e\u003c/a\u003e [eventbridge](#module\\_eventbridge) | terraform-aws-modules/eventbridge/aws | ~\u003e 3.7 |\n\n## Resources\n\nNo resources.\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_security_group\"\u003e\u003c/a\u003e [security\\_group](#input\\_security\\_group) | Default security group to be attached | \u003cpre\u003eobject({\u003cbr\u003e    ingress_rules            = optional(list(string))\u003cbr\u003e    ingress_cidr_blocks      = optional(list(string))\u003cbr\u003e    ingress_with_cidr_blocks = optional(list(map(string)))\u003cbr\u003e    egress_rules             = optional(list(string))\u003cbr\u003e    egress_cidr_blocks       = optional(list(string))\u003cbr\u003e    egress_with_cidr_blocks  = optional(list(map(string)))\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_zip_file_path\"\u003e\u003c/a\u003e [zip\\_file\\_path](#input\\_zip\\_file\\_path) | Path of the source zip file with respect to module root | `string` | `null` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | Environment in which the resource should be provisioned like dev, qa, prod etc. | `string` | `\"dev\"` | no |\n| \u003ca name=\"input_environment_number\"\u003e\u003c/a\u003e [environment\\_number](#input\\_environment\\_number) | The environment count for the respective environment. Defaults to 000. Increments in value of 1 | `string` | `\"000\"` | no |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | AWS Region in which the infra needs to be provisioned | `string` | `\"us-east-2\"` | no |\n| \u003ca name=\"input_resource_number\"\u003e\u003c/a\u003e [resource\\_number](#input\\_resource\\_number) | The resource count for the respective resource. Defaults to 000. Increments in value of 1 | `string` | `\"000\"` | no |\n| \u003ca name=\"input_logical_product_family\"\u003e\u003c/a\u003e [logical\\_product\\_family](#input\\_logical\\_product\\_family) | (Required) Name of the product family for which the resource is created.\u003cbr\u003e    Example: org\\_name, department\\_name. | `string` | n/a | yes |\n| \u003ca name=\"input_logical_product_service\"\u003e\u003c/a\u003e [logical\\_product\\_service](#input\\_logical\\_product\\_service) | (Required) Name of the product service for which the resource is created.\u003cbr\u003e    For example, backend, frontend, middleware etc. | `string` | n/a | yes |\n| \u003ca name=\"input_resource_names_map\"\u003e\u003c/a\u003e [resource\\_names\\_map](#input\\_resource\\_names\\_map) | A map of key to resource\\_name that will be used by tf-launch-module\\_library-resource\\_name to generate resource names | \u003cpre\u003emap(object(\u003cbr\u003e    {\u003cbr\u003e      name       = string\u003cbr\u003e      max_length = optional(number, 60)\u003cbr\u003e    }\u003cbr\u003e  ))\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"acm\": {\u003cbr\u003e    \"max_length\": 31,\u003cbr\u003e    \"name\": \"acm\"\u003cbr\u003e  },\u003cbr\u003e  \"alb\": {\u003cbr\u003e    \"max_length\": 31,\u003cbr\u003e    \"name\": \"alb\"\u003cbr\u003e  },\u003cbr\u003e  \"alb_http_listener\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"http\"\u003cbr\u003e  },\u003cbr\u003e  \"alb_tg\": {\u003cbr\u003e    \"max_length\": 31,\u003cbr\u003e    \"name\": \"albtg\"\u003cbr\u003e  },\u003cbr\u003e  \"eventbridge_role\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"ebrole\"\u003cbr\u003e  },\u003cbr\u003e  \"function\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"fn\"\u003cbr\u003e  },\u003cbr\u003e  \"s3_kms\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"s3kms\"\u003cbr\u003e  },\u003cbr\u003e  \"s3_logs\": {\u003cbr\u003e    \"max_length\": 63,\u003cbr\u003e    \"name\": \"logs\"\u003cbr\u003e  },\u003cbr\u003e  \"security_group\": {\u003cbr\u003e    \"max_length\": 60,\u003cbr\u003e    \"name\": \"sg\"\u003cbr\u003e  }\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_create_alb\"\u003e\u003c/a\u003e [create\\_alb](#input\\_create\\_alb) | Set false if you do not want to create an ALB with the MQ | `bool` | `true` | no |\n| \u003ca name=\"input_is_internal\"\u003e\u003c/a\u003e [is\\_internal](#input\\_is\\_internal) | Whether this load balancer is internal or public facing | `bool` | `true` | no |\n| \u003ca name=\"input_http_tcp_listeners\"\u003e\u003c/a\u003e [http\\_tcp\\_listeners](#input\\_http\\_tcp\\_listeners) | Ingress rules to be attached to ECS Service Security Group | \u003cpre\u003elist(object({\u003cbr\u003e    port               = number\u003cbr\u003e    protocol           = string\u003cbr\u003e    target_group_index = number\u003cbr\u003e    action_type        = optional(string)\u003cbr\u003e    redirect           = optional(map(string))\u003cbr\u003e  }))\u003c/pre\u003e | \u003cpre\u003e[\u003cbr\u003e  {\u003cbr\u003e    \"action_type\": \"redirect\",\u003cbr\u003e    \"port\": 80,\u003cbr\u003e    \"protocol\": \"HTTP\",\u003cbr\u003e    \"redirect\": {\u003cbr\u003e      \"port\": \"443\",\u003cbr\u003e      \"protocol\": \"HTTPS\",\u003cbr\u003e      \"status_code\": \"HTTP_301\"\u003cbr\u003e    },\u003cbr\u003e    \"target_group_index\": 0\u003cbr\u003e  }\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_load_balancer_type\"\u003e\u003c/a\u003e [load\\_balancer\\_type](#input\\_load\\_balancer\\_type) | The type of the load balancer. Default is 'application' | `string` | `\"application\"` | no |\n| \u003ca name=\"input_target_groups\"\u003e\u003c/a\u003e [target\\_groups](#input\\_target\\_groups) | Egress rules to be attached to ECS Service Security Group | \u003cpre\u003elist(object({\u003cbr\u003e    name        = string\u003cbr\u003e    target_type = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_use_https_listeners\"\u003e\u003c/a\u003e [use\\_https\\_listeners](#input\\_use\\_https\\_listeners) | Set true if you want to use HTTPS and a private cert | `bool` | `true` | no |\n| \u003ca name=\"input_create_dns\"\u003e\u003c/a\u003e [create\\_dns](#input\\_create\\_dns) | Set false if you do not want to create a DNS record for the ALBs | `bool` | `true` | no |\n| \u003ca name=\"input_zone_id\"\u003e\u003c/a\u003e [zone\\_id](#input\\_zone\\_id) | Zone ID of the hosted zone. Conflicts with zone\\_name | `string` | `null` | no |\n| \u003ca name=\"input_zone_name\"\u003e\u003c/a\u003e [zone\\_name](#input\\_zone\\_name) | DNS Hosted zone in this record for this cluster will be created. Required when create\\_custom\\_dns\\_record=true | `string` | `\"test10534.demo.local\"` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | The VPC ID of the VPC where infrastructure will be provisioned | `string` | `null` | no |\n| \u003ca name=\"input_create_security_group\"\u003e\u003c/a\u003e [create\\_security\\_group](#input\\_create\\_security\\_group) | Set false if you do not want to create a security group (no VPC) | `bool` | `true` | no |\n| \u003ca name=\"input_create_package\"\u003e\u003c/a\u003e [create\\_package](#input\\_create\\_package) | Controls whether Lambda package should be created | `bool` | `false` | no |\n| \u003ca name=\"input_create_lambda_function_url\"\u003e\u003c/a\u003e [create\\_lambda\\_function\\_url](#input\\_create\\_lambda\\_function\\_url) | Controls whether the Lambda Function URL resource should be created | `bool` | `true` | no |\n| \u003ca name=\"input_block_public_acls\"\u003e\u003c/a\u003e [block\\_public\\_acls](#input\\_block\\_public\\_acls) | Whether Amazon S3 should block public ACLs for this bucket. | `bool` | `true` | no |\n| \u003ca name=\"input_block_public_policy\"\u003e\u003c/a\u003e [block\\_public\\_policy](#input\\_block\\_public\\_policy) | Whether Amazon S3 should block public bucket policies for this bucket. | `bool` | `true` | no |\n| \u003ca name=\"input_ignore_public_acls\"\u003e\u003c/a\u003e [ignore\\_public\\_acls](#input\\_ignore\\_public\\_acls) | Whether Amazon S3 should ignore public ACLs for this bucket. | `bool` | `true` | no |\n| \u003ca name=\"input_kms_s3_key_arn\"\u003e\u003c/a\u003e [kms\\_s3\\_key\\_arn](#input\\_kms\\_s3\\_key\\_arn) | ARN of the AWS S3 key used for S3 bucket encryption | `string` | `null` | no |\n| \u003ca name=\"input_kms_s3_key_sse_algorithm\"\u003e\u003c/a\u003e [kms\\_s3\\_key\\_sse\\_algorithm](#input\\_kms\\_s3\\_key\\_sse\\_algorithm) | Server-side encryption algorithm to use. Valid values are AES256 and aws:kms | `string` | `\"aws:kms\"` | no |\n| \u003ca name=\"input_restrict_public_buckets\"\u003e\u003c/a\u003e [restrict\\_public\\_buckets](#input\\_restrict\\_public\\_buckets) | Whether Amazon S3 should restrict public bucket policies for this bucket. | `bool` | `true` | no |\n| \u003ca name=\"input_authorization_type\"\u003e\u003c/a\u003e [authorization\\_type](#input\\_authorization\\_type) | The type of authentication that the Lambda Function URL uses. Set to 'AWS\\_IAM' to restrict access to authenticated IAM users only. Set to 'NONE' to bypass IAM authentication and create a public endpoint. | `string` | `\"NONE\"` | no |\n| \u003ca name=\"input_cors\"\u003e\u003c/a\u003e [cors](#input\\_cors) | CORS settings to be used by the Lambda Function URL | `any` | `{}` | no |\n| \u003ca name=\"input_invoke_mode\"\u003e\u003c/a\u003e [invoke\\_mode](#input\\_invoke\\_mode) | Invoke mode of the Lambda Function URL. Valid values are BUFFERED (default) and RESPONSE\\_STREAM. | `string` | `null` | no |\n| \u003ca name=\"input_lambda_at_edge\"\u003e\u003c/a\u003e [lambda\\_at\\_edge](#input\\_lambda\\_at\\_edge) | Set this to true if using Lambda@Edge, to enable publishing, limit the timeout, and allow edgelambda.amazonaws.com to invoke the function | `bool` | `false` | no |\n| \u003ca name=\"input_handler\"\u003e\u003c/a\u003e [handler](#input\\_handler) | Lambda Function entrypoint in your code | `string` | `\"index.lambda_handler\"` | no |\n| \u003ca name=\"input_runtime\"\u003e\u003c/a\u003e [runtime](#input\\_runtime) | Lambda Function runtime | `string` | `\"python3.9\"` | no |\n| \u003ca name=\"input_description\"\u003e\u003c/a\u003e [description](#input\\_description) | Description of your Lambda Function | `string` | `\"\"` | no |\n| \u003ca name=\"input_memory_size\"\u003e\u003c/a\u003e [memory\\_size](#input\\_memory\\_size) | Amount of memory in MB your Lambda Function can use at runtime. Valid value between 128 MB to 10,240 MB (10 GB), in 64 MB increments. | `number` | `128` | no |\n| \u003ca name=\"input_ephemeral_storage_size\"\u003e\u003c/a\u003e [ephemeral\\_storage\\_size](#input\\_ephemeral\\_storage\\_size) | Amount of ephemeral storage (/tmp) in MB your Lambda Function can use at runtime. Valid value between 512 MB to 10,240 MB (10 GB). | `number` | `512` | no |\n| \u003ca name=\"input_publish\"\u003e\u003c/a\u003e [publish](#input\\_publish) | Whether to publish creation/change as new Lambda Function Version. | `bool` | `true` | no |\n| \u003ca name=\"input_timeout\"\u003e\u003c/a\u003e [timeout](#input\\_timeout) | The amount of time your Lambda Function has to run in seconds. | `number` | `3` | no |\n| \u003ca name=\"input_dead_letter_target_arn\"\u003e\u003c/a\u003e [dead\\_letter\\_target\\_arn](#input\\_dead\\_letter\\_target\\_arn) | The ARN of an SNS topic or SQS queue to notify when an invocation fails. | `string` | `null` | no |\n| \u003ca name=\"input_environment_variables\"\u003e\u003c/a\u003e [environment\\_variables](#input\\_environment\\_variables) | A map that defines environment variables for the Lambda Function. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_vpc_subnet_ids\"\u003e\u003c/a\u003e [vpc\\_subnet\\_ids](#input\\_vpc\\_subnet\\_ids) | List of subnet ids when Lambda Function should run in the VPC. Usually private or intra subnets. | `list(string)` | `null` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags to assign to resources. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_attach_dead_letter_policy\"\u003e\u003c/a\u003e [attach\\_dead\\_letter\\_policy](#input\\_attach\\_dead\\_letter\\_policy) | Controls whether SNS/SQS dead letter notification policy should be added to IAM role for Lambda Function | `bool` | `false` | no |\n| \u003ca name=\"input_attach_network_policy\"\u003e\u003c/a\u003e [attach\\_network\\_policy](#input\\_attach\\_network\\_policy) | Controls whether VPC/network policy should be added to IAM role for Lambda Function | `bool` | `true` | no |\n| \u003ca name=\"input_attach_policy_json\"\u003e\u003c/a\u003e [attach\\_policy\\_json](#input\\_attach\\_policy\\_json) | Controls whether policy\\_json should be added to IAM role for Lambda Function | `bool` | `false` | no |\n| \u003ca name=\"input_attach_policies\"\u003e\u003c/a\u003e [attach\\_policies](#input\\_attach\\_policies) | Controls whether list of policies should be added to IAM role for Lambda Function | `bool` | `false` | no |\n| \u003ca name=\"input_number_of_policies\"\u003e\u003c/a\u003e [number\\_of\\_policies](#input\\_number\\_of\\_policies) | Number of policies to attach to IAM role for Lambda Function | `number` | `0` | no |\n| \u003ca name=\"input_trusted_entities\"\u003e\u003c/a\u003e [trusted\\_entities](#input\\_trusted\\_entities) | List of additional trusted entities for assuming Lambda Function role (trust relationship) | `any` | `[]` | no |\n| \u003ca name=\"input_policy_json\"\u003e\u003c/a\u003e [policy\\_json](#input\\_policy\\_json) | An additional policy document as JSON to attach to the Lambda Function role | `string` | `null` | no |\n| \u003ca name=\"input_policies\"\u003e\u003c/a\u003e [policies](#input\\_policies) | List of policy statements ARN to attach to Lambda Function role | `list(string)` | `[]` | no |\n| \u003ca name=\"input_s3_prefix\"\u003e\u003c/a\u003e [s3\\_prefix](#input\\_s3\\_prefix) | Directory name where artifacts should be stored in the S3 bucket. If unset, the path from `artifacts_dir` is used | `string` | `null` | no |\n| \u003ca name=\"input_ignore_source_code_hash\"\u003e\u003c/a\u003e [ignore\\_source\\_code\\_hash](#input\\_ignore\\_source\\_code\\_hash) | Whether to ignore changes to the function's source code hash. Set to true if you manage infrastructure and code deployments separately. | `bool` | `false` | no |\n| \u003ca name=\"input_s3_existing_package\"\u003e\u003c/a\u003e [s3\\_existing\\_package](#input\\_s3\\_existing\\_package) | The S3 bucket object with keys bucket, key, version pointing to an existing zip-file to use | `map(string)` | `null` | no |\n| \u003ca name=\"input_store_on_s3\"\u003e\u003c/a\u003e [store\\_on\\_s3](#input\\_store\\_on\\_s3) | Whether to store produced artifacts on S3 or locally. | `bool` | `false` | no |\n| \u003ca name=\"input_s3_bucket\"\u003e\u003c/a\u003e [s3\\_bucket](#input\\_s3\\_bucket) | S3 bucket to store artifacts | `string` | `null` | no |\n| \u003ca name=\"input_source_path\"\u003e\u003c/a\u003e [source\\_path](#input\\_source\\_path) | The absolute path to a local file or directory containing your Lambda source code | `any` | `null` | no |\n| \u003ca name=\"input_hash_extra\"\u003e\u003c/a\u003e [hash\\_extra](#input\\_hash\\_extra) | The string to add into hashing function. Useful when building same source path for different functions. | `string` | `\"\"` | no |\n| \u003ca name=\"input_create_schedule\"\u003e\u003c/a\u003e [create\\_schedule](#input\\_create\\_schedule) | Enable scheduling for the lambda to run at a certain frequency. | `bool` | `false` | no |\n| \u003ca name=\"input_lambda_schedule_expression\"\u003e\u003c/a\u003e [lambda\\_schedule\\_expression](#input\\_lambda\\_schedule\\_expression) | Schedule expression to determine lambda frequency. Supports one-time schedule and recurring schedules, see https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html for specifics. | `string` | `null` | no |\n| \u003ca name=\"input_lambda_schedule_timezone\"\u003e\u003c/a\u003e [lambda\\_schedule\\_timezone](#input\\_lambda\\_schedule\\_timezone) | IANA Timezone for the schedule expression. Defaults to America/New\\_York. | `string` | `\"America/New_York\"` | no |\n| \u003ca name=\"input_lambda_schedule_payload\"\u003e\u003c/a\u003e [lambda\\_schedule\\_payload](#input\\_lambda\\_schedule\\_payload) | An optional payload to use when invoking the lambda function through EventBridge | `map(any)` | `{}` | no |\n| \u003ca name=\"input_lambda_layers\"\u003e\u003c/a\u003e [lambda\\_layers](#input\\_lambda\\_layers) | (Optional) List of ARNs of Lambda Layers to include with this function, up to a maximum of 5. | `list(string)` | `null` | no |\n| \u003ca name=\"input_architectures\"\u003e\u003c/a\u003e [architectures](#input\\_architectures) | (Optional) Instruction set architecture for your Lambda function. Valid architectures are x86\\_64 (default) and arm64. | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"x86_64\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_attach_tracing_policy\"\u003e\u003c/a\u003e [attach\\_tracing\\_policy](#input\\_attach\\_tracing\\_policy) | Controls whether X-Ray tracing policy should be added to the IAM role for this Lambda function. | `bool` | `false` | no |\n| \u003ca name=\"input_tracing_mode\"\u003e\u003c/a\u003e [tracing\\_mode](#input\\_tracing\\_mode) | (Optional) Tracing mode for your Lambda function. Valid tracing modes are `PassThrough` and `Active`. | `string` | `null` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_lambda_function_arn\"\u003e\u003c/a\u003e [lambda\\_function\\_arn](#output\\_lambda\\_function\\_arn) | The ARN of the Lambda Function |\n| \u003ca name=\"output_lambda_function_arn_static\"\u003e\u003c/a\u003e [lambda\\_function\\_arn\\_static](#output\\_lambda\\_function\\_arn\\_static) | The static ARN of the Lambda Function. Use this to avoid cycle errors between resources (e.g., Step Functions) |\n| \u003ca name=\"output_lambda_function_invoke_arn\"\u003e\u003c/a\u003e [lambda\\_function\\_invoke\\_arn](#output\\_lambda\\_function\\_invoke\\_arn) | The Invoke ARN of the Lambda Function |\n| \u003ca name=\"output_lambda_function_name\"\u003e\u003c/a\u003e [lambda\\_function\\_name](#output\\_lambda\\_function\\_name) | The name of the Lambda Function |\n| \u003ca name=\"output_lambda_function_qualified_arn\"\u003e\u003c/a\u003e [lambda\\_function\\_qualified\\_arn](#output\\_lambda\\_function\\_qualified\\_arn) | The ARN identifying your Lambda Function Version |\n| \u003ca name=\"output_lambda_function_version\"\u003e\u003c/a\u003e [lambda\\_function\\_version](#output\\_lambda\\_function\\_version) | Latest published version of Lambda Function |\n| \u003ca name=\"output_lambda_function_last_modified\"\u003e\u003c/a\u003e [lambda\\_function\\_last\\_modified](#output\\_lambda\\_function\\_last\\_modified) | The date Lambda Function resource was last modified |\n| \u003ca name=\"output_lambda_function_kms_key_arn\"\u003e\u003c/a\u003e [lambda\\_function\\_kms\\_key\\_arn](#output\\_lambda\\_function\\_kms\\_key\\_arn) | The ARN for the KMS encryption key of Lambda Function |\n| \u003ca name=\"output_lambda_function_source_code_hash\"\u003e\u003c/a\u003e [lambda\\_function\\_source\\_code\\_hash](#output\\_lambda\\_function\\_source\\_code\\_hash) | Base64-encoded representation of raw SHA-256 sum of the zip file |\n| \u003ca name=\"output_lambda_function_source_code_size\"\u003e\u003c/a\u003e [lambda\\_function\\_source\\_code\\_size](#output\\_lambda\\_function\\_source\\_code\\_size) | The size in bytes of the function .zip file |\n| \u003ca name=\"output_lambda_function_url\"\u003e\u003c/a\u003e [lambda\\_function\\_url](#output\\_lambda\\_function\\_url) | The URL of the Lambda Function URL |\n| \u003ca name=\"output_lambda_function_url_id\"\u003e\u003c/a\u003e [lambda\\_function\\_url\\_id](#output\\_lambda\\_function\\_url\\_id) | The Lambda Function URL generated id |\n| \u003ca name=\"output_lambda_layer_arn\"\u003e\u003c/a\u003e [lambda\\_layer\\_arn](#output\\_lambda\\_layer\\_arn) | The ARN of the Lambda Layer with version |\n| \u003ca name=\"output_lambda_layer_layer_arn\"\u003e\u003c/a\u003e [lambda\\_layer\\_layer\\_arn](#output\\_lambda\\_layer\\_layer\\_arn) | The ARN of the Lambda Layer without version |\n| \u003ca name=\"output_lambda_layer_created_date\"\u003e\u003c/a\u003e [lambda\\_layer\\_created\\_date](#output\\_lambda\\_layer\\_created\\_date) | The date Lambda Layer resource was created |\n| \u003ca name=\"output_lambda_layer_source_code_size\"\u003e\u003c/a\u003e [lambda\\_layer\\_source\\_code\\_size](#output\\_lambda\\_layer\\_source\\_code\\_size) | The size in bytes of the Lambda Layer .zip file |\n| \u003ca name=\"output_lambda_layer_version\"\u003e\u003c/a\u003e [lambda\\_layer\\_version](#output\\_lambda\\_layer\\_version) | The Lambda Layer version |\n| \u003ca name=\"output_lambda_role_arn\"\u003e\u003c/a\u003e [lambda\\_role\\_arn](#output\\_lambda\\_role\\_arn) | The ARN of the IAM role created for the Lambda Function |\n| \u003ca name=\"output_lambda_role_name\"\u003e\u003c/a\u003e [lambda\\_role\\_name](#output\\_lambda\\_role\\_name) | The name of the IAM role created for the Lambda Function |\n| \u003ca name=\"output_lambda_cloudwatch_log_group_arn\"\u003e\u003c/a\u003e [lambda\\_cloudwatch\\_log\\_group\\_arn](#output\\_lambda\\_cloudwatch\\_log\\_group\\_arn) | The ARN of the Cloudwatch Log Group |\n| \u003ca name=\"output_local_filename\"\u003e\u003c/a\u003e [local\\_filename](#output\\_local\\_filename) | The filename of zip archive deployed (if deployment was from local) |\n| \u003ca name=\"output_s3_object\"\u003e\u003c/a\u003e [s3\\_object](#output\\_s3\\_object) | The map with S3 object data of zip archive deployed (if deployment was from S3) |\n| \u003ca name=\"output_record_fqdns\"\u003e\u003c/a\u003e [record\\_fqdns](#output\\_record\\_fqdns) | FQDNs of the Route53 private DNS record(if enabled) |\n| \u003ca name=\"output_record_names\"\u003e\u003c/a\u003e [record\\_names](#output\\_record\\_names) | Record names of the Route53 private DNS record (if enabled) |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchbynttdata%2Ftf-aws-module_collection-lambda_function","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaunchbynttdata%2Ftf-aws-module_collection-lambda_function","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchbynttdata%2Ftf-aws-module_collection-lambda_function/lists"}