Skip to content

Commit 4109526

Browse files
authored
feat: expose lambda_architectures and forwarder_use_cache_bucket (#109)
* feat(datadog-lambda-forwarder): expose lambda_architectures and forwarder_use_cache_bucket Pass lambda_architectures and forwarder_use_cache_bucket through to the upstream cloudposse/datadog-lambda-forwarder/aws module and add matching wrapper variables. Setting lambda_architectures to ["arm64"] lets consumers run Datadog Forwarder 5.x artifacts, whose native dependencies are built for arm64 and fail on x86_64 with errors such as "No module named 'ujson'" during cold start. lambda_runtime was already wired through. forwarder_use_cache_bucket defaults to true to preserve upstream behavior while letting a stack opt out of creating or using the cache bucket. * fix(datadog-lambda-forwarder): restore datadog provider constraint in docs and validate lambda_architectures Restore the Providers table to the declared constraint (>= 3.3.0, < 4.0.0) in both READMEs; a prior doc regeneration had pinned it to a concrete local version (3.91.0), making the generated docs non-deterministic. Add a validation block to lambda_architectures so plan-time input is limited to "x86_64" and/or "arm64", while allowing the null default to pass through to the upstream module unchanged.
1 parent b0b9fb4 commit 4109526

4 files changed

Lines changed: 23 additions & 0 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/README.md

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,13 @@ module "datadog_lambda_forwarder" {
6464
forwarder_rds_enabled = var.forwarder_rds_enabled
6565
forwarder_rds_filter_pattern = var.forwarder_rds_filter_pattern
6666
forwarder_rds_layers = var.forwarder_rds_layers
67+
forwarder_use_cache_bucket = var.forwarder_use_cache_bucket
6768
forwarder_vpc_logs_artifact_url = var.forwarder_vpc_logs_artifact_url
6869
forwarder_vpc_logs_enabled = var.forwarder_vpc_logs_enabled
6970
forwarder_vpc_logs_layers = var.forwarder_vpc_logs_layers
7071
forwarder_vpclogs_filter_pattern = var.forwarder_vpclogs_filter_pattern
7172
kms_key_id = var.kms_key_id
73+
lambda_architectures = var.lambda_architectures
7274
lambda_policy_source_json = var.lambda_policy_source_json
7375
lambda_reserved_concurrent_executions = var.lambda_reserved_concurrent_executions
7476
lambda_runtime = var.lambda_runtime

src/variables.tf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,17 @@ variable "lambda_runtime" {
2828
default = "python3.11"
2929
}
3030

31+
variable "lambda_architectures" {
32+
type = list(string)
33+
description = "Instruction set architecture for the Datadog Lambda function. Valid values are [\"x86_64\"] and [\"arm64\"]. Set to [\"arm64\"] when using Datadog Forwarder 5.x artifacts."
34+
default = null
35+
36+
validation {
37+
condition = var.lambda_architectures == null ? true : alltrue([for a in var.lambda_architectures : contains(["x86_64", "arm64"], a)])
38+
error_message = "lambda_architectures must be null or a list containing only \"x86_64\" and/or \"arm64\"."
39+
}
40+
}
41+
3142
variable "tracing_config_mode" {
3243
type = string
3344
description = "Can be either PassThrough or Active. If PassThrough, Lambda will only trace the request from an upstream service if it contains a tracing header with 'sampled=1'. If Active, Lambda will respect any tracing header it receives from an upstream service"
@@ -82,6 +93,12 @@ variable "forwarder_log_retention_days" {
8293
default = 14
8394
}
8495

96+
variable "forwarder_use_cache_bucket" {
97+
type = bool
98+
description = "Flag to enable or disable the cache bucket for lambda tags and failed events. See https://docs.datadoghq.com/logs/guide/forwarder/?tab=cloudformation#upgrade-an-older-version-to-31060. Recommended for forwarder versions 3.106 and higher."
99+
default = true
100+
}
101+
85102
variable "kms_key_id" {
86103
type = string
87104
description = "Optional KMS key ID to encrypt Datadog Lambda function logs"

0 commit comments

Comments
 (0)