You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+108Lines changed: 108 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -96,3 +96,111 @@ Terraform module for creating skeleton lambda and the github actions oidc AWS IA
96
96
| <aname="output_lambda_role_name"></a> [lambda\_role\_name](#output\_lambda\_role\_name)| The name of the IAM role created for the Lambda Function |
97
97
| <aname="output_lambda_role_unique_id"></a> [lambda\_role\_unique\_id](#output\_lambda\_role\_unique\_id)| The unique id of the IAM role created for the Lambda Function |
98
98
<!-- END_TF_DOCS -->
99
+
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
|[archive_file.dummy](https://registry.terraform.io/providers/hashicorp/archive/latest/docs/data-sources/file)| data source |
129
+
|[aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity)| data source |
130
+
|[aws_iam_openid_connect_provider.github](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_openid_connect_provider)| data source |
131
+
|[aws_iam_policy_document.update_lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document)| data source |
132
+
|[aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region)| data source |
133
+
134
+
## Inputs
135
+
136
+
| Name | Description | Type | Default | Required |
| <aname="input_allowed_triggers"></a> [allowed\_triggers](#input\_allowed\_triggers)| Map of allowed triggers to create Lambda permissions |`map(any)`|`{}`| no |
139
+
| <aname="input_architectures"></a> [architectures](#input\_architectures)| Instruction set architecture for your Lambda function. Valid values are ["x86\_64"] and ["arm64"]. |`list(string)`|`null`| no |
140
+
| <aname="input_attach_network_policy"></a> [attach\_network\_policy](#input\_attach\_network\_policy)| Flag to attach network policy to use VPC subnet and security group |`bool`|`false`| no |
141
+
| <aname="input_attach_policies"></a> [attach\_policies](#input\_attach\_policies)| controls whether AWS managed policies should be added to IAM role for Lambda Function (e.g AWSLambdaBasicExecutionRole) |`bool`|`false`| no |
142
+
| <aname="input_attach_policy_json"></a> [attach\_policy\_json](#input\_attach\_policy\_json)| Controls whether policy\_json should be added to IAM role for Lambda Function |`bool`|`false`| no |
143
+
| <aname="input_attach_policy_jsons"></a> [attach\_policy\_jsons](#input\_attach\_policy\_jsons)| Controls whether policy\_jsons should be added to IAM role for Lambda Function |`bool`|`false`| no |
144
+
| <aname="input_attach_policy_statements"></a> [attach\_policy\_statements](#input\_attach\_policy\_statements)| Controls whether policy\_jsons should be added to IAM role for Lambda Function |`bool`|`false`| no |
145
+
| <aname="input_authorization_type"></a> [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 |
146
+
| <aname="input_cloudwatch_logs_retention_in_days"></a> [cloudwatch\_logs\_retention\_in\_days](#input\_cloudwatch\_logs\_retention\_in\_days)| Number of days the cloudwatch logs will be retained. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653. |`number`|`7`| no |
147
+
| <aname="input_code_signing_config_arn"></a> [code\_signing\_config\_arn](#input\_code\_signing\_config\_arn)| Amazon Resource Name (ARN) for a Code Signing Configuration |`string`|`null`| no |
148
+
| <aname="input_cors"></a> [cors](#input\_cors)| CORS settings to be used by the Lambda Function URL |`any`|`{}`| no |
149
+
| <aname="input_create_current_version_allowed_triggers"></a> [create\_current\_version\_allowed\_triggers](#input\_create\_current\_version\_allowed\_triggers)| Whether to allow triggers on current version of Lambda Function (this will revoke permissions from previous version because Terraform manages only current resources) |`bool`|`true`| no |
150
+
| <aname="input_create_github_actions_oidc_provider"></a> [create\_github\_actions\_oidc\_provider](#input\_create\_github\_actions\_oidc\_provider)| Controls Whether to create openid connect provider. |`bool`|`false`| no |
151
+
| <aname="input_create_github_actions_role"></a> [create\_github\_actions\_role](#input\_create\_github\_actions\_role)| Controls whether to create AWS OIDC integration GitHub Actions |`bool`|`true`| no |
152
+
| <aname="input_create_lambda_function_url"></a> [create\_lambda\_function\_url](#input\_create\_lambda\_function\_url)| Controls whether the Lambda Function URL resource should be created |`bool`|`false`| no |
153
+
| <aname="input_create_unqualified_alias_lambda_function_url"></a> [create\_unqualified\_alias\_lambda\_function\_url](#input\_create\_unqualified\_alias\_lambda\_function\_url)| Whether to use unqualified alias pointing to $LATEST version in Lambda Function URL |`bool`|`true`| no |
154
+
| <aname="input_dead_letter_target_arn"></a> [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 |
155
+
| <aname="input_default_conditions"></a> [default\_conditions](#input\_default\_conditions)| (Optional) Default condtions to apply, at least one of the following is madatory: 'allow\_main', 'allow\_environment', 'deny\_pull\_request' and 'allow\_all'. |`list(string)`| <pre>[<br> "allow_main",<br> "allow_environment"<br>]</pre> | no |
156
+
| <aname="input_description"></a> [description](#input\_description)| Lambda Function Description |`string`|`""`| no |
157
+
| <aname="input_environment_variables"></a> [environment\_variables](#input\_environment\_variables)| A map that defines environment variables for the Lambda Function. |`map(string)`|`{}`| no |
158
+
| <aname="input_ephemeral_storage_size"></a> [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 |
159
+
| <aname="input_function_name"></a> [function\_name](#input\_function\_name)| Lambda Function Name |`string`| n/a | yes |
160
+
| <aname="input_function_prefix"></a> [function\_prefix](#input\_function\_prefix)| Prefix for the IAM role for lambda functions |`string`|`""`| no |
161
+
| <aname="input_github_repo"></a> [github\_repo](#input\_github\_repo)| GitHub repo to grant access to assume a role via OIDC. | <pre>object({<br> repo = string<br> branches = optional(list(string), [])<br> environments = optional(list(string), ["*"])<br><br> # Custom Role name. It will autocreate based on repo if not provided<br> role_name = optional(string)<br> })</pre> | n/a | yes |
162
+
| <aname="input_handler"></a> [handler](#input\_handler)| Lambda Function Index Handler |`string`|`"index.handler"`| no |
163
+
| <aname="input_image_config_command"></a> [image\_config\_command](#input\_image\_config\_command)| The CMD for the docker image |`list(string)`|`[]`| no |
164
+
| <aname="input_image_config_entry_point"></a> [image\_config\_entry\_point](#input\_image\_config\_entry\_point)| The ENTRYPOINT for the docker image |`list(string)`|`[]`| no |
165
+
| <aname="input_image_config_working_directory"></a> [image\_config\_working\_directory](#input\_image\_config\_working\_directory)| The working directory for the docker image |`string`|`null`| no |
166
+
| <aname="input_image_uri"></a> [image\_uri](#input\_image\_uri)| The ECR image URI containing the function's deployment package. |`string`|`null`| no |
167
+
| <aname="input_kms_key_arn"></a> [kms\_key\_arn](#input\_kms\_key\_arn)| The ARN of KMS key to use by your Lambda Function |`string`|`null`| no |
168
+
| <aname="input_lambda_at_edge"></a> [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 |
169
+
| <aname="input_lambda_role"></a> [lambda\_role](#input\_lambda\_role)| IAM role ARN attached to the Lambda Function. This governs both who / what can invoke your Lambda Function, as well as what resources our Lambda Function has access to. See Lambda Permission Model for more details. |`string`|`""`| no |
170
+
| <aname="input_layers"></a> [layers](#input\_layers)| List of Lambda Layer Version ARNs (maximum of 5) to attach to your Lambda Function. |`list(string)`|`null`| no |
171
+
| <aname="input_managed_policy_arns"></a> [managed\_policy\_arns](#input\_managed\_policy\_arns)| list of AWS managed policies to attach to IAM role for Lambda Function |`list(string)`|`null`| no |
172
+
| <aname="input_memory_size"></a> [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 |
173
+
| <aname="input_number_of_managed_policies"></a> [number\_of\_managed\_policies](#input\_number\_of\_managed\_policies)| number of AWS managed policies to attach to IAM role for Lambda Function |`number`|`0`| no |
174
+
| <aname="input_number_of_policy_jsons"></a> [number\_of\_policy\_jsons](#input\_number\_of\_policy\_jsons)| Number of policies JSON to attach to IAM role for Lambda Function |`number`|`0`| no |
175
+
| <aname="input_package_type"></a> [package\_type](#input\_package\_type)| The Lambda deployment package type. Valid options: Zip or Image |`string`|`"Zip"`| no |
176
+
| <aname="input_policy_json"></a> [policy\_json](#input\_policy\_json)| An additional policy document as JSON to attach to the Lambda Function role |`string`|`null`| no |
177
+
| <aname="input_policy_jsons"></a> [policy\_jsons](#input\_policy\_jsons)| List of additional policies for the lambda execution |`list(string)`|`[]`| no |
| <aname="input_publish"></a> [publish](#input\_publish)| Whether to publish creation/change as new Lambda Function Version. |`bool`|`false`| no |
180
+
| <aname="input_reserved_concurrent_executions"></a> [reserved\_concurrent\_executions](#input\_reserved\_concurrent\_executions)| The amount of reserved concurrent executions for this Lambda Function. A value of 0 disables Lambda Function from being triggered and -1 removes any concurrency limitations. Defaults to Unreserved Concurrency Limits -1. |`number`|`-1`| no |
181
+
| <aname="input_role_name"></a> [role\_name](#input\_role\_name)| Name of IAM role to use for Lambda Function. |`string`|`null`| no |
182
+
| <aname="input_runtime"></a> [runtime](#input\_runtime)| Lambda Function runtime |`string`|`"nodejs18.x"`| no |
183
+
| <aname="input_snap_start"></a> [snap\_start](#input\_snap\_start)| (Optional) Snap start settings for low-latency startups |`bool`|`false`| no |
184
+
| <aname="input_timeout"></a> [timeout](#input\_timeout)| The amount of time your Lambda Function has to run in seconds. |`number`|`3`| no |
185
+
| <aname="input_tracing_mode"></a> [tracing\_mode](#input\_tracing\_mode)| Tracing mode of the Lambda Function. Valid value can be either PassThrough or Active. |`string`|`null`| no |
186
+
| <aname="input_vpc_security_group_ids"></a> [vpc\_security\_group\_ids](#input\_vpc\_security\_group\_ids)| List of security group ids when Lambda Function should run in the VPC. |`list(string)`|`null`| no |
187
+
| <aname="input_vpc_subnet_ids"></a> [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 |
188
+
189
+
## Outputs
190
+
191
+
| Name | Description |
192
+
|------|-------------|
193
+
| <aname="output_function_url"></a> [function\_url](#output\_function\_url)| The function url of lambda function to be able to be set as cloudfront origin |
194
+
| <aname="output_function_url_id"></a> [function\_url\_id](#output\_function\_url\_id)| The function url ID of lambda function to be able to be set as cloudfront origin |
195
+
| <aname="output_invoke_arn"></a> [invoke\_arn](#output\_invoke\_arn)| The invoke arn of lambda function for APIGW integration |
196
+
| <aname="output_lambda_cloudwatch_log_group_arn"></a> [lambda\_cloudwatch\_log\_group\_arn](#output\_lambda\_cloudwatch\_log\_group\_arn)| Lambda Cloudwatch Log group |
197
+
| <aname="output_lambda_cloudwatch_log_group_name"></a> [lambda\_cloudwatch\_log\_group\_name](#output\_lambda\_cloudwatch\_log\_group\_name)| Lambda Cloudwatch Log group |
198
+
| <aname="output_lambda_function_arn"></a> [lambda\_function\_arn](#output\_lambda\_function\_arn)| Lambda Function ARN |
199
+
| <aname="output_lambda_function_name"></a> [lambda\_function\_name](#output\_lambda\_function\_name)| Lambda Function Name |
200
+
| <aname="output_lambda_function_version"></a> [lambda\_function\_version](#output\_lambda\_function\_version)| Latest published version of Lambda Function |
201
+
| <aname="output_lambda_role_arn"></a> [lambda\_role\_arn](#output\_lambda\_role\_arn)| ARN of the IAM role created for the Lambda Function |
202
+
| <aname="output_lambda_role_name"></a> [lambda\_role\_name](#output\_lambda\_role\_name)| The name of the IAM role created for the Lambda Function |
203
+
| <aname="output_lambda_role_unique_id"></a> [lambda\_role\_unique\_id](#output\_lambda\_role\_unique\_id)| The unique id of the IAM role created for the Lambda Function |
204
+
| <aname="output_lamda_gha_role_name"></a> [lamda\_gha\_role\_name](#output\_lamda\_gha\_role\_name)| The crated role that can be assumed for the configured repository. |
205
+
| <aname="output_qualified_arn"></a> [qualified\_arn](#output\_qualified\_arn)| The qualified arn of the lambda function to be associated with Cloudfront as a Lambda@Edge function |
0 commit comments