Skip to content

Demo project file map

Paths below are in terraform-aws-s3-annotations-demo — clone that repo to follow along. This documentation site only publishes the walkthrough. See also External links.

PathRole
lambda/shared/s3_annotations.pyput_object_annotation / get_object_annotation
terraform/iam.tfs3:PutObjectAnnotation / s3:GetObjectAnnotation IAM
lambda/ingest_annotate/handler.pyCopy + annotate
lambda/api/handler.pyQuery annotations + presign
terraform/Full stack (S3, Lambda, API GW, Amplify, optional DynamoDB)
amplify/src/Gallery UI
scripts/build-lambda-packages.shLambda zip build (boto3 ≥ 1.43.32)
docs/walkthrough.mdOriginal single-file guide — superseded by this site (external links)
docs/architecture.pngArchitecture diagram
docs/namespaces.pngAnnotation namespaces diagram
docs/webapp.pngGallery screenshot
samples/volcano/Local reference JPEGs
README.mdQuick start
  • AWS CLI ≥ 2.35.6
  • boto3 ≥ 1.43.32
  • Pillow used only for visibility brightness
  • Lambda runtime: python3.14 (see terraform/lambda.tf)
  • Local tests: use python3.14 — see .python-version

Reference samples (TKAH.01, UTC day 169):

  • samples/volcano/2026.169.0240.00.TKAH.01.jpg
  • samples/volcano/2026.169.0800.00.TKAH.01.jpg

Source: s3://geonet-open-data/camera/volcano/images/2026/TKAH/TKAH.01/2026.169/

Terminal window
python3.14 -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
pytest tests/ -v

Tests include property-based tests (via Hypothesis) for the classifier, key parser, and API validator, plus unit tests for Lambda handlers.