// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Snapshot test for BLEA ECS App Stacks 1`] = ` Object { "Outputs": Object { "ExportsOutputFnGetAttEcsAppAlb74CC21B3DNSName9BF6DA64": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3DNSName9BF6DA64", }, "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlb74CC21B3", "DNSName", ], }, }, "ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlb74CC21B3", "LoadBalancerFullName", ], }, }, "ExportsOutputFnGetAttEcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0TargetGroupNameC50313E4": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0TargetGroupNameC50313E4", }, "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0", "TargetGroupName", ], }, }, "ExportsOutputFnGetAttEcsAppAlbTgUnHealthyHostCount0E9D8FD9Arn7BD25624": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlbTgUnHealthyHostCount0E9D8FD9Arn7BD25624", }, "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlbTgUnHealthyHostCount0E9D8FD9", "Arn", ], }, }, "ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "Value": Object { "Fn::GetAtt": Array [ "EcsAppServiceABC8901F", "Name", ], }, }, "ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "Value": Object { "Ref": "DatastoreAuroraCluster2FE23DD5", }, }, "ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "Value": Object { "Ref": "EcsAppCluster7C7DF57B", }, }, "ExportsOutputRefMonitoringAlarmTopicAF62D4F1C969DD35": Object { "Export": Object { "Name": "Dev-BLEAEcsApp:ExportsOutputRefMonitoringAlarmTopicAF62D4F1C969DD35", }, "Value": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, }, }, "Parameters": Object { "BootstrapVersion": Object { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, "Resources": Object { "CMK56817A4C": Object { "DeletionPolicy": "Retain", "Properties": Object { "Description": "BLEA Guest Sample: CMK for EcsApp", "EnableKeyRotation": true, "KeyPolicy": Object { "Statement": Array [ Object { "Action": "kms:*", "Effect": "Allow", "Principal": Object { "AWS": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::", Object { "Ref": "AWS::AccountId", }, ":root", ], ], }, }, "Resource": "*", }, Object { "Action": Array [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*", ], "Condition": Object { "ArnLike": Object { "kms:EncryptionContext:aws:logs:arn": Object { "Fn::Join": Array [ "", Array [ "arn:aws:logs:ap-northeast-1:", Object { "Ref": "AWS::AccountId", }, ":*", ], ], }, }, }, "Effect": "Allow", "Principal": Object { "Service": "logs.ap-northeast-1.amazonaws.com", }, "Resource": "*", }, ], "Version": "2012-10-17", }, }, "Type": "AWS::KMS::Key", "UpdateReplacePolicy": "Retain", }, "CMKAliasFD5A95C9": Object { "Properties": Object { "AliasName": "alias/DevBLEAEcsApp", "TargetKeyId": Object { "Fn::GetAtt": Array [ "CMK56817A4C", "Arn", ], }, }, "Type": "AWS::KMS::Alias", }, "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A": Object { "DependsOn": Array [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", ], "Properties": Object { "Code": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-ap-northeast-1", }, "S3Key": "3539b349e2688ba291e85e5defb2cf778cf1151db53f7541cf44cc20d5e7000b.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, "Role": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", "Arn", ], }, "Runtime": "nodejs18.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", }, "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], "Policies": Array [ Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "ssm:DeleteParameters", "ssm:ListTagsForResource", "ssm:GetParameters", "ssm:PutParameter", ], "Effect": "Allow", "Resource": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", Object { "Ref": "AWS::AccountId", }, ":parameter/cdk/exports/*", ], ], }, ], }, ], "Version": "2012-10-17", }, "PolicyName": "Inline", }, ], }, "Type": "AWS::IAM::Role", }, "DatastoreAuroraCPUUtilAlarm68E3EE59": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "DatapointsToAlarm": 3, "Dimensions": Array [ Object { "Name": "DBClusterIdentifier", "Value": Object { "Ref": "DatastoreAuroraCluster2FE23DD5", }, }, ], "EvaluationPeriods": 3, "MetricName": "CPUUtilization", "Namespace": "AWS/RDS", "Period": 60, "Statistic": "Average", "Threshold": 90, }, "Type": "AWS::CloudWatch::Alarm", }, "DatastoreAuroraCluster2FE23DD5": Object { "DeletionPolicy": "Snapshot", "Properties": Object { "CopyTagsToSnapshot": true, "DBClusterParameterGroupName": "default.aurora-postgresql11", "DBSubnetGroupName": Object { "Ref": "DatastoreAuroraClusterSubnetsD8325308", }, "DatabaseName": "mydb", "EnableCloudwatchLogsExports": Array [ "postgresql", ], "Engine": "aurora-postgresql", "EngineVersion": "11.9", "KmsKeyId": Object { "Fn::GetAtt": Array [ "CMK56817A4C", "Arn", ], }, "MasterUserPassword": Object { "Fn::Join": Array [ "", Array [ "{{resolve:secretsmanager:", Object { "Ref": "DevBLEAEcsAppDatastoreAuroraClusterSecret062A0F6B3fdaad7efa858a3daf9490cf0a702aeb", }, ":SecretString:password::}}", ], ], }, "MasterUsername": "dbadmin", "Port": 5432, "StorageEncrypted": true, "VpcSecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "DatastoreAuroraClusterSecurityGroup1E718F0C", "GroupId", ], }, ], }, "Type": "AWS::RDS::DBCluster", "UpdateReplacePolicy": "Snapshot", }, "DatastoreAuroraClusterInstance17CC9C737": Object { "DeletionPolicy": "Delete", "DependsOn": Array [ "NetworkingVpcProtectedSubnet1RouteTableAssociation011790AB", "NetworkingVpcProtectedSubnet2RouteTableAssociation01AFDB7E", ], "Properties": Object { "DBClusterIdentifier": Object { "Ref": "DatastoreAuroraCluster2FE23DD5", }, "DBInstanceClass": "db.t3.medium", "DBInstanceIdentifier": "Datastore1", "DBSubnetGroupName": Object { "Ref": "DatastoreAuroraClusterSubnetsD8325308", }, "EnablePerformanceInsights": true, "Engine": "aurora-postgresql", "PerformanceInsightsKMSKeyId": Object { "Fn::GetAtt": Array [ "CMK56817A4C", "Arn", ], }, "PerformanceInsightsRetentionPeriod": 7, "PubliclyAccessible": false, }, "Type": "AWS::RDS::DBInstance", "UpdateReplacePolicy": "Delete", }, "DatastoreAuroraClusterInstance2FA5EF5D9": Object { "DeletionPolicy": "Delete", "DependsOn": Array [ "NetworkingVpcProtectedSubnet1RouteTableAssociation011790AB", "NetworkingVpcProtectedSubnet2RouteTableAssociation01AFDB7E", ], "Properties": Object { "DBClusterIdentifier": Object { "Ref": "DatastoreAuroraCluster2FE23DD5", }, "DBInstanceClass": "db.t3.medium", "DBInstanceIdentifier": "Datastore2", "DBSubnetGroupName": Object { "Ref": "DatastoreAuroraClusterSubnetsD8325308", }, "EnablePerformanceInsights": true, "Engine": "aurora-postgresql", "PerformanceInsightsKMSKeyId": Object { "Fn::GetAtt": Array [ "CMK56817A4C", "Arn", ], }, "PerformanceInsightsRetentionPeriod": 7, "PubliclyAccessible": false, }, "Type": "AWS::RDS::DBInstance", "UpdateReplacePolicy": "Delete", }, "DatastoreAuroraClusterLogRetentionpostgresql428EA768": Object { "Properties": Object { "LogGroupName": Object { "Fn::Join": Array [ "", Array [ "/aws/rds/cluster/", Object { "Ref": "DatastoreAuroraCluster2FE23DD5", }, "/postgresql", ], ], }, "RetentionInDays": 90, "ServiceToken": Object { "Fn::GetAtt": Array [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A", "Arn", ], }, }, "Type": "Custom::LogRetention", }, "DatastoreAuroraClusterSecretAttachment3F350821": Object { "Properties": Object { "SecretId": Object { "Ref": "DevBLEAEcsAppDatastoreAuroraClusterSecret062A0F6B3fdaad7efa858a3daf9490cf0a702aeb", }, "TargetId": Object { "Ref": "DatastoreAuroraCluster2FE23DD5", }, "TargetType": "AWS::RDS::DBCluster", }, "Type": "AWS::SecretsManager::SecretTargetAttachment", }, "DatastoreAuroraClusterSecurityGroup1E718F0C": Object { "Properties": Object { "GroupDescription": "RDS security group", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "DatastoreAuroraClusterSecurityGroupfromDevBLEAEcsAppAppSg3B8EA4D3IndirectPort62569279": Object { "Properties": Object { "Description": "from DevBLEAEcsAppAppSg3B8EA4D3:{IndirectPort}", "FromPort": Object { "Fn::GetAtt": Array [ "DatastoreAuroraCluster2FE23DD5", "Endpoint.Port", ], }, "GroupId": Object { "Fn::GetAtt": Array [ "DatastoreAuroraClusterSecurityGroup1E718F0C", "GroupId", ], }, "IpProtocol": "tcp", "SourceSecurityGroupId": Object { "Fn::GetAtt": Array [ "EcsAppAppSg51F5A2AA", "GroupId", ], }, "ToPort": Object { "Fn::GetAtt": Array [ "DatastoreAuroraCluster2FE23DD5", "Endpoint.Port", ], }, }, "Type": "AWS::EC2::SecurityGroupIngress", }, "DatastoreAuroraClusterSubnetsD8325308": Object { "Properties": Object { "DBSubnetGroupDescription": "Subnets for AuroraCluster database", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], }, "Type": "AWS::RDS::DBSubnetGroup", }, "DatastoreRdsClusterEventSubscB4CD338B": Object { "Properties": Object { "Enabled": true, "EventCategories": Array [ "failure", "failover", "maintenance", ], "SnsTopicArn": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, "SourceType": "db-cluster", }, "Type": "AWS::RDS::EventSubscription", }, "DatastoreRdsInstanceEventSubsc8966D6FB": Object { "Properties": Object { "Enabled": true, "EventCategories": Array [ "availability", "configuration change", "deletion", "failover", "failure", "maintenance", "notification", "recovery", ], "SnsTopicArn": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, "SourceType": "db-instance", }, "Type": "AWS::RDS::EventSubscription", }, "DevBLEAEcsAppDatastoreAuroraClusterSecret062A0F6B3fdaad7efa858a3daf9490cf0a702aeb": Object { "DeletionPolicy": "Delete", "Properties": Object { "Description": Object { "Fn::Join": Array [ "", Array [ "Generated by the CDK for stack: ", Object { "Ref": "AWS::StackName", }, ], ], }, "GenerateSecretString": Object { "ExcludeCharacters": " %+~\`#$&*()|[]{}:;<>?!'/@\\"\\\\", "GenerateStringKey": "password", "PasswordLength": 30, "SecretStringTemplate": "{\\"username\\":\\"dbadmin\\"}", }, }, "Type": "AWS::SecretsManager::Secret", "UpdateReplacePolicy": "Delete", }, "EcsAppAlb74CC21B3": Object { "DependsOn": Array [ "NetworkingVpcPublicSubnet1DefaultRoute80C01FA6", "NetworkingVpcPublicSubnet1RouteTableAssociationD13830EA", "NetworkingVpcPublicSubnet2DefaultRouteDF98F60F", "NetworkingVpcPublicSubnet2RouteTableAssociation2D4CEA06", ], "Properties": Object { "LoadBalancerAttributes": Array [ Object { "Key": "deletion_protection.enabled", "Value": "false", }, Object { "Key": "access_logs.s3.enabled", "Value": "true", }, Object { "Key": "access_logs.s3.bucket", "Value": Object { "Ref": "EcsAppAlbLogBucket160A578E", }, }, ], "Scheme": "internet-facing", "SecurityGroups": Array [ Object { "Fn::GetAtt": Array [ "EcsAppAlbSg7EC37FC7", "GroupId", ], }, ], "Subnets": Array [ Object { "Ref": "NetworkingVpcPublicSubnet1Subnet918289EE", }, Object { "Ref": "NetworkingVpcPublicSubnet2Subnet9D9E5AFB", }, ], "Type": "application", }, "Type": "AWS::ElasticLoadBalancingV2::LoadBalancer", }, "EcsAppAlbAlbSslListener056EB6C5": Object { "Properties": Object { "DefaultActions": Array [ Object { "TargetGroupArn": Object { "Ref": "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0", }, "Type": "forward", }, ], "LoadBalancerArn": Object { "Ref": "EcsAppAlb74CC21B3", }, "Port": 80, "Protocol": "HTTP", }, "Type": "AWS::ElasticLoadBalancingV2::Listener", }, "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0": Object { "Properties": Object { "Port": 80, "Protocol": "HTTP", "TargetGroupAttributes": Array [ Object { "Key": "deregistration_delay.timeout_seconds", "Value": "30", }, Object { "Key": "stickiness.enabled", "Value": "false", }, ], "TargetType": "ip", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::ElasticLoadBalancingV2::TargetGroup", }, "EcsAppAlbHttp4xxE478B099": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "Dimensions": Array [ Object { "Name": "LoadBalancer", "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlb74CC21B3", "LoadBalancerFullName", ], }, }, ], "EvaluationPeriods": 3, "MetricName": "HTTPCode_ELB_4XX_Count", "Namespace": "AWS/ApplicationELB", "Period": 60, "Statistic": "Sum", "Threshold": 10, }, "Type": "AWS::CloudWatch::Alarm", }, "EcsAppAlbHttp5xx9D54C209": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "Dimensions": Array [ Object { "Name": "LoadBalancer", "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlb74CC21B3", "LoadBalancerFullName", ], }, }, ], "EvaluationPeriods": 3, "MetricName": "HTTPCode_ELB_5XX_Count", "Namespace": "AWS/ApplicationELB", "Period": 60, "Statistic": "Sum", "Threshold": 10, }, "Type": "AWS::CloudWatch::Alarm", }, "EcsAppAlbLogBucket160A578E": Object { "DeletionPolicy": "Retain", "Properties": Object { "AccessControl": "Private", "BucketEncryption": Object { "ServerSideEncryptionConfiguration": Array [ Object { "ServerSideEncryptionByDefault": Object { "SSEAlgorithm": "AES256", }, }, ], }, "PublicAccessBlockConfiguration": Object { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, "EcsAppAlbLogBucketPolicy1A37CC7F": Object { "Properties": Object { "Bucket": Object { "Ref": "EcsAppAlbLogBucket160A578E", }, "PolicyDocument": Object { "Statement": Array [ Object { "Action": "s3:*", "Condition": Object { "Bool": Object { "aws:SecureTransport": "false", }, }, "Effect": "Deny", "Principal": Object { "AWS": "*", }, "Resource": Array [ Object { "Fn::GetAtt": Array [ "EcsAppAlbLogBucket160A578E", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "EcsAppAlbLogBucket160A578E", "Arn", ], }, "/*", ], ], }, ], }, Object { "Action": "s3:PutObject", "Effect": "Allow", "Principal": Object { "AWS": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::582318560864:root", ], ], }, }, "Resource": Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "EcsAppAlbLogBucket160A578E", "Arn", ], }, "/AWSLogs/", Object { "Ref": "AWS::AccountId", }, "/*", ], ], }, }, Object { "Action": "s3:PutObject", "Condition": Object { "StringEquals": Object { "s3:x-amz-acl": "bucket-owner-full-control", }, }, "Effect": "Allow", "Principal": Object { "Service": "delivery.logs.amazonaws.com", }, "Resource": Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "EcsAppAlbLogBucket160A578E", "Arn", ], }, "/AWSLogs/", Object { "Ref": "AWS::AccountId", }, "/*", ], ], }, }, Object { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Principal": Object { "Service": "delivery.logs.amazonaws.com", }, "Resource": Object { "Fn::GetAtt": Array [ "EcsAppAlbLogBucket160A578E", "Arn", ], }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::S3::BucketPolicy", }, "EcsAppAlbResponseTime6784ABB9": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "Dimensions": Array [ Object { "Name": "LoadBalancer", "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlb74CC21B3", "LoadBalancerFullName", ], }, }, ], "EvaluationPeriods": 3, "MetricName": "TargetResponseTime", "Namespace": "AWS/ApplicationELB", "Period": 60, "Statistic": "Average", "Threshold": 100, }, "Type": "AWS::CloudWatch::Alarm", }, "EcsAppAlbSg7EC37FC7": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/EcsApp/AlbSg", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow from anyone on port 80", "FromPort": 80, "IpProtocol": "tcp", "ToPort": 80, }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "EcsAppAlbTgHealthyHostCountBB6659CA": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], "ComparisonOperator": "LessThanThreshold", "Dimensions": Array [ Object { "Name": "LoadBalancer", "Value": Object { "Fn::Join": Array [ "", Array [ Object { "Fn::Select": Array [ 1, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, "/", Object { "Fn::Select": Array [ 2, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, "/", Object { "Fn::Select": Array [ 3, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, ], ], }, }, Object { "Name": "TargetGroup", "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0", "TargetGroupFullName", ], }, }, ], "EvaluationPeriods": 3, "MetricName": "HealthyHostCount", "Namespace": "AWS/ApplicationELB", "Period": 60, "Statistic": "Average", "Threshold": 1, }, "Type": "AWS::CloudWatch::Alarm", }, "EcsAppAlbTgUnHealthyHostCount0E9D8FD9": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "Dimensions": Array [ Object { "Name": "LoadBalancer", "Value": Object { "Fn::Join": Array [ "", Array [ Object { "Fn::Select": Array [ 1, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, "/", Object { "Fn::Select": Array [ 2, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, "/", Object { "Fn::Select": Array [ 3, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, ], ], }, }, Object { "Name": "TargetGroup", "Value": Object { "Fn::GetAtt": Array [ "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0", "TargetGroupFullName", ], }, }, ], "EvaluationPeriods": 3, "MetricName": "UnHealthyHostCount", "Namespace": "AWS/ApplicationELB", "Period": 60, "Statistic": "Average", "Threshold": 1, }, "Type": "AWS::CloudWatch::Alarm", }, "EcsAppAppLogGroupF1EFF025": Object { "DeletionPolicy": "Retain", "Properties": Object { "KmsKeyId": Object { "Fn::GetAtt": Array [ "CMK56817A4C", "Arn", ], }, "RetentionInDays": 90, }, "Type": "AWS::Logs::LogGroup", "UpdateReplacePolicy": "Retain", }, "EcsAppAppSg51F5A2AA": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/EcsApp/AppSg", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "EcsAppAppSgfromDevBLEAEcsAppAlbSg3F55726F80BEF887B7": Object { "Properties": Object { "Description": "Load balancer to target", "FromPort": 80, "GroupId": Object { "Fn::GetAtt": Array [ "EcsAppAppSg51F5A2AA", "GroupId", ], }, "IpProtocol": "tcp", "SourceSecurityGroupId": Object { "Fn::GetAtt": Array [ "EcsAppAlbSg7EC37FC7", "GroupId", ], }, "ToPort": 80, }, "Type": "AWS::EC2::SecurityGroupIngress", }, "EcsAppCluster7C7DF57B": Object { "Properties": Object { "ClusterSettings": Array [ Object { "Name": "containerInsights", "Value": "enabled", }, ], }, "Type": "AWS::ECS::Cluster", }, "EcsAppClusterCDCF413B": Object { "Properties": Object { "CapacityProviders": Array [ "FARGATE", "FARGATE_SPOT", ], "Cluster": Object { "Ref": "EcsAppCluster7C7DF57B", }, "DefaultCapacityProviderStrategy": Array [], }, "Type": "AWS::ECS::ClusterCapacityProviderAssociations", }, "EcsAppECSServiceActionEventRule3F3C7B23": Object { "Properties": Object { "Description": "CloudWatch Event Rule to send notification on ECS Service action events.", "EventPattern": Object { "detail": Object { "eventType": Array [ "WARN", "ERROR", ], }, "detail-type": Array [ "ECS Service Action", ], "source": Array [ "aws.ecs", ], }, "State": "ENABLED", "Targets": Array [ Object { "Arn": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, "Id": "Target0", }, ], }, "Type": "AWS::Events::Rule", }, "EcsAppECSServiceDeploymentEventRuleBD680642": Object { "Properties": Object { "Description": "CloudWatch Event Rule to send notification on ECS Service deployment events.", "EventPattern": Object { "detail": Object { "eventType": Array [ "WARN", "ERROR", ], }, "detail-type": Array [ "ECS Deployment State Change", ], "source": Array [ "aws.ecs", ], }, "State": "ENABLED", "Targets": Array [ Object { "Arn": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, "Id": "Target0", }, ], }, "Type": "AWS::Events::Rule", }, "EcsAppEcsTaskExecutionRoleD9A4AEEE": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "ecs-tasks.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", ], ], }, ], "Policies": Array [ Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "ecr:BatchImportUpstreamImage", "ecr:CreateRepository", ], "Effect": "Allow", "Resource": "*", }, ], "Version": "2012-10-17", }, "PolicyName": "ecrPullThroughCache", }, ], }, "Type": "AWS::IAM::Role", }, "EcsAppEcsTaskExecutionRoleDefaultPolicy32A365EF": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ], "Effect": "Allow", "Resource": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":ecr:ap-northeast-1:", Object { "Ref": "AWS::AccountId", }, ":repository/devblecsapp-af22469e/docker/library/httpd", ], ], }, }, Object { "Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*", }, Object { "Action": Array [ "logs:CreateLogStream", "logs:PutLogEvents", ], "Effect": "Allow", "Resource": Object { "Fn::GetAtt": Array [ "EcsAppAppLogGroupF1EFF025", "Arn", ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "EcsAppEcsTaskExecutionRoleDefaultPolicy32A365EF", "Roles": Array [ Object { "Ref": "EcsAppEcsTaskExecutionRoleD9A4AEEE", }, ], }, "Type": "AWS::IAM::Policy", }, "EcsAppEcsTaskRole2B17F49D": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "ecs-tasks.amazonaws.com", }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::IAM::Role", }, "EcsAppFargateCpuUtilDC42B865": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "DatapointsToAlarm": 3, "Dimensions": Array [ Object { "Name": "ClusterName", "Value": Object { "Ref": "EcsAppCluster7C7DF57B", }, }, Object { "Name": "ServiceName", "Value": Object { "Fn::GetAtt": Array [ "EcsAppServiceABC8901F", "Name", ], }, }, ], "EvaluationPeriods": 3, "MetricName": "CPUUtilization", "Namespace": "AWS/ECS", "Period": 60, "Statistic": "Average", "Threshold": 80, }, "Type": "AWS::CloudWatch::Alarm", }, "EcsAppPullThroughCacheRuleB070981A": Object { "Properties": Object { "EcrRepositoryPrefix": "devblecsapp-af22469e", "UpstreamRegistryUrl": "public.ecr.aws", }, "Type": "AWS::ECR::PullThroughCacheRule", }, "EcsAppRepository019D9E05": Object { "DeletionPolicy": "Retain", "Properties": Object { "ImageScanningConfiguration": Object { "ScanOnPush": true, }, "RepositoryName": "devblecsapp-af22469e/docker/library/httpd", }, "Type": "AWS::ECR::Repository", "UpdateReplacePolicy": "Retain", }, "EcsAppServiceABC8901F": Object { "DependsOn": Array [ "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0", "EcsAppAlbAlbSslListener056EB6C5", "EcsAppEcsTaskRole2B17F49D", ], "Properties": Object { "CapacityProviderStrategy": Array [ Object { "CapacityProvider": "FARGATE", "Weight": 1, }, ], "Cluster": Object { "Ref": "EcsAppCluster7C7DF57B", }, "DeploymentConfiguration": Object { "Alarms": Object { "AlarmNames": Array [], "Enable": false, "Rollback": false, }, "MaximumPercent": 200, "MinimumHealthyPercent": 50, }, "DesiredCount": 2, "EnableECSManagedTags": false, "HealthCheckGracePeriodSeconds": 60, "LoadBalancers": Array [ Object { "ContainerName": "App", "ContainerPort": 80, "TargetGroupArn": Object { "Ref": "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0", }, }, ], "NetworkConfiguration": Object { "AwsvpcConfiguration": Object { "AssignPublicIp": "DISABLED", "SecurityGroups": Array [ Object { "Fn::GetAtt": Array [ "EcsAppAppSg51F5A2AA", "GroupId", ], }, ], "Subnets": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], }, }, "PlatformVersion": "LATEST", "TaskDefinition": Object { "Ref": "EcsAppTaskDefinitionB559BC4B", }, }, "Type": "AWS::ECS::Service", }, "EcsAppServiceTaskCountTarget68D0F209": Object { "DependsOn": Array [ "EcsAppEcsTaskRole2B17F49D", ], "Properties": Object { "MaxCapacity": 10, "MinCapacity": 2, "ResourceId": Object { "Fn::Join": Array [ "", Array [ "service/", Object { "Ref": "EcsAppCluster7C7DF57B", }, "/", Object { "Fn::GetAtt": Array [ "EcsAppServiceABC8901F", "Name", ], }, ], ], }, "RoleARN": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::", Object { "Ref": "AWS::AccountId", }, ":role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService", ], ], }, "ScalableDimension": "ecs:service:DesiredCount", "ServiceNamespace": "ecs", }, "Type": "AWS::ApplicationAutoScaling::ScalableTarget", }, "EcsAppServiceTaskCountTargetCpuScalingEC96128C": Object { "DependsOn": Array [ "EcsAppEcsTaskRole2B17F49D", ], "Properties": Object { "PolicyName": "DevBLEAEcsAppServiceTaskCountTargetCpuScaling2EA8D08F", "PolicyType": "TargetTrackingScaling", "ScalingTargetId": Object { "Ref": "EcsAppServiceTaskCountTarget68D0F209", }, "TargetTrackingScalingPolicyConfiguration": Object { "PredefinedMetricSpecification": Object { "PredefinedMetricType": "ECSServiceAverageCPUUtilization", }, "TargetValue": 50, }, }, "Type": "AWS::ApplicationAutoScaling::ScalingPolicy", }, "EcsAppServiceTaskCountTargetRequestScaling9DD1E39A": Object { "DependsOn": Array [ "EcsAppEcsTaskRole2B17F49D", ], "Properties": Object { "PolicyName": "DevBLEAEcsAppServiceTaskCountTargetRequestScaling50CC5FBF", "PolicyType": "TargetTrackingScaling", "ScalingTargetId": Object { "Ref": "EcsAppServiceTaskCountTarget68D0F209", }, "TargetTrackingScalingPolicyConfiguration": Object { "PredefinedMetricSpecification": Object { "PredefinedMetricType": "ALBRequestCountPerTarget", "ResourceLabel": Object { "Fn::Join": Array [ "", Array [ Object { "Fn::Select": Array [ 1, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, "/", Object { "Fn::Select": Array [ 2, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, "/", Object { "Fn::Select": Array [ 3, Object { "Fn::Split": Array [ "/", Object { "Ref": "EcsAppAlbAlbSslListener056EB6C5", }, ], }, ], }, "/", Object { "Fn::GetAtt": Array [ "EcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0", "TargetGroupFullName", ], }, ], ], }, }, "TargetValue": 10000, }, }, "Type": "AWS::ApplicationAutoScaling::ScalingPolicy", }, "EcsAppTaskDefinitionB559BC4B": Object { "Properties": Object { "ContainerDefinitions": Array [ Object { "Environment": Array [ Object { "Name": "ENVIRONMENT_VARIABLE_SAMPLE_KEY", "Value": "Environment Variable Sample Value", }, ], "Essential": true, "Image": Object { "Fn::Join": Array [ "", Array [ Object { "Ref": "AWS::AccountId", }, ".dkr.ecr.ap-northeast-1.", Object { "Ref": "AWS::URLSuffix", }, "/devblecsapp-af22469e/docker/library/httpd:latest", ], ], }, "LogConfiguration": Object { "LogDriver": "awslogs", "Options": Object { "awslogs-group": Object { "Ref": "EcsAppAppLogGroupF1EFF025", }, "awslogs-region": "ap-northeast-1", "awslogs-stream-prefix": "BLEA-ECSApp-", }, }, "Name": "App", "PortMappings": Array [ Object { "ContainerPort": 80, "Protocol": "tcp", }, ], }, ], "Cpu": "256", "ExecutionRoleArn": Object { "Fn::GetAtt": Array [ "EcsAppEcsTaskExecutionRoleD9A4AEEE", "Arn", ], }, "Family": "DevBLEAEcsAppTaskDefinition687CDF6B", "Memory": "512", "NetworkMode": "awsvpc", "RequiresCompatibilities": Array [ "FARGATE", ], "TaskRoleArn": Object { "Fn::GetAtt": Array [ "EcsAppEcsTaskRole2B17F49D", "Arn", ], }, }, "Type": "AWS::ECS::TaskDefinition", }, "ExportsWriteruseast10F67B507DDE2E818": Object { "DeletionPolicy": "Delete", "Properties": Object { "ServiceToken": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A", "Arn", ], }, "WriterProps": Object { "exports": Object { "/cdk/exports/Dev-BLEAEcsAppFrontend/DevBLEAEcsAppapnortheast1FnGetAttEcsAppAlb74CC21B3DNSNameDDC2F343": Object { "Fn::GetAtt": Array [ "EcsAppAlb74CC21B3", "DNSName", ], }, }, "region": "us-east-1", }, }, "Type": "Custom::CrossRegionExportWriter", "UpdateReplacePolicy": "Delete", }, "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": Object { "DependsOn": Array [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", ], "Properties": Object { "Code": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-ap-northeast-1", }, "S3Key": "5fa1330271b8967d9254ba2d4a07144f8acefe8b77e6d6bba38261373a50d5f8.zip", }, "Handler": "index.handler", "Role": Object { "Fn::GetAtt": Array [ "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", "Arn", ], }, "Runtime": "nodejs16.x", }, "Type": "AWS::Lambda::Function", }, "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", ], ], }, ], }, "Type": "AWS::IAM::Role", }, "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "logs:PutRetentionPolicy", "logs:DeleteRetentionPolicy", ], "Effect": "Allow", "Resource": "*", }, ], "Version": "2012-10-17", }, "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB", "Roles": Array [ Object { "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB", }, ], }, "Type": "AWS::IAM::Policy", }, "MonitoringAlarmTopicAF62D4F1": Object { "Type": "AWS::SNS::Topic", }, "MonitoringAlarmTopicPolicyCB9CCFB0": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": "sns:Publish", "Effect": "Allow", "Principal": Object { "Service": "cloudwatch.amazonaws.com", }, "Resource": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, "Sid": "0", }, Object { "Action": "sns:Publish", "Effect": "Allow", "Principal": Object { "Service": "events.amazonaws.com", }, "Resource": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, "Sid": "1", }, ], "Version": "2012-10-17", }, "Topics": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], }, "Type": "AWS::SNS::TopicPolicy", }, "MonitoringChatbotChannel3696F0E4": Object { "Properties": Object { "ConfigurationName": "DevBLEAEcsAppMonitoringEA1D1433", "IamRoleArn": Object { "Fn::GetAtt": Array [ "MonitoringChatbotRoleD766A77D", "Arn", ], }, "SlackChannelId": "CYYYYYYYYYY", "SlackWorkspaceId": "TXXXXXXXXXX", "SnsTopicArns": Array [ Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, ], }, "Type": "AWS::Chatbot::SlackChannelConfiguration", }, "MonitoringChatbotRoleD766A77D": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "chatbot.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/ReadOnlyAccess", ], ], }, Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::aws:policy/CloudWatchReadOnlyAccess", ], ], }, ], }, "Type": "AWS::IAM::Role", }, "MonitoringEmailSubsc6D15C956": Object { "Properties": Object { "Endpoint": "notify-security@example.com", "Protocol": "email", "TopicArn": Object { "Ref": "MonitoringAlarmTopicAF62D4F1", }, }, "Type": "AWS::SNS::Subscription", }, "NetworkingFlowLogBucket33187957": Object { "DeletionPolicy": "Retain", "Properties": Object { "AccessControl": "Private", "BucketEncryption": Object { "ServerSideEncryptionConfiguration": Array [ Object { "ServerSideEncryptionByDefault": Object { "KMSMasterKeyID": Object { "Fn::GetAtt": Array [ "NetworkingKey5DCEF7CD", "Arn", ], }, "SSEAlgorithm": "aws:kms", }, }, ], }, "PublicAccessBlockConfiguration": Object { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, "NetworkingFlowLogBucketPolicy1EE356A6": Object { "Properties": Object { "Bucket": Object { "Ref": "NetworkingFlowLogBucket33187957", }, "PolicyDocument": Object { "Statement": Array [ Object { "Action": "s3:*", "Condition": Object { "Bool": Object { "aws:SecureTransport": "false", }, }, "Effect": "Deny", "Principal": Object { "AWS": "*", }, "Resource": Array [ Object { "Fn::GetAtt": Array [ "NetworkingFlowLogBucket33187957", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "NetworkingFlowLogBucket33187957", "Arn", ], }, "/*", ], ], }, ], }, ], "Version": "2012-10-17", }, }, "Type": "AWS::S3::BucketPolicy", }, "NetworkingKey5DCEF7CD": Object { "DeletionPolicy": "Retain", "Properties": Object { "Description": "BLEA Guest Sample: CMK for EcsApp VPC Flow Logs", "EnableKeyRotation": true, "KeyPolicy": Object { "Statement": Array [ Object { "Action": "kms:*", "Effect": "Allow", "Principal": Object { "AWS": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":iam::", Object { "Ref": "AWS::AccountId", }, ":root", ], ], }, }, "Resource": "*", }, Object { "Action": Array [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*", ], "Effect": "Allow", "Principal": Object { "Service": "delivery.logs.amazonaws.com", }, "Resource": "*", }, ], "Version": "2012-10-17", }, }, "Type": "AWS::KMS::Key", "UpdateReplacePolicy": "Retain", }, "NetworkingKeyAlias2BF09FC0": Object { "Properties": Object { "AliasName": "alias/DevBLEAEcsAppNetworkingA22B7407", "TargetKeyId": Object { "Fn::GetAtt": Array [ "NetworkingKey5DCEF7CD", "Arn", ], }, }, "Type": "AWS::KMS::Alias", }, "NetworkingPrivateNacl8E602059": Object { "Properties": Object { "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::NetworkAcl", }, "NetworkingPrivateNaclDefaultAssociationDevBLEAEcsAppNetworkingVpcPrivateSubnet1A826B024A559447B": Object { "Properties": Object { "NetworkAclId": Object { "Ref": "NetworkingPrivateNacl8E602059", }, "SubnetId": Object { "Ref": "NetworkingVpcPrivateSubnet1Subnet717BCE48", }, }, "Type": "AWS::EC2::SubnetNetworkAclAssociation", }, "NetworkingPrivateNaclDefaultAssociationDevBLEAEcsAppNetworkingVpcPrivateSubnet2538D8B4F0D542AC8": Object { "Properties": Object { "NetworkAclId": Object { "Ref": "NetworkingPrivateNacl8E602059", }, "SubnetId": Object { "Ref": "NetworkingVpcPrivateSubnet2Subnet4313381B", }, }, "Type": "AWS::EC2::SubnetNetworkAclAssociation", }, "NetworkingPrivateNaclPrivateEgress8D7BEE42": Object { "Properties": Object { "CidrBlock": "0.0.0.0/0", "Egress": true, "NetworkAclId": Object { "Ref": "NetworkingPrivateNacl8E602059", }, "Protocol": -1, "RuleAction": "allow", "RuleNumber": 100, }, "Type": "AWS::EC2::NetworkAclEntry", }, "NetworkingPrivateNaclPrivateIngressA5CFFFD6": Object { "Properties": Object { "CidrBlock": "0.0.0.0/0", "Egress": false, "NetworkAclId": Object { "Ref": "NetworkingPrivateNacl8E602059", }, "Protocol": -1, "RuleAction": "allow", "RuleNumber": 120, }, "Type": "AWS::EC2::NetworkAclEntry", }, "NetworkingPublicNacl8F0D44A5": Object { "Properties": Object { "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::NetworkAcl", }, "NetworkingPublicNaclDefaultAssociationDevBLEAEcsAppNetworkingVpcPublicSubnet16B6DFC6159138662": Object { "Properties": Object { "NetworkAclId": Object { "Ref": "NetworkingPublicNacl8F0D44A5", }, "SubnetId": Object { "Ref": "NetworkingVpcPublicSubnet1Subnet918289EE", }, }, "Type": "AWS::EC2::SubnetNetworkAclAssociation", }, "NetworkingPublicNaclDefaultAssociationDevBLEAEcsAppNetworkingVpcPublicSubnet289C2029036EE5714": Object { "Properties": Object { "NetworkAclId": Object { "Ref": "NetworkingPublicNacl8F0D44A5", }, "SubnetId": Object { "Ref": "NetworkingVpcPublicSubnet2Subnet9D9E5AFB", }, }, "Type": "AWS::EC2::SubnetNetworkAclAssociation", }, "NetworkingPublicNaclPublicEgress927B5E86": Object { "Properties": Object { "CidrBlock": "0.0.0.0/0", "Egress": true, "NetworkAclId": Object { "Ref": "NetworkingPublicNacl8F0D44A5", }, "Protocol": -1, "RuleAction": "allow", "RuleNumber": 100, }, "Type": "AWS::EC2::NetworkAclEntry", }, "NetworkingPublicNaclPublicIngressAC30352B": Object { "Properties": Object { "CidrBlock": "0.0.0.0/0", "Egress": false, "NetworkAclId": Object { "Ref": "NetworkingPublicNacl8F0D44A5", }, "Protocol": -1, "RuleAction": "allow", "RuleNumber": 100, }, "Type": "AWS::EC2::NetworkAclEntry", }, "NetworkingVpc6B5E6F44": Object { "Properties": Object { "CidrBlock": "10.100.0.0/16", "EnableDnsHostnames": true, "EnableDnsSupport": true, "InstanceTenancy": "default", "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], }, "Type": "AWS::EC2::VPC", }, "NetworkingVpcEc2EndpointCDE9BE0C": Object { "Properties": Object { "PrivateDnsEnabled": true, "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "NetworkingVpcEc2EndpointSecurityGroup28494A31", "GroupId", ], }, ], "ServiceName": "com.amazonaws.ap-northeast-1.ec2", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], "VpcEndpointType": "Interface", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcEc2EndpointSecurityGroup28494A31": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/Networking/Vpc/Ec2Endpoint/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, ":443", ], ], }, "FromPort": 443, "IpProtocol": "tcp", "ToPort": 443, }, ], "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "NetworkingVpcEc2MessagesEndpointD64BDA68": Object { "Properties": Object { "PrivateDnsEnabled": true, "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "NetworkingVpcEc2MessagesEndpointSecurityGroupA9FD1F29", "GroupId", ], }, ], "ServiceName": "com.amazonaws.ap-northeast-1.ec2messages", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], "VpcEndpointType": "Interface", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcEc2MessagesEndpointSecurityGroupA9FD1F29": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/Networking/Vpc/Ec2MessagesEndpoint/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, ":443", ], ], }, "FromPort": 443, "IpProtocol": "tcp", "ToPort": 443, }, ], "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "NetworkingVpcEcrDkrEndpoint1A7B0929": Object { "Properties": Object { "PrivateDnsEnabled": true, "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "NetworkingVpcEcrDkrEndpointSecurityGroupBDD2F421", "GroupId", ], }, ], "ServiceName": "com.amazonaws.ap-northeast-1.ecr.dkr", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], "VpcEndpointType": "Interface", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcEcrDkrEndpointSecurityGroupBDD2F421": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/Networking/Vpc/EcrDkrEndpoint/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, ":443", ], ], }, "FromPort": 443, "IpProtocol": "tcp", "ToPort": 443, }, ], "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "NetworkingVpcEcrEndpoint1EB7FE50": Object { "Properties": Object { "PrivateDnsEnabled": true, "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "NetworkingVpcEcrEndpointSecurityGroup50E4A6FF", "GroupId", ], }, ], "ServiceName": "com.amazonaws.ap-northeast-1.ecr.api", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], "VpcEndpointType": "Interface", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcEcrEndpointSecurityGroup50E4A6FF": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/Networking/Vpc/EcrEndpoint/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, ":443", ], ], }, "FromPort": 443, "IpProtocol": "tcp", "ToPort": 443, }, ], "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "NetworkingVpcFlowLogsFlowLog7DF32A67": Object { "DependsOn": Array [ "NetworkingFlowLogBucketPolicy1EE356A6", ], "Properties": Object { "LogDestination": Object { "Fn::GetAtt": Array [ "NetworkingFlowLogBucket33187957", "Arn", ], }, "LogDestinationType": "s3", "ResourceId": Object { "Ref": "NetworkingVpc6B5E6F44", }, "ResourceType": "VPC", "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "TrafficType": "ALL", }, "Type": "AWS::EC2::FlowLog", }, "NetworkingVpcIGW21218DAB": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], }, "Type": "AWS::EC2::InternetGateway", }, "NetworkingVpcLogsEndpoint64784F03": Object { "Properties": Object { "PrivateDnsEnabled": true, "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "NetworkingVpcLogsEndpointSecurityGroup75F247A6", "GroupId", ], }, ], "ServiceName": "com.amazonaws.ap-northeast-1.logs", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], "VpcEndpointType": "Interface", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcLogsEndpointSecurityGroup75F247A6": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/Networking/Vpc/LogsEndpoint/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, ":443", ], ], }, "FromPort": 443, "IpProtocol": "tcp", "ToPort": 443, }, ], "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "NetworkingVpcPrivateSubnet1DefaultRouteDE58E6A0": Object { "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "NatGatewayId": Object { "Ref": "NetworkingVpcPublicSubnet1NATGateway70EEEC07", }, "RouteTableId": Object { "Ref": "NetworkingVpcPrivateSubnet1RouteTable69CC9A73", }, }, "Type": "AWS::EC2::Route", }, "NetworkingVpcPrivateSubnet1RouteTable69CC9A73": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PrivateSubnet1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::RouteTable", }, "NetworkingVpcPrivateSubnet1RouteTableAssociation761725EA": Object { "Properties": Object { "RouteTableId": Object { "Ref": "NetworkingVpcPrivateSubnet1RouteTable69CC9A73", }, "SubnetId": Object { "Ref": "NetworkingVpcPrivateSubnet1Subnet717BCE48", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "NetworkingVpcPrivateSubnet1Subnet717BCE48": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 0, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.100.4.0/22", "MapPublicIpOnLaunch": false, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Private", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Private", }, Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PrivateSubnet1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::Subnet", }, "NetworkingVpcPrivateSubnet2DefaultRoute5BF16047": Object { "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "NatGatewayId": Object { "Ref": "NetworkingVpcPublicSubnet1NATGateway70EEEC07", }, "RouteTableId": Object { "Ref": "NetworkingVpcPrivateSubnet2RouteTableAE92CE40", }, }, "Type": "AWS::EC2::Route", }, "NetworkingVpcPrivateSubnet2RouteTableAE92CE40": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PrivateSubnet2", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::RouteTable", }, "NetworkingVpcPrivateSubnet2RouteTableAssociation9EFBB61D": Object { "Properties": Object { "RouteTableId": Object { "Ref": "NetworkingVpcPrivateSubnet2RouteTableAE92CE40", }, "SubnetId": Object { "Ref": "NetworkingVpcPrivateSubnet2Subnet4313381B", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "NetworkingVpcPrivateSubnet2Subnet4313381B": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 1, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.100.8.0/22", "MapPublicIpOnLaunch": false, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Private", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Private", }, Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PrivateSubnet2", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::Subnet", }, "NetworkingVpcProtectedSubnet1RouteTable2C1558E9": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/ProtectedSubnet1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::RouteTable", }, "NetworkingVpcProtectedSubnet1RouteTableAssociation011790AB": Object { "Properties": Object { "RouteTableId": Object { "Ref": "NetworkingVpcProtectedSubnet1RouteTable2C1558E9", }, "SubnetId": Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "NetworkingVpcProtectedSubnet1SubnetF97DE33B": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 0, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.100.12.0/22", "MapPublicIpOnLaunch": false, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Protected", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Isolated", }, Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/ProtectedSubnet1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::Subnet", }, "NetworkingVpcProtectedSubnet2RouteTableA434E57C": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/ProtectedSubnet2", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::RouteTable", }, "NetworkingVpcProtectedSubnet2RouteTableAssociation01AFDB7E": Object { "Properties": Object { "RouteTableId": Object { "Ref": "NetworkingVpcProtectedSubnet2RouteTableA434E57C", }, "SubnetId": Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "NetworkingVpcProtectedSubnet2SubnetE110C692": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 1, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.100.16.0/22", "MapPublicIpOnLaunch": false, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Protected", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Isolated", }, Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/ProtectedSubnet2", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::Subnet", }, "NetworkingVpcPublicSubnet1DefaultRoute80C01FA6": Object { "DependsOn": Array [ "NetworkingVpcVPCGW12E561D8", ], "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "GatewayId": Object { "Ref": "NetworkingVpcIGW21218DAB", }, "RouteTableId": Object { "Ref": "NetworkingVpcPublicSubnet1RouteTable8FB3C18A", }, }, "Type": "AWS::EC2::Route", }, "NetworkingVpcPublicSubnet1EIP7D5353EC": Object { "Properties": Object { "Domain": "vpc", "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PublicSubnet1", }, ], }, "Type": "AWS::EC2::EIP", }, "NetworkingVpcPublicSubnet1NATGateway70EEEC07": Object { "DependsOn": Array [ "NetworkingVpcPublicSubnet1DefaultRoute80C01FA6", "NetworkingVpcPublicSubnet1RouteTableAssociationD13830EA", ], "Properties": Object { "AllocationId": Object { "Fn::GetAtt": Array [ "NetworkingVpcPublicSubnet1EIP7D5353EC", "AllocationId", ], }, "SubnetId": Object { "Ref": "NetworkingVpcPublicSubnet1Subnet918289EE", }, "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PublicSubnet1", }, ], }, "Type": "AWS::EC2::NatGateway", }, "NetworkingVpcPublicSubnet1RouteTable8FB3C18A": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PublicSubnet1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::RouteTable", }, "NetworkingVpcPublicSubnet1RouteTableAssociationD13830EA": Object { "Properties": Object { "RouteTableId": Object { "Ref": "NetworkingVpcPublicSubnet1RouteTable8FB3C18A", }, "SubnetId": Object { "Ref": "NetworkingVpcPublicSubnet1Subnet918289EE", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "NetworkingVpcPublicSubnet1Subnet918289EE": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 0, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.100.0.0/24", "MapPublicIpOnLaunch": true, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Public", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Public", }, Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PublicSubnet1", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::Subnet", }, "NetworkingVpcPublicSubnet2DefaultRouteDF98F60F": Object { "DependsOn": Array [ "NetworkingVpcVPCGW12E561D8", ], "Properties": Object { "DestinationCidrBlock": "0.0.0.0/0", "GatewayId": Object { "Ref": "NetworkingVpcIGW21218DAB", }, "RouteTableId": Object { "Ref": "NetworkingVpcPublicSubnet2RouteTable22886677", }, }, "Type": "AWS::EC2::Route", }, "NetworkingVpcPublicSubnet2RouteTable22886677": Object { "Properties": Object { "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PublicSubnet2", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::RouteTable", }, "NetworkingVpcPublicSubnet2RouteTableAssociation2D4CEA06": Object { "Properties": Object { "RouteTableId": Object { "Ref": "NetworkingVpcPublicSubnet2RouteTable22886677", }, "SubnetId": Object { "Ref": "NetworkingVpcPublicSubnet2Subnet9D9E5AFB", }, }, "Type": "AWS::EC2::SubnetRouteTableAssociation", }, "NetworkingVpcPublicSubnet2Subnet9D9E5AFB": Object { "Properties": Object { "AvailabilityZone": Object { "Fn::Select": Array [ 1, Object { "Fn::GetAZs": "", }, ], }, "CidrBlock": "10.100.1.0/24", "MapPublicIpOnLaunch": true, "Tags": Array [ Object { "Key": "aws-cdk:subnet-name", "Value": "Public", }, Object { "Key": "aws-cdk:subnet-type", "Value": "Public", }, Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc/PublicSubnet2", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::Subnet", }, "NetworkingVpcS3GWEndpointA935E1AA": Object { "Properties": Object { "RouteTableIds": Array [ Object { "Ref": "NetworkingVpcPrivateSubnet1RouteTable69CC9A73", }, Object { "Ref": "NetworkingVpcPrivateSubnet2RouteTableAE92CE40", }, Object { "Ref": "NetworkingVpcProtectedSubnet1RouteTable2C1558E9", }, Object { "Ref": "NetworkingVpcProtectedSubnet2RouteTableA434E57C", }, ], "ServiceName": Object { "Fn::Join": Array [ "", Array [ "com.amazonaws.", Object { "Ref": "AWS::Region", }, ".s3", ], ], }, "VpcEndpointType": "Gateway", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcSsmEndpoint054488E3": Object { "Properties": Object { "PrivateDnsEnabled": true, "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "NetworkingVpcSsmEndpointSecurityGroup897B24DC", "GroupId", ], }, ], "ServiceName": "com.amazonaws.ap-northeast-1.ssm", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], "VpcEndpointType": "Interface", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcSsmEndpointSecurityGroup897B24DC": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/Networking/Vpc/SsmEndpoint/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, ":443", ], ], }, "FromPort": 443, "IpProtocol": "tcp", "ToPort": 443, }, ], "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "NetworkingVpcSsmMessagesEndpointDA21F821": Object { "Properties": Object { "PrivateDnsEnabled": true, "SecurityGroupIds": Array [ Object { "Fn::GetAtt": Array [ "NetworkingVpcSsmMessagesEndpointSecurityGroup4F815FEB", "GroupId", ], }, ], "ServiceName": "com.amazonaws.ap-northeast-1.ssmmessages", "SubnetIds": Array [ Object { "Ref": "NetworkingVpcProtectedSubnet1SubnetF97DE33B", }, Object { "Ref": "NetworkingVpcProtectedSubnet2SubnetE110C692", }, ], "VpcEndpointType": "Interface", "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCEndpoint", }, "NetworkingVpcSsmMessagesEndpointSecurityGroup4F815FEB": Object { "Properties": Object { "GroupDescription": "Dev-BLEAEcsApp/Networking/Vpc/SsmMessagesEndpoint/SecurityGroup", "SecurityGroupEgress": Array [ Object { "CidrIp": "0.0.0.0/0", "Description": "Allow all outbound traffic by default", "IpProtocol": "-1", }, ], "SecurityGroupIngress": Array [ Object { "CidrIp": Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, "Description": Object { "Fn::Join": Array [ "", Array [ "from ", Object { "Fn::GetAtt": Array [ "NetworkingVpc6B5E6F44", "CidrBlock", ], }, ":443", ], ], }, "FromPort": 443, "IpProtocol": "tcp", "ToPort": 443, }, ], "Tags": Array [ Object { "Key": "Name", "Value": "Dev-BLEAEcsApp/Networking/Vpc", }, ], "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::SecurityGroup", }, "NetworkingVpcVPCGW12E561D8": Object { "Properties": Object { "InternetGatewayId": Object { "Ref": "NetworkingVpcIGW21218DAB", }, "VpcId": Object { "Ref": "NetworkingVpc6B5E6F44", }, }, "Type": "AWS::EC2::VPCGatewayAttachment", }, }, "Rules": Object { "CheckBootstrapVersion": Object { "Assertions": Array [ Object { "Assert": Object { "Fn::Not": Array [ Object { "Fn::Contains": Array [ Array [ "1", "2", "3", "4", "5", ], Object { "Ref": "BootstrapVersion", }, ], }, ], }, "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.", }, ], }, }, } `; exports[`Snapshot test for BLEA ECS App Stacks 2`] = ` Object { "Outputs": Object { "ExportsOutputFnGetAttFrontendDistributionC0C89627DomainName78150ED0": Object { "Export": Object { "Name": "Dev-BLEAEcsAppFrontend:ExportsOutputFnGetAttFrontendDistributionC0C89627DomainName78150ED0", }, "Value": Object { "Fn::GetAtt": Array [ "FrontendDistributionC0C89627", "DomainName", ], }, }, }, "Parameters": Object { "BootstrapVersion": Object { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, "Resources": Object { "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68": Object { "DependsOn": Array [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", ], "Properties": Object { "Code": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-us-east-1", }, "S3Key": "78590412b566feb650ac783cf0d1555626dde1a6672e3ed0e0326bc9ca9cd74a.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, "Role": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", "Arn", ], }, "Runtime": "nodejs18.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", }, "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], "Policies": Array [ Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "ssm:AddTagsToResource", "ssm:RemoveTagsFromResource", "ssm:GetParameters", ], "Effect": "Allow", "Resource": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":ssm:us-east-1:", Object { "Ref": "AWS::AccountId", }, ":parameter/cdk/exports/Dev-BLEAEcsAppFrontend/*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "Inline", }, ], }, "Type": "AWS::IAM::Role", }, "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A": Object { "DependsOn": Array [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", ], "Properties": Object { "Code": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-us-east-1", }, "S3Key": "3539b349e2688ba291e85e5defb2cf778cf1151db53f7541cf44cc20d5e7000b.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, "Role": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1", "Arn", ], }, "Runtime": "nodejs18.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", }, "CustomCrossRegionExportWriterCustomResourceProviderRoleC951B1E1": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], "Policies": Array [ Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "ssm:DeleteParameters", "ssm:ListTagsForResource", "ssm:GetParameters", "ssm:PutParameter", ], "Effect": "Allow", "Resource": Array [ Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":ssm:ap-northeast-1:", Object { "Ref": "AWS::AccountId", }, ":parameter/cdk/exports/*", ], ], }, ], }, ], "Version": "2012-10-17", }, "PolicyName": "Inline", }, ], }, "Type": "AWS::IAM::Role", }, "ExportsReader8B249524": Object { "DeletionPolicy": "Delete", "Properties": Object { "ReaderProps": Object { "imports": Object { "/cdk/exports/Dev-BLEAEcsAppFrontend/DevBLEAEcsAppapnortheast1FnGetAttEcsAppAlb74CC21B3DNSNameDDC2F343": "{{resolve:ssm:/cdk/exports/Dev-BLEAEcsAppFrontend/DevBLEAEcsAppapnortheast1FnGetAttEcsAppAlb74CC21B3DNSNameDDC2F343}}", }, "prefix": "Dev-BLEAEcsAppFrontend", "region": "us-east-1", }, "ServiceToken": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68", "Arn", ], }, }, "Type": "Custom::CrossRegionExportReader", "UpdateReplacePolicy": "Delete", }, "ExportsWriterapnortheast12334E1B81D43DF3F": Object { "DeletionPolicy": "Delete", "Properties": Object { "ServiceToken": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportWriterCustomResourceProviderHandlerD8786E8A", "Arn", ], }, "WriterProps": Object { "exports": Object { "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1FnGetAttFrontendDistributionC0C89627DomainName34318E09": Object { "Fn::GetAtt": Array [ "FrontendDistributionC0C89627", "DomainName", ], }, "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1RefFrontendDistributionC0C89627E26C774F": Object { "Ref": "FrontendDistributionC0C89627", }, }, "region": "ap-northeast-1", }, }, "Type": "Custom::CrossRegionExportWriter", "UpdateReplacePolicy": "Delete", }, "FrontendCloudFrontLogBucket688801AF": Object { "DeletionPolicy": "Retain", "Properties": Object { "AccessControl": "Private", "BucketEncryption": Object { "ServerSideEncryptionConfiguration": Array [ Object { "ServerSideEncryptionByDefault": Object { "SSEAlgorithm": "AES256", }, }, ], }, "OwnershipControls": Object { "Rules": Array [ Object { "ObjectOwnership": "ObjectWriter", }, ], }, "PublicAccessBlockConfiguration": Object { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, "FrontendCloudFrontLogBucketPolicy7FCDBABE": Object { "Properties": Object { "Bucket": Object { "Ref": "FrontendCloudFrontLogBucket688801AF", }, "PolicyDocument": Object { "Statement": Array [ Object { "Action": "s3:*", "Condition": Object { "Bool": Object { "aws:SecureTransport": "false", }, }, "Effect": "Deny", "Principal": Object { "AWS": "*", }, "Resource": Array [ Object { "Fn::GetAtt": Array [ "FrontendCloudFrontLogBucket688801AF", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "FrontendCloudFrontLogBucket688801AF", "Arn", ], }, "/*", ], ], }, ], }, ], "Version": "2012-10-17", }, }, "Type": "AWS::S3::BucketPolicy", }, "FrontendDistributionC0C89627": Object { "Properties": Object { "DistributionConfig": Object { "CacheBehaviors": Array [ Object { "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", "Compress": true, "PathPattern": "/static/*", "TargetOriginId": "DevBLEAEcsAppFrontendDistributionOrigin2FA686FE7", "ViewerProtocolPolicy": "redirect-to-https", }, ], "CustomErrorResponses": Array [ Object { "ErrorCachingMinTTL": 20, "ErrorCode": 403, "ResponseCode": 403, "ResponsePagePath": "/static/sorry.html", }, ], "DefaultCacheBehavior": Object { "AllowedMethods": Array [ "GET", "HEAD", "OPTIONS", "PUT", "PATCH", "POST", "DELETE", ], "CachePolicyId": "4135ea2d-6df8-44a3-9df3-4b5a84be39ad", "Compress": true, "OriginRequestPolicyId": "216adef6-5c7f-47e4-b989-5492eafa07d3", "TargetOriginId": "DevBLEAEcsAppFrontendDistributionOrigin1B126A7CF", "ViewerProtocolPolicy": "https-only", }, "DefaultRootObject": "/", "Enabled": true, "HttpVersion": "http2", "IPV6Enabled": true, "Logging": Object { "Bucket": Object { "Fn::GetAtt": Array [ "FrontendCloudFrontLogBucket688801AF", "RegionalDomainName", ], }, "IncludeCookies": true, "Prefix": "CloudFrontAccessLogs/", }, "Origins": Array [ Object { "CustomOriginConfig": Object { "OriginProtocolPolicy": "http-only", "OriginSSLProtocols": Array [ "TLSv1.2", ], }, "DomainName": Object { "Fn::GetAtt": Array [ "ExportsReader8B249524", "/cdk/exports/Dev-BLEAEcsAppFrontend/DevBLEAEcsAppapnortheast1FnGetAttEcsAppAlb74CC21B3DNSNameDDC2F343", ], }, "Id": "DevBLEAEcsAppFrontendDistributionOrigin1B126A7CF", }, Object { "DomainName": Object { "Fn::GetAtt": Array [ "FrontendWebContentBucketCD12DDF8", "RegionalDomainName", ], }, "Id": "DevBLEAEcsAppFrontendDistributionOrigin2FA686FE7", "S3OriginConfig": Object { "OriginAccessIdentity": Object { "Fn::Join": Array [ "", Array [ "origin-access-identity/cloudfront/", Object { "Ref": "FrontendDistributionOrigin2S3OriginFE05A78D", }, ], ], }, }, }, ], "WebACLId": Object { "Fn::GetAtt": Array [ "FrontendWebAclFA218467", "Arn", ], }, }, }, "Type": "AWS::CloudFront::Distribution", }, "FrontendDistributionOrigin2S3OriginFE05A78D": Object { "Properties": Object { "CloudFrontOriginAccessIdentityConfig": Object { "Comment": "Identity for DevBLEAEcsAppFrontendDistributionOrigin2FA686FE7", }, }, "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", }, "FrontendWebAclFA218467": Object { "Properties": Object { "DefaultAction": Object { "Allow": Object {}, }, "Name": "DevBLEAEcsAppFrontend07EAA01E", "Rules": Array [ Object { "Name": "AWSManagedRulesCommonRuleSet", "OverrideAction": Object { "Count": Object {}, }, "Priority": 1, "Statement": Object { "ManagedRuleGroupStatement": Object { "Name": "AWSManagedRulesCommonRuleSet", "VendorName": "AWS", }, }, "VisibilityConfig": Object { "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesCommonRuleSet", "SampledRequestsEnabled": true, }, }, Object { "Name": "AWSManagedRulesKnownBadInputsRuleSet", "OverrideAction": Object { "Count": Object {}, }, "Priority": 2, "Statement": Object { "ManagedRuleGroupStatement": Object { "Name": "AWSManagedRulesKnownBadInputsRuleSet", "VendorName": "AWS", }, }, "VisibilityConfig": Object { "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesKnownBadInputsRuleSet", "SampledRequestsEnabled": true, }, }, Object { "Name": "AWSManagedRulesAmazonIpReputationList", "OverrideAction": Object { "Count": Object {}, }, "Priority": 3, "Statement": Object { "ManagedRuleGroupStatement": Object { "Name": "AWSManagedRulesAmazonIpReputationList", "VendorName": "AWS", }, }, "VisibilityConfig": Object { "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList", "SampledRequestsEnabled": true, }, }, Object { "Name": "AWSManagedRulesLinuxRuleSet", "OverrideAction": Object { "Count": Object {}, }, "Priority": 4, "Statement": Object { "ManagedRuleGroupStatement": Object { "Name": "AWSManagedRulesLinuxRuleSet", "VendorName": "AWS", }, }, "VisibilityConfig": Object { "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesLinuxRuleSet", "SampledRequestsEnabled": true, }, }, Object { "Name": "AWSManagedRulesSQLiRuleSet", "OverrideAction": Object { "Count": Object {}, }, "Priority": 5, "Statement": Object { "ManagedRuleGroupStatement": Object { "Name": "AWSManagedRulesSQLiRuleSet", "VendorName": "AWS", }, }, "VisibilityConfig": Object { "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesSQLiRuleSet", "SampledRequestsEnabled": true, }, }, ], "Scope": "CLOUDFRONT", "VisibilityConfig": Object { "CloudWatchMetricsEnabled": true, "MetricName": "DevBLEAEcsAppFrontend07EAA01E", "SampledRequestsEnabled": true, }, }, "Type": "AWS::WAFv2::WebACL", }, "FrontendWebContentBucketCD12DDF8": Object { "DeletionPolicy": "Retain", "Properties": Object { "AccessControl": "Private", "BucketEncryption": Object { "ServerSideEncryptionConfiguration": Array [ Object { "ServerSideEncryptionByDefault": Object { "SSEAlgorithm": "AES256", }, }, ], }, "PublicAccessBlockConfiguration": Object { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, "VersioningConfiguration": Object { "Status": "Enabled", }, }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, "FrontendWebContentBucketPolicyC7AADD3B": Object { "Properties": Object { "Bucket": Object { "Ref": "FrontendWebContentBucketCD12DDF8", }, "PolicyDocument": Object { "Statement": Array [ Object { "Action": "s3:*", "Condition": Object { "Bool": Object { "aws:SecureTransport": "false", }, }, "Effect": "Deny", "Principal": Object { "AWS": "*", }, "Resource": Array [ Object { "Fn::GetAtt": Array [ "FrontendWebContentBucketCD12DDF8", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "FrontendWebContentBucketCD12DDF8", "Arn", ], }, "/*", ], ], }, ], }, Object { "Action": "s3:GetObject", "Effect": "Allow", "Principal": Object { "CanonicalUser": Object { "Fn::GetAtt": Array [ "FrontendDistributionOrigin2S3OriginFE05A78D", "S3CanonicalUserId", ], }, }, "Resource": Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "FrontendWebContentBucketCD12DDF8", "Arn", ], }, "/*", ], ], }, }, ], "Version": "2012-10-17", }, }, "Type": "AWS::S3::BucketPolicy", }, }, "Rules": Object { "CheckBootstrapVersion": Object { "Assertions": Array [ Object { "Assert": Object { "Fn::Not": Array [ Object { "Fn::Contains": Array [ Array [ "1", "2", "3", "4", "5", ], Object { "Ref": "BootstrapVersion", }, ], }, ], }, "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.", }, ], }, }, } `; exports[`Snapshot test for BLEA ECS App Stacks 3`] = ` Object { "Parameters": Object { "BootstrapVersion": Object { "Default": "/cdk-bootstrap/hnb659fds/version", "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", "Type": "AWS::SSM::Parameter::Value", }, }, "Resources": Object { "CanaryCanalyPolicy0AA33B6D": Object { "Properties": Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": "s3:GetBucketLocation", "Effect": "Allow", "Resource": Object { "Fn::GetAtt": Array [ "CanaryCanaryArtifactBucket0C98EA34", "Arn", ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "CanaryCanalyPolicy0AA33B6D", "Roles": Array [ Object { "Ref": "CanaryServiceRole6F4F0A66", }, ], }, "Type": "AWS::IAM::Policy", }, "CanaryCanaryArtifactBucket0C98EA34": Object { "DeletionPolicy": "Retain", "Properties": Object { "AccessControl": "Private", "BucketEncryption": Object { "ServerSideEncryptionConfiguration": Array [ Object { "ServerSideEncryptionByDefault": Object { "SSEAlgorithm": "AES256", }, }, ], }, "PublicAccessBlockConfiguration": Object { "BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true, }, }, "Type": "AWS::S3::Bucket", "UpdateReplacePolicy": "Retain", }, "CanaryCanaryArtifactBucketPolicy001FA701": Object { "Properties": Object { "Bucket": Object { "Ref": "CanaryCanaryArtifactBucket0C98EA34", }, "PolicyDocument": Object { "Statement": Array [ Object { "Action": "s3:*", "Condition": Object { "Bool": Object { "aws:SecureTransport": "false", }, }, "Effect": "Deny", "Principal": Object { "AWS": "*", }, "Resource": Array [ Object { "Fn::GetAtt": Array [ "CanaryCanaryArtifactBucket0C98EA34", "Arn", ], }, Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "CanaryCanaryArtifactBucket0C98EA34", "Arn", ], }, "/*", ], ], }, ], }, ], "Version": "2012-10-17", }, }, "Type": "AWS::S3::BucketPolicy", }, "CanaryCanaryDurationAlarm9CB7D45A": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefMonitoringAlarmTopicAF62D4F1C969DD35", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "DatapointsToAlarm": 2, "Dimensions": Array [ Object { "Name": "CanaryName", "Value": Object { "Ref": "CanaryFA053226", }, }, ], "EvaluationPeriods": 2, "MetricName": "Duration", "Namespace": "CloudWatchSynthetics", "Period": 60, "Statistic": "Average", "Threshold": 400, }, "Type": "AWS::CloudWatch::Alarm", }, "CanaryCanaryFailedAlarm6F0AEBED": Object { "Properties": Object { "ActionsEnabled": true, "AlarmActions": Array [ Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefMonitoringAlarmTopicAF62D4F1C969DD35", }, ], "ComparisonOperator": "GreaterThanOrEqualToThreshold", "DatapointsToAlarm": 3, "Dimensions": Array [ Object { "Name": "CanaryName", "Value": Object { "Ref": "CanaryFA053226", }, }, ], "EvaluationPeriods": 3, "MetricName": "Failed", "Namespace": "CloudWatchSynthetics", "Period": 60, "Statistic": "Average", "Threshold": 0.5, "TreatMissingData": "notBreaching", }, "Type": "AWS::CloudWatch::Alarm", }, "CanaryFA053226": Object { "Properties": Object { "ArtifactS3Location": Object { "Fn::Join": Array [ "", Array [ "s3://", Object { "Ref": "CanaryCanaryArtifactBucket0C98EA34", }, ], ], }, "Code": Object { "Handler": "index.handler", "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-ap-northeast-1", }, "S3Key": "1e64e462d93160eb5230b00e665705bfaf2299d9c302ab56dd093bccbe387c4f.zip", }, "ExecutionRoleArn": Object { "Fn::GetAtt": Array [ "CanaryServiceRole6F4F0A66", "Arn", ], }, "Name": "devbleaecsappmo8d5431", "RunConfig": Object { "EnvironmentVariables": Object { "TARGETHOST": Object { "Fn::GetAtt": Array [ "ExportsReader8B249524", "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1FnGetAttFrontendDistributionC0C89627DomainName34318E09", ], }, "TARGETPATH": "/", }, }, "RuntimeVersion": "syn-nodejs-puppeteer-3.5", "Schedule": Object { "DurationInSeconds": "0", "Expression": "rate(1 minute)", }, "StartCanaryAfterCreation": true, }, "Type": "AWS::Synthetics::Canary", }, "CanaryServiceRole6F4F0A66": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "Policies": Array [ Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": "s3:ListAllMyBuckets", "Effect": "Allow", "Resource": "*", }, Object { "Action": "s3:GetBucketLocation", "Effect": "Allow", "Resource": Object { "Fn::GetAtt": Array [ "CanaryCanaryArtifactBucket0C98EA34", "Arn", ], }, }, Object { "Action": "s3:PutObject", "Effect": "Allow", "Resource": Object { "Fn::Join": Array [ "", Array [ Object { "Fn::GetAtt": Array [ "CanaryCanaryArtifactBucket0C98EA34", "Arn", ], }, "/*", ], ], }, }, Object { "Action": "cloudwatch:PutMetricData", "Condition": Object { "StringEquals": Object { "cloudwatch:namespace": "CloudWatchSynthetics", }, }, "Effect": "Allow", "Resource": "*", }, Object { "Action": Array [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents", ], "Effect": "Allow", "Resource": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":logs:ap-northeast-1:", Object { "Ref": "AWS::AccountId", }, ":log-group:/aws/lambda/cwsyn-*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "canaryPolicy", }, ], }, "Type": "AWS::IAM::Role", }, "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68": Object { "DependsOn": Array [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", ], "Properties": Object { "Code": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-ap-northeast-1", }, "S3Key": "78590412b566feb650ac783cf0d1555626dde1a6672e3ed0e0326bc9ca9cd74a.zip", }, "Handler": "__entrypoint__.handler", "MemorySize": 128, "Role": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD", "Arn", ], }, "Runtime": "nodejs18.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", }, "CustomCrossRegionExportReaderCustomResourceProviderRole10531BBD": Object { "Properties": Object { "AssumeRolePolicyDocument": Object { "Statement": Array [ Object { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": Object { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, "ManagedPolicyArns": Array [ Object { "Fn::Sub": "arn:\${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", }, ], "Policies": Array [ Object { "PolicyDocument": Object { "Statement": Array [ Object { "Action": Array [ "ssm:AddTagsToResource", "ssm:RemoveTagsFromResource", "ssm:GetParameters", ], "Effect": "Allow", "Resource": Object { "Fn::Join": Array [ "", Array [ "arn:", Object { "Ref": "AWS::Partition", }, ":ssm:ap-northeast-1:", Object { "Ref": "AWS::AccountId", }, ":parameter/cdk/exports/Dev-BLEAEcsAppMonitoring/*", ], ], }, }, ], "Version": "2012-10-17", }, "PolicyName": "Inline", }, ], }, "Type": "AWS::IAM::Role", }, "Dashboard7A714131": Object { "Properties": Object { "DashboardBody": Object { "Fn::Join": Array [ "", Array [ "{\\"widgets\\":[{\\"type\\":\\"text\\",\\"width\\":24,\\"height\\":1,\\"x\\":0,\\"y\\":0,\\"properties\\":{\\"markdown\\":\\"# Canary\\"}},{\\"type\\":\\"metric\\",\\"width\\":12,\\"height\\":6,\\"x\\":0,\\"y\\":1,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Canary response time\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"annotations\\":{\\"alarms\\":[\\"", Object { "Fn::GetAtt": Array [ "CanaryCanaryDurationAlarm9CB7D45A", "Arn", ], }, "\\"]},\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":12,\\"height\\":6,\\"x\\":12,\\"y\\":1,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Canary request failed\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"annotations\\":{\\"alarms\\":[\\"", Object { "Fn::GetAtt": Array [ "CanaryCanaryFailedAlarm6F0AEBED", "Arn", ], }, "\\"]},\\"yAxis\\":{}}},{\\"type\\":\\"text\\",\\"width\\":24,\\"height\\":1,\\"x\\":0,\\"y\\":7,\\"properties\\":{\\"markdown\\":\\"# Requests\\"}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":0,\\"y\\":8,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"CloudFront Requests\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/CloudFront\\",\\"Requests\\",\\"DistributionId\\",\\"", Object { "Fn::GetAtt": Array [ "ExportsReader8B249524", "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1RefFrontendDistributionC0C89627E26C774F", ], }, "\\",\\"Region\\",\\"Global\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"region\\":\\"us-east-1\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":6,\\"y\\":8,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ALB Requests\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ApplicationELB\\",\\"RequestCount\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/ApplicationELB\\",\\"NewConnectionCount\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/ApplicationELB\\",\\"RejectedConnectionCount\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":12,\\"y\\":8,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Target Group Requests\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ApplicationELB\\",\\"HTTPCode_Target_2XX_Count\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":18,\\"y\\":8,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Aurora Connections\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/RDS\\",\\"DatabaseConnections\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"Writer: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/RDS\\",\\"DatabaseConnections\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"READER\\",{\\"label\\":\\"Reader: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"text\\",\\"width\\":24,\\"height\\":1,\\"x\\":0,\\"y\\":14,\\"properties\\":{\\"markdown\\":\\"# Response Time\\"}},{\\"type\\":\\"metric\\",\\"width\\":8,\\"height\\":6,\\"x\\":0,\\"y\\":15,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Target Group Response Time\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ApplicationELB\\",\\"TargetResponseTime\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":8,\\"height\\":6,\\"x\\":8,\\"y\\":15,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Aurora Operation Lantency (Writer)\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/RDS\\",\\"InsertLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"SelectLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"UpdateLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"CommitLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"DDLLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"DeleteLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"DMLLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"ReadLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}],[\\"AWS/RDS\\",\\"WriteLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":8,\\"height\\":6,\\"x\\":16,\\"y\\":15,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Aurora Operation Lantency (Reader)\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/RDS\\",\\"SelectLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"READER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"ReadLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"READER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}],[\\"AWS/RDS\\",\\"WriteLatency\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"READER\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"text\\",\\"width\\":24,\\"height\\":1,\\"x\\":0,\\"y\\":21,\\"properties\\":{\\"markdown\\":\\"# Errors\\"}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":0,\\"y\\":22,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"CloudFront Error Rates\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":true,\\"metrics\\":[[\\"AWS/CloudFront\\",\\"5xxErrorRate\\",\\"DistributionId\\",\\"", Object { "Fn::GetAtt": Array [ "ExportsReader8B249524", "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1RefFrontendDistributionC0C89627E26C774F", ], }, "\\",\\"Region\\",\\"Global\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"region\\":\\"us-east-1\\",\\"period\\":60}],[\\"AWS/CloudFront\\",\\"4xxErrorRate\\",\\"DistributionId\\",\\"", Object { "Fn::GetAtt": Array [ "ExportsReader8B249524", "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1RefFrontendDistributionC0C89627E26C774F", ], }, "\\",\\"Region\\",\\"Global\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"region\\":\\"us-east-1\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":6,\\"y\\":22,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ALB Errors\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ApplicationELB\\",\\"ClientTLSNegotiationErrorCount\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/ApplicationELB\\",\\"HTTPCode_ELB_5XX_Count\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/ApplicationELB\\",\\"HTTPCode_ELB_4XX_Count\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":12,\\"y\\":22,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Alarm for UnHealthy Host in Target Group\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"annotations\\":{\\"alarms\\":[\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlbTgUnHealthyHostCount0E9D8FD9Arn7BD25624", }, "\\"]},\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":18,\\"y\\":22,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Target Group Errors\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":true,\\"metrics\\":[[\\"AWS/ApplicationELB\\",\\"HTTPCode_Target_5XX_Count\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/ApplicationELB\\",\\"HTTPCode_Target_4XX_Count\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/ApplicationELB\\",\\"TargetConnectionErrorCount\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"AWS/ApplicationELB\\",\\"TargetTLSNegotiationErrorCount\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}]],\\"yAxis\\":{}}},{\\"type\\":\\"text\\",\\"width\\":24,\\"height\\":1,\\"x\\":0,\\"y\\":28,\\"properties\\":{\\"markdown\\":\\"# Resources\\"}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":0,\\"y\\":29,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ECS CPU Utilization\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ECS\\",\\"CPUUtilization\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":6,\\"y\\":29,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ECS Memory Utilization\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ECS\\",\\"MemoryUtilization\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":12,\\"y\\":29,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ECS Desired Task Count\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"ECS/ContainerInsights\\",\\"DesiredTaskCount\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":18,\\"y\\":29,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ECS Task Count\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":true,\\"metrics\\":[[\\"ECS/ContainerInsights\\",\\"RunningTaskCount\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"ECS/ContainerInsights\\",\\"PendingTaskCount\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":12,\\"height\\":6,\\"x\\":0,\\"y\\":35,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ECS Auto Scaling with Requests per tasks\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ApplicationELB\\",\\"RequestCountPerTarget\\",\\"LoadBalancer\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlb74CC21B3LoadBalancerFullName06D09417", }, "\\",\\"TargetGroup\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppAlbAlbSslListenerAppTargetGroupGroup00D988B0TargetGroupNameC50313E4", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"stat\\":\\"Sum\\"}],[\\"ECS/ContainerInsights\\",\\"RunningTaskCount\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}],[\\"ECS/ContainerInsights\\",\\"PendingTaskCount\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}]],\\"annotations\\":{\\"horizontal\\":[{\\"value\\":10000,\\"label\\":\\"Threshold: Requests per tasks\\",\\"color\\":\\"#aec7e8\\",\\"fill\\":\\"below\\",\\"yAxis\\":\\"left\\"}]},\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":12,\\"height\\":6,\\"x\\":12,\\"y\\":35,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"ECS Auto Scaling with CPU Utilization\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/ECS\\",\\"CPUUtilization\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"ECS/ContainerInsights\\",\\"RunningTaskCount\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}],[\\"ECS/ContainerInsights\\",\\"PendingTaskCount\\",\\"ClusterName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefEcsAppCluster7C7DF57BDB05AF68", }, "\\",\\"ServiceName\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputFnGetAttEcsAppServiceABC8901FName20F6B0C5", }, "\\",{\\"label\\":\\"\${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60,\\"yAxis\\":\\"right\\"}]],\\"annotations\\":{\\"horizontal\\":[{\\"value\\":50,\\"label\\":\\"Threshold: CPU Utilization\\",\\"color\\":\\"#aec7e8\\",\\"fill\\":\\"below\\",\\"yAxis\\":\\"left\\"}]},\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":0,\\"y\\":41,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Aurora CPU Utilization\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/RDS\\",\\"CPUUtilization\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"Writer: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"CPUUtilization\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"READER\\",{\\"label\\":\\"Reader: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":6,\\"y\\":41,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Aurora Free Memory\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/RDS\\",\\"FreeableMemory\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"Writer: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"FreeableMemory\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"READER\\",{\\"label\\":\\"Reader: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}},{\\"type\\":\\"metric\\",\\"width\\":6,\\"height\\":6,\\"x\\":12,\\"y\\":41,\\"properties\\":{\\"view\\":\\"timeSeries\\",\\"title\\":\\"Aurora Free Local Storage\\",\\"region\\":\\"", Object { "Ref": "AWS::Region", }, "\\",\\"stacked\\":false,\\"metrics\\":[[\\"AWS/RDS\\",\\"FreeLocalStorage\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"WRITER\\",{\\"label\\":\\"Writer: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}],[\\"AWS/RDS\\",\\"FreeLocalStorage\\",\\"DBClusterIdentifier\\",\\"", Object { "Fn::ImportValue": "Dev-BLEAEcsApp:ExportsOutputRefDatastoreAuroraCluster2FE23DD58102FDEF", }, "\\",\\"Role\\",\\"READER\\",{\\"label\\":\\"Reader: \${PROP('MetricName')} /\${PROP('Period')}sec\\",\\"period\\":60}]],\\"yAxis\\":{}}}]}", ], ], }, "DashboardName": "BLEA-ECS-App-Sample", }, "Type": "AWS::CloudWatch::Dashboard", }, "ExportsReader8B249524": Object { "DeletionPolicy": "Delete", "Properties": Object { "ReaderProps": Object { "imports": Object { "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1FnGetAttFrontendDistributionC0C89627DomainName34318E09": "{{resolve:ssm:/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1FnGetAttFrontendDistributionC0C89627DomainName34318E09}}", "/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1RefFrontendDistributionC0C89627E26C774F": "{{resolve:ssm:/cdk/exports/Dev-BLEAEcsAppMonitoring/DevBLEAEcsAppFrontenduseast1RefFrontendDistributionC0C89627E26C774F}}", }, "prefix": "Dev-BLEAEcsAppMonitoring", "region": "ap-northeast-1", }, "ServiceToken": Object { "Fn::GetAtt": Array [ "CustomCrossRegionExportReaderCustomResourceProviderHandler46647B68", "Arn", ], }, }, "Type": "Custom::CrossRegionExportReader", "UpdateReplacePolicy": "Delete", }, }, "Rules": Object { "CheckBootstrapVersion": Object { "Assertions": Array [ Object { "Assert": Object { "Fn::Not": Array [ Object { "Fn::Contains": Array [ Array [ "1", "2", "3", "4", "5", ], Object { "Ref": "BootstrapVersion", }, ], }, ], }, "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.", }, ], }, }, } `;