Skip to main content
Terragrunt comes packed with a variety of built-in utilities beyond the core functions you’ve already learned. These helpers can streamline your configurations, reduce repetition, and integrate seamlessly with AWS and other environments.

Official Documentation

Always keep an eye on the latest features and advanced utilities in the Terragrunt docs:

Common Built-In Functions

FunctionDescriptionExample
getenv("VAR_NAME")Retrieve the value of an environment variable.locals { region = getenv("AWS_REGION") }
get_aws_account_id()Fetch the AWS account ID for the current credentials.locals { account_id = get_aws_account_id() }
get_aws_caller_identity()Return AWS caller identity details (user/role ARN, account ID).locals { caller = get_aws_caller_identity() }

Creating Custom Functions

If your scenario demands logic beyond built-ins, Terragrunt’s plugin system lets you author custom helpers in Go.
When writing custom plugins:
  • Follow Go module conventions.
  • Respect Terragrunt’s plugin API.
  • Version and distribute via your internal registry.
Custom plugins can introduce breaking changes if not versioned properly.
Always pin plugin versions in your terragrunt.hcl and test in a sandbox environment.

Best Practices & Tips

  • Organize functions into logical groups (e.g., AWS, GCP, environment variables).
  • Keep locals blocks concise and well-documented.
  • Reuse common logic through shared modules or parent configurations.