{"id":20338241,"url":"https://github.com/openclassrooms/terraform-aws-lambda-apigw-module","last_synced_at":"2025-03-04T14:27:57.644Z","repository":{"id":42990524,"uuid":"441209236","full_name":"OpenClassrooms/terraform-aws-lambda-apigw-module","owner":"OpenClassrooms","description":"Terraform module to provision one or more API on AWS API Gateway (REST). It provide ability to protect APIs with api keys and calls are redirected to AWS Lambda","archived":false,"fork":false,"pushed_at":"2024-07-18T15:46:59.000Z","size":53,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-01T14:46:43.564Z","etag":null,"topics":["api-gateway","aws","lambda","serverless","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/OpenClassrooms/lambda-apigw-module/aws/latest","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenClassrooms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-23T14:43:21.000Z","updated_at":"2024-12-18T17:53:20.000Z","dependencies_parsed_at":"2023-11-16T10:27:20.357Z","dependency_job_id":"c47c62af-df97-4b94-952e-577e9035504d","html_url":"https://github.com/OpenClassrooms/terraform-aws-lambda-apigw-module","commit_stats":null,"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenClassrooms%2Fterraform-aws-lambda-apigw-module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenClassrooms%2Fterraform-aws-lambda-apigw-module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenClassrooms%2Fterraform-aws-lambda-apigw-module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenClassrooms%2Fterraform-aws-lambda-apigw-module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenClassrooms","download_url":"https://codeload.github.com/OpenClassrooms/terraform-aws-lambda-apigw-module/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241863384,"owners_count":20032971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api-gateway","aws","lambda","serverless","terraform","terraform-module"],"created_at":"2024-11-14T21:12:10.298Z","updated_at":"2025-03-04T14:27:57.613Z","avatar_url":"https://github.com/OpenClassrooms.png","language":"HCL","readme":"# AWS API Gateway (REST) Terraform module\n\nTerraform module which provision API Gateway.\n\n## Usage\n\n### API Gateway\n\n```hcl\nmodule \"my_example_module\" {\n  source                           = \"../\" # in this example, this is a local module. For real use, source will be \"OpenClassrooms/lambda-apigw-module/aws\"\n  lambda_project_name              = \"test\"\n  lambda_script_name               = \"main\"\n  lambda_handler                   = \"main\"\n  lambda_runtime                   = \"python3.8\"\n  lambda_code_repo                 = \"https://github.com/xxx/myrepo\"\n  lambda_codebase_bucket           = aws_s3_bucket.my-lambda-codebase-bucket.bucket\n  lambda_cloudwatch_logs_retention = 7\n  environment_variables = {\n    \"staging\" = {\n      MY_GREAT_VARIABLE = \"bob\",\n    }\n    \"production\" = {\n      MY_GREAT_VARIABLE = \"alice\",\n    }\n  }\n  use_api_gateway                       = true\n  use_api_gateway_api_key               = true\n  store_api_keys_in_ssm                 = true\n  api_gateway_domain_name_mapping       = var.apigw_domain_name_mapping\n  api_gateway_path                      = \"mypath\"\n  api_gateway_stages                    = [\"production\", \"staging\"]\n  api_gateway_cloudwatch_logs_retention = 7\n  send_logs_to_newrelic                 = true\n  newrelic_log_ingestion_function_arn   = \"xxx\"\n  scheduling_enabled                    = true\n  scheduling_config = {\n    \"every_ten_minutes\" = {\n      scheduling_expression = \"cron(*/10 * * * ? *)\",\n      input                 = \"{\\\"foo\\\":{\\\"bar\\\": [1,2]}}\"\n    }\n    \"every_ten_minutes_plus_one\" = {\n      scheduling_expression = \"cron(1/10 * * * ? *)\",\n      input                 = \"{\\\"foo2\\\":{\\\"bar2\\\": [3,4]}}\"\n    }\n  }\n  tags = var.tags\n}\n\n```\n\n## Example\n\n[Complete example](https://github.com/OpenClassrooms/terraform-aws-lambda-apigw-module/blob/master/example/main.tf) - Create API Gateway, lambda, domain name, stage and other resources in various combinations\n\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.1.2 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 3.70.0 |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenclassrooms%2Fterraform-aws-lambda-apigw-module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenclassrooms%2Fterraform-aws-lambda-apigw-module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenclassrooms%2Fterraform-aws-lambda-apigw-module/lists"}