{"id":19206644,"url":"https://github.com/horothesun/api-gateway-lambda-infra","last_synced_at":"2026-04-20T04:06:14.790Z","repository":{"id":111717717,"uuid":"580972537","full_name":"horothesun/api-gateway-lambda-infra","owner":"horothesun","description":"API Gateway triggered Lambda infrastructure.","archived":false,"fork":false,"pushed_at":"2025-01-25T11:32:30.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T12:23:58.545Z","etag":null,"topics":["aws","aws-api-gateway","aws-api-gateway-v2","aws-apigateway","aws-apigw","aws-lambda","ci","infra","infrastructure","infrastructure-as-code","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/horothesun.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-21T23:40:04.000Z","updated_at":"2025-01-25T11:32:34.000Z","dependencies_parsed_at":"2023-03-13T13:34:10.332Z","dependency_job_id":"b11a9693-5a34-48ec-aedc-af4bbf8cbdcd","html_url":"https://github.com/horothesun/api-gateway-lambda-infra","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horothesun%2Fapi-gateway-lambda-infra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horothesun%2Fapi-gateway-lambda-infra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horothesun%2Fapi-gateway-lambda-infra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horothesun%2Fapi-gateway-lambda-infra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/horothesun","download_url":"https://codeload.github.com/horothesun/api-gateway-lambda-infra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240280824,"owners_count":19776414,"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":["aws","aws-api-gateway","aws-api-gateway-v2","aws-apigateway","aws-apigw","aws-lambda","ci","infra","infrastructure","infrastructure-as-code","terraform","terraform-module"],"created_at":"2024-11-09T13:16:32.007Z","updated_at":"2026-04-20T04:06:09.753Z","avatar_url":"https://github.com/horothesun.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API Gateway triggered Lambda infrastructure\n\n[![CI](https://github.com/horothesun/api-gateway-lambda-infra/actions/workflows/ci.yml/badge.svg)](https://github.com/horothesun/api-gateway-lambda-infra/actions/workflows/ci.yml)\n[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg?style=flat-square)](https://renovatebot.com)\n[![Mergify enabled](https://img.shields.io/badge/Mergify-enabled-success.svg?style=flat-square\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjA8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjMyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgICA8cmRmOkJhZy8+CiAgICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTktMDUtMjRUMTg6MDU6MjQ8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPlBpeGVsbWF0b3IgMy44LjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpNRBfcAAAXOSURBVFgJxVddbFRFFD4z9+5PS3+E2pTyU6CitfxoUCSiDyRoVEjUh4bKkxbwzcSo8S8oMYRoYnw0PviAFDQRIZgYE4PRkGhihIJgkLZUKlQEC9SltNt0u3v//L5p73bb3aWURDnZuzN35pzznXPmzJm5SqZBi79JVNhDyaXK0itUIC2ByAMUVyJHAyWtgeefcMvK27vXVw3eqFrITk2NBy48qJQ8FwTB4xIEi3QkLoHn4HGNsLJsUVZEfGcE1qhzSqlvg0B2dzbNOzyV9usasGxvT6MXsd8BU5OKxOzAzQDUg074XpAUDLFE2VEJnLQLrgOW424/tXFhZ0F2DBY1oPHAX1uU0u8rO1LlZ+AZXJoWIWQ6iki5TiII/Dc6m+bvLCRf0IC79/e8q+3YVrg75nEh0RsbY0QQFvHd9HunNyx8a7JUngEGPFqyFSGcvteTtYfviAaWUPxMKs+ICQYs+aJns0RjO5lg0w55CFaspRFIVMmkt3Q8s/CTkC1rQMO+sw2WFflZlJ4ZZnfIxJYZkGXOnZhGn7tFAr/f85zVXc31XRTVobxW1g6EKQ/cA7LjB4YxjRd0xcUfx8K8zB0jfzGiY8QgVshjnFq67+yqwIr+hGy1s1rBQWW1pZa8ds9MmV1iyZG+EWn9PSk16Ee0knNJR65lfJkV0zKn1Ja4peTSsCe9KdfMF4wYl0JpV3mZh9ub69sQE0RFWZvNPk8Ph4Zl220rZknXtYx82H7NGPL1Y7XGADKc6s9IB56HauIydwaKEcYSaU92w8iPTw8K7MknhE1FUVN8bzMm23TDV33lcPQJFplcYngrIlrmwrM9Z5JyrC8tX54bkuq4JZ0waACeL5sZleb6MjPWPeDI+SFXqmKWvLL8NlkzOy5cskJkChowia21O7RUtK4brXDj7IgUQDzpGsjIi8sq5dG5pdJyV7lsP3FV1h3slTePJkxiplDvWn68Ik9912ueI1dQtECPgN8fVzehZ7CASWyN+N+vIzHA5VurYcUOAN5XFZO9a2skMeLLZ4gGAiM9Sdcko41+P8LOxOzH/K8J1A8QI1VwCcwskpqYxJZAt0wOv+HBH/LMgJ4FGOnvYdckJpeWcyFZTKyxsdANzuewhKzZ1mACW4Nr5eTwZ7nGlIaeTKU0V26qvsEEdrYOTCXwX81jCYJj5sAogsAiEyYz+2GIwzGK8dwlsQnHycunGBnMQI4hAmoXz+9CRAVVcS315aZcmGJjY2EJUod9z2LEZzHmaQTn6spGedmyQBUzwmAqv1WL9o77Thri+SnjoxiwEB1HZm88dBnGWNKEfX872peXV8rrbQl56fA/ZpuyEjYtKkPFtA0vt+PbkKWOfFK4PQFTBb/Yvl3WrjPD53FQLMg9hChXGbWkoTIqLT9clu5BBxGwZE1tifSlPPPsOTNoKve6eaVy76yorEZF/PyPpHx/cRjb1JHWNTVGx5Djo/yOm8HwA+u8HwV219PVScwdnLwMFBiE4EVsvWfvLJeV1THj4cmrGTmDqlcLj5+smyHr58+QOyoichoF67eracNDXspQljpywWkGsYg5hi1yo4dRGw6jjzoGZAQLvnZOiWxqqDCn5KfdSTl4YdgcRi8sqZRV1XG5hCh9cLJfenE4hdvYxIA1I+cwygamcf+f+3SsZIOfTo3HCj0mHNcximQbwUsU2iiUQXbZVIa+MzbP1c6Ah6ci51lJJ4BjHhgCjP2dGxY049U4wBYg3jZcw/rNpcGMjP5RATOddT02Bs4ZGoSfCS/7JP6Th7yUmQxO3cQgFvlJ2UJkbiiu9ypuRKNaR+ez/6MQ2dfrdgryMhGoGxjhbYhKsgbwhXc13l55gczLHDLcLHGpeCmF7tz7INUVNPb/vJZPiEDoIO/vWKvnYV+CSXNT0YDXRhY6qKvQN0HRCISG3NJPs9AItrfs4zTXCPb5eR5JpZbg2FuBzbYJ+37881z0LmTUCaekpGM6n+f/AiQDwkIqcbgQAAAAAElFTkSuQmCC)](https://mergify.com)\n\n## Code template\n\n[horothesun/api-gateway-lambda-template.g8](https://github.com/horothesun/api-gateway-lambda-template.g8)\n\n## Setup\n\n- Add the following block to your infrastructure code\n\n```terraform\nmodule \"demo_api_gateway_lambda\" {\n  source = \"github.com/horothesun/api-gateway-lambda-infra?ref=1.0.0\"\n\n  lambda_name                = \"demo-api-gateway-lambda\"\n  lambda_memory_MB           = 512\n  lambda_logs_retention_days = 7\n  http_method                = \"GET\"\n  http_route                 = \"/time\"\n  http_timeout_seconds       = 30\n  apigw_logs_retention_days  = 7\n  burst_limit_rps            = 1\n  rate_limit_rps             = 1\n  initial_setup              = true # TO BE REMOVED once the first ECR image gets created!\n}\n```\n\n- Make sure your AWS OIDC for GitHub workflows role only contains permissions referencing\n  `ecr_repo_arn` and NOT `lambda_function_arn`.\n- Apply the Terraform changes.\n- Run the service CI pipeline to publish the first ECR image\n  (the pipeline will fail at the \"Update lambda\" stage).\n- Remove `initial_setup` from your configuration (defaulting it to `false`).\n- Update your AWS OIDC for GitHub workflows role by adding the permission\n  referencing `lambda_function_arn` as well.\n- Apply the Terraform changes again.\n- Run the service CI pipeline again to update the lambda with the latest ECR image.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorothesun%2Fapi-gateway-lambda-infra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhorothesun%2Fapi-gateway-lambda-infra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorothesun%2Fapi-gateway-lambda-infra/lists"}