{"id":16260060,"url":"https://github.com/cludden/terraform-aws-benthos-serverless","last_synced_at":"2026-03-18T18:43:22.937Z","repository":{"id":72389640,"uuid":"449138539","full_name":"cludden/terraform-aws-benthos-serverless","owner":"cludden","description":"a Terraform module for deploying Benthos as an AWS Lambda function with dynamic configuration via Gomplate","archived":false,"fork":false,"pushed_at":"2022-10-10T22:00:25.000Z","size":31019,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-05T23:28:47.398Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cludden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-01-18T04:23:10.000Z","updated_at":"2022-01-18T21:43:30.000Z","dependencies_parsed_at":"2024-05-06T12:15:06.396Z","dependency_job_id":null,"html_url":"https://github.com/cludden/terraform-aws-benthos-serverless","commit_stats":{"total_commits":7,"total_committers":2,"mean_commits":3.5,"dds":0.1428571428571429,"last_synced_commit":"eae589980ea0aa06c0dcbec9ac3bac5e3ef8fefa"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/cludden/terraform-aws-benthos-serverless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-aws-benthos-serverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-aws-benthos-serverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-aws-benthos-serverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-aws-benthos-serverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cludden","download_url":"https://codeload.github.com/cludden/terraform-aws-benthos-serverless/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cludden%2Fterraform-aws-benthos-serverless/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29190167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T07:37:03.739Z","status":"ssl_error","status_checked_at":"2026-02-07T07:37:03.029Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-10-10T16:06:14.136Z","updated_at":"2026-02-07T08:31:06.448Z","avatar_url":"https://github.com/cludden.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-benthos-serverless\na Terraform module for deploying [Benthos](https://www.benthos.dev/) as an AWS Lambda Function with support for [Gomplate](https://docs.gomplate.ca/) templated config\n\n## Getting Started\n```terraform\n# store sensitive configuration in ssm parameter store\nresource \"aws_ssm_parameter\" \"key\" {\n  name  = \"/benthos-lambda-example/key\"\n  type  = \"SecureString\"\n  value = var.key\n}\n\n# deploy benthos lambda function using ssm as config datasource\nmodule \"benthos_lambda\" {\n  source = \"cludden/aws/benthos-serverless\"\n\n  name = \"benthos-lambda-example\"\n\n  config_datasources = {\n    ssm = \"aws+smp:///benthos-lambda-example\"\n  }\n\n  config = \u003c\u003c-YAML\n    pipeline:\n      processors:\n      # format slack chat.postMessage payload\n      - bloblang: |\n          root = this\n          sha256 = content().hash(\"hmac_sha256\", \"{{ (ds \"ssm\" \"key\").Value }}\").encode(\"hex\")\n      \n      # log response\n      - log:\n          message: \"$${!content().string()}\"\n\n    output:\n      switch:\n        retry_until_success: false\n        cases:\n        - check: errored()\n          output:\n            reject: \"$${!error()}\"\n        - output:\n            sync_response: {}\n  YAML\n}\n```\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.0.0 |\n| \u003ca name=\"requirement_archive\"\u003e\u003c/a\u003e [archive](#requirement\\_archive) | 2.2.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 3.0.0 |\n| \u003ca name=\"requirement_get\"\u003e\u003c/a\u003e [get](#requirement\\_get) | 0.1.1 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_archive\"\u003e\u003c/a\u003e [archive](#provider\\_archive) | 2.2.0 |\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 3.0.0 |\n| \u003ca name=\"provider_get\"\u003e\u003c/a\u003e [get](#provider\\_get) | 0.1.1 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_log_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_iam_role.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_lambda_function.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function) | resource |\n| [aws_lambda_layer_version.config](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_layer_version) | resource |\n| [aws_lambda_layer_version.gomplate](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_layer_version) | resource |\n| [get_artifact.benthos](https://registry.terraform.io/providers/cludden/get/0.1.1/docs/resources/artifact) | resource |\n| [get_artifact.gomplate](https://registry.terraform.io/providers/cludden/get/0.1.1/docs/resources/artifact) | resource |\n| [archive_file.config](https://registry.terraform.io/providers/hashicorp/archive/2.2.0/docs/data-sources/file) | data source |\n| [aws_iam_policy_document.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.trust](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_benthos_version\"\u003e\u003c/a\u003e [benthos\\_version](#input\\_benthos\\_version) | benthos artifact version | `string` | `\"3.62.0\"` | no |\n| \u003ca name=\"input_config\"\u003e\u003c/a\u003e [config](#input\\_config) | gomplate templated benthos config (YAML format) | `string` | n/a | yes |\n| \u003ca name=\"input_config_datasources\"\u003e\u003c/a\u003e [config\\_datasources](#input\\_config\\_datasources) | map of gomplate datasources referenced by config | `map(string)` | `{}` | no |\n| \u003ca name=\"input_description\"\u003e\u003c/a\u003e [description](#input\\_description) | lambda function description | `string` | `\"benthos-lambda\"` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | map of additional environment variables | `map(string)` | `{}` | no |\n| \u003ca name=\"input_gomplate_version\"\u003e\u003c/a\u003e [gomplate\\_version](#input\\_gomplate\\_version) | gomplate-lambda-extension artifact version | `string` | `\"0.2.0\"` | 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 | `number` | `128` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | function name | `string` | n/a | yes |\n| \u003ca name=\"input_reserved_concurrent_executions\"\u003e\u003c/a\u003e [reserved\\_concurrent\\_executions](#input\\_reserved\\_concurrent\\_executions) | amount of reserved concurrent executions for this lambda function | `number` | `-1` | no |\n| \u003ca name=\"input_retention_in_days\"\u003e\u003c/a\u003e [retention\\_in\\_days](#input\\_retention\\_in\\_days) | function log retention in days | `number` | `7` | no |\n| \u003ca name=\"input_role_arn\"\u003e\u003c/a\u003e [role\\_arn](#input\\_role\\_arn) | execution role arn | `string` | `null` | no |\n| \u003ca name=\"input_role_name\"\u003e\u003c/a\u003e [role\\_name](#input\\_role\\_name) | override default execution role name | `string` | `null` | no |\n| \u003ca name=\"input_security_group_ids\"\u003e\u003c/a\u003e [security\\_group\\_ids](#input\\_security\\_group\\_ids) | list of vpc security group ids | `list(string)` | `[]` | no |\n| \u003ca name=\"input_statements\"\u003e\u003c/a\u003e [statements](#input\\_statements) | customize role policy statements | \u003cpre\u003elist(object({\u003cbr\u003e    actions = list(string)\u003cbr\u003e    conditions = optional(list(object({\u003cbr\u003e      test     = string\u003cbr\u003e      variable = string\u003cbr\u003e      values   = list(string)\u003cbr\u003e    })))\u003cbr\u003e    effect    = optional(string)\u003cbr\u003e    resources = list(string)\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | list of vpc subnet ids | `list(string)` | `[]` | no |\n| \u003ca name=\"input_timeout\"\u003e\u003c/a\u003e [timeout](#input\\_timeout) | function timeout in seconds | `number` | `3` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_arn\"\u003e\u003c/a\u003e [arn](#output\\_arn) | function arn |\n| \u003ca name=\"output_id\"\u003e\u003c/a\u003e [id](#output\\_id) | function name |\n| \u003ca name=\"output_role_arn\"\u003e\u003c/a\u003e [role\\_arn](#output\\_role\\_arn) | function role arn |\n| \u003ca name=\"output_role_id\"\u003e\u003c/a\u003e [role\\_id](#output\\_role\\_id) | function role name |\n\u003c!-- END_TF_DOCS --\u003e\n\n## License\nLicensed under the [MIT License](LICENSE.md)  \nCopyright (c) 2022 Chris Ludden","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcludden%2Fterraform-aws-benthos-serverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcludden%2Fterraform-aws-benthos-serverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcludden%2Fterraform-aws-benthos-serverless/lists"}