|
|
import os |
|
|
|
|
|
from aws_cdk import App, Environment |
|
|
from cdk_config import AWS_ACCOUNT_ID, AWS_REGION, RUN_USEAST_STACK, USE_CLOUDFRONT |
|
|
from cdk_functions import create_basic_config_env, load_context_from_file |
|
|
from cdk_stack import CdkStack, CdkStackCloudfront |
|
|
|
|
|
|
|
|
from check_resources import CONTEXT_FILE, check_and_set_context |
|
|
|
|
|
|
|
|
app = App() |
|
|
|
|
|
|
|
|
|
|
|
if os.path.exists(CONTEXT_FILE): |
|
|
try: |
|
|
os.remove(CONTEXT_FILE) |
|
|
print(f"Removed stale context file: {CONTEXT_FILE}") |
|
|
except OSError as e: |
|
|
print(f"Warning: Could not remove old context file {CONTEXT_FILE}: {e}") |
|
|
|
|
|
|
|
|
|
|
|
print("Running pre-check script to generate application context...") |
|
|
try: |
|
|
check_and_set_context() |
|
|
if not os.path.exists(CONTEXT_FILE): |
|
|
raise RuntimeError( |
|
|
f"check_and_set_context() finished, but {CONTEXT_FILE} was not created." |
|
|
) |
|
|
print(f"Context generated successfully at {CONTEXT_FILE}.") |
|
|
except Exception as e: |
|
|
raise RuntimeError(f"Failed to generate context via check_and_set_context(): {e}") |
|
|
|
|
|
if os.path.exists(CONTEXT_FILE): |
|
|
load_context_from_file(app, CONTEXT_FILE) |
|
|
else: |
|
|
raise RuntimeError(f"Could not find {CONTEXT_FILE}.") |
|
|
|
|
|
|
|
|
create_basic_config_env("config") |
|
|
|
|
|
|
|
|
aws_env_regional = Environment(account=AWS_ACCOUNT_ID, region=AWS_REGION) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
regional_stack = CdkStack( |
|
|
app, "RedactionStack", env=aws_env_regional, cross_region_references=True |
|
|
) |
|
|
|
|
|
if USE_CLOUDFRONT == "True" and RUN_USEAST_STACK == "True": |
|
|
|
|
|
aws_env_us_east_1 = Environment(account=AWS_ACCOUNT_ID, region="us-east-1") |
|
|
|
|
|
|
|
|
cloudfront_stack = CdkStackCloudfront( |
|
|
app, |
|
|
"RedactionStackCloudfront", |
|
|
env=aws_env_us_east_1, |
|
|
alb_arn=regional_stack.params["alb_arn_output"], |
|
|
alb_sec_group_id=regional_stack.params["alb_security_group_id"], |
|
|
alb_dns_name=regional_stack.params["alb_dns_name"], |
|
|
cross_region_references=True, |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
app.synth(validate_on_synthesis=True) |
|
|
|