Historical Environment Variables & Configuration

Below is a reference of all of the environment variables that Historical makes use of, and the required/default status of them:

Most of these variables are found in:

NOTE: All environment variables are Strings

Required Fields

The fields below are required and MUST be configured by you in your Terraform templates:

Variable Where to set Sample Value
PRIMARY_REGION Per-stack Terraform template
variable PRIMARY_REGION
us-west-2
POLLING_REGIONS Per-stack Terraform template
variable POLLING_REGIONS
["us-west-2", "us-east-1", "eu-west-1"]
This should be set to the secondary regions for most stacks.

S3 is the exception since it's a "global" namespace.
For S3, this is always set to the PRIMARY_REGION.

This populates the POLL_REGIONS env. var for the
Poller Lambdas.
REGION Infrastructure main.tf
This is a variable supplied
to Terraform in the
application of the template.
This value is used to determine if the current region
of the deployment is the primary region or a secondary region.
PROXY_REGIONS Per-stack Terraform template
current_proxy_env_vars and durable_proxy_env_vars
us-east-1,eu-west-1,us-east-2,etc.
This is a comma-separated string of regions.

The current_proxy_env_vars for the PRIMARY_REGION needs to be configured to contain the PRIMARY_REGION and all the "off-regions".

The durable_proxy_env_vars should contain ALL
the regions (default).
HISTORICAL_TECHNOLOGY Per-stack Terraform template
durable_proxy_env_vars
s3 or securitygroup. This should be set in each sample stack properly.
SIMPLE_DURABLE_PROXY Per-stack Terraform template
durable_proxy_env_vars
True - This is the default value for the Durable Proxy.
Don't change this.

This value toggles whether the DynamoDB
stream events will be serialized nicely for downstream consumption or not.
ENABLED_ACCOUNTS Per-stack Terraform template
env_vars
ACCOUNTID1,ACCOUNTID2,etc.
If you are not making use of SWAG, then you need to set this.
SWAG_BUCKET Per-stack Terraform template
env_vars
some-s3-bucket-name
Required if you are making use of SWAG.
SWAG_DATA_FILE Per-stack Terraform template
env_vars
v2/accounts.json
Required if you are making use of SWAG.
Points to where the accounts.json file is located.
SWAG_OWNER Per-stack Terraform template
env_vars
yourcompany
Required if you are making use of SWAG.
The entity that owns the accounts you are monitoring.
SWAG_REGION Per-stack Terraform template
env_vars
us-west-2
Required if you are making use of SWAG.
The region the SWAG_BUCKET is located.

Default Required Fields

These are fields that are required, but the default values are sufficient. These are not set in the Terraform templates.

Variable Description & Defaults
CURRENT_REGION This is populated by the AWS_DEFAULT_REGION environment variable provided by Lambda. This will be set to the region that the Lambda function is running in.
TTL_EXPIRY Default: 86400 seconds. This is the TTL for an item in the Current Table. This is used to account for missing deletion events.
HISTORICAL_ROLE Default: Historical. Don't change this -- this is the name of the IAM role that Historical needs to assume to describe resources.
REGION_ATTR Default: Region. Don't change this -- this is the name of the region attribute in the DynamoDB table.
EVENT_TOO_BIG_FLAG Default: event_too_big. Don't change this -- this is a field name that informs Historical downstream functions if an event is too big to fit in SNS and SQS (>256KB).

Optional Fields

Variable Where to set Sample Value
RANDOMIZE_POLLER Per-stack Terraform template
poller_env_vars
0 <= value <= 900. Number of seconds to delay
Polling messages in SQS.

It is recommended you set this to "900" for the Poller.
LOGGING_LEVEL Per-stack Terraform template
env_vars
Any one of these values. DEBUG is recommended.
TEST_ACCOUNTS_ONLY Per-stack Terraform template
env_vars
Default False. This is used if you are making use of SWAG.

Set this to True if you want your stack to ONLY query
against "test" accounts. Useful for having
"test" and "prod" stacks.
PROXY_BATCH_SIZE Per-stack Terraform template
current_proxy_env_vars.
Default: 10. Set this if the batched event size is too
big (>256KB) to send to SQS. This should be refactored
in the future so that this is not necessary.
SENTRY_DSN Per-stack Terraform template
env_vars
If you make use of Sentry, then set this to your DSN.

Historical makes use of the raven-python-lambda for Sentry.
You can also optionally use SQS as a transport layer for
Sentry messages via raven-sqs-proxy.
Custom Tags Per-stack Terraform template
tags
Add in a name-value pair of tags you want to affix
to your Lambda functions.

Docker Installer Specific Fields

The fields below are specific for installation and uninstallation of Historical via the Docker container. These values are present in the terraform/SAMPLE-env.list file.

ALL FIELDS BELOW ARE REQUIRED

Variable Sample Value
AWS_ACCESS_KEY_ID The AWS Access Key ID for the credential that will be used to run Terraform. This is for a very powerful IAM Role.
AWS_SECRET_ACCESS_KEY The AWS Secret Access Key for the credential that will be used to run Terraform. This is for a very powerful IAM Role.
AWS_SESSION_TOKEN The AWS Session Token for the credential that will be used to run Terraform. This is for a very powerful IAM Role.
TECH The Historical resource type for the stack in question. Either s3 or securitygroup (for now).
PRIMARY_REGION The Primary Region of your Historical Stack.
SECONDARY_REGIONS The Secondary Regions of your Historical Stack. This is a comma separated string.

Next Steps

Please return to the Installation documentation.