Skip to content

Terraform Variables

All variables are defined in terraform/variables.tf. Pass overrides with -var="name=value" from the demo repo
event-driven-serverless-platform-demo — source repository for Terraform, Lambda services, portal, and scripts. Commands run from its root with `terraform -chdir=terraform` unless stated otherwise.
root.

VariableDefaultDescription
enable_ingesttrue

Deploy ingest layer ( S3
Amazon Simple Storage Service — data lake bucket for raw ingest and processed TEC output; S3 events trigger processing.
, ingest-sync Lambda)

enable_processingtrue

Deploy processing layer (requires enable_ingest)

enable_presentationtrue

Deploy presentation layer (requires enable_processing)

VariableDefaultDescription
regionap-southeast-2

AWS
Amazon Web Services — cloud platform for ingest, processing, storage, API, and portal hosting in this walkthrough.
region for all resources

source_bucketgeonet-open-data

GeoNet
GeoNet open data — public S3 bucket `geonet-open-data` with GNSS RINEX hourly files under `gnss/rinexhourly/`. Not owned by this stack; no push notification when new files arrive.
public source bucket

source_prefixgnss/rinexhourly/Source prefix in public bucket
lookback_hours1

Ingest lookback
Ingest configuration — UTC rolling window (default 1 hour) defining how far back ingest-sync scans for new RINEX files.
window (UTC hours, 1–168)

schedule_expressionrate(1 hour) EventBridge Scheduler
AWS EventBridge Scheduler — triggers ingest-sync Lambda on a recurring UTC schedule (default: hourly).

cadence

VariableDefaultDescription
processor_source_prefixraw/rinexhourly/

Raw RINEX
Receiver Independent Exchange Format — standard GNSS observation file format synced from GeoNet and calibrated by the processor.
prefix in data lake

destination_prefixprocessed/tec/Processor output prefix
processor_image_uri""

Override ECR
Amazon Elastic Container Registry — stores the mirrored processor Lambda container image at deploy time.
URI (empty = use repo + tag)

processor_image_taglatestTag mirrored from GHCR
processor_maximum_concurrency15Max concurrent ingest queue invocations
reprocess_maximum_concurrency2Max concurrent reprocess queue invocations
processor_memory_mb2048

Processor Lambda
Processor Lambda container — runs PyTECGg calibration per SQS message; adopted when a Batch on Fargate parallel-execution quota increase was rejected. Image from `ghcr.io/platformfuzz/tec-processor-image` mirrored to ECR.
memory (128–2048 MiB)

processor_timeout_seconds900Processor Lambda timeout
VariableDefaultDescription
dlq_visible_threshold1

DLQ
Dead-letter queue — SQS queue receiving messages that exceeded maxReceiveCount (5). CloudWatch alarms fire when visible count ≥ 1.
visible-message alarm threshold

queue_stale_age_seconds_threshold1800Stale message age alarm threshold
process_queue_visible_threshold100Process queue depth alarm threshold
VariableDefaultDescription
deploy_amplify_on_applytrue

Build and zip-deploy portal
AWS Amplify — hosts the Vite portal SPA. This walkthrough deploys via manual zip upload (no Git connection required).
on apply

web_source_dir../webPath to portal source directory
amplify_domain*

Amplify hostname for CORS (auto-derive when *)

VariableDefaultDescription
tagsProject/ManagedBy mapTags applied to all resources
Terminal window
# Different region
terraform -chdir=terraform apply -var="region=us-east-1"
# Skip Amplify on apply
terraform -chdir=terraform apply -var='deploy_amplify_on_apply=false'
# Different processor image tag
terraform -chdir=terraform apply -var="processor_image_tag=v1.2.3"
# Lock CORS to Amplify hostname
terraform -chdir=terraform apply \
-var="amplify_domain=$(terraform -chdir=terraform output -raw cors_domain)"

See Terraform Outputs for values emitted after apply.