hikarunakatani / cifar10-aws

Simple MLOps workflows
0 stars 0 forks source link

modified tfcmt command #2 #12

Closed hikarunakatani closed 2 months ago

github-actions[bot] commented 2 months ago

Plan Result

CI link

Plan: 23 to add, 0 to change, 0 to destroy.
Change Result (Click me) ```hcl # data.aws_iam_policy_document.bucket_policy will be read during apply # (config refers to values not yet known) <= data "aws_iam_policy_document" "bucket_policy" { + id = (known after apply) + json = (known after apply) + statement { + actions = [ + "s3:DeleteObject", + "s3:GetObject", + "s3:PutObject", ] + effect = "Allow" + resources = [ + (known after apply), ] + principals { + identifiers = [ + (known after apply), ] + type = "AWS" } } } # aws_cloudwatch_event_rule.ecr_push_rule will be created + resource "aws_cloudwatch_event_rule" "ecr_push_rule" { + arn = (known after apply) + description = "Trigger an ECS task when an image is pushed to ECR" + event_bus_name = "default" + event_pattern = jsonencode( { + detail = { + action-type = [ + "PUSH", ] + repository-name = [ + "cifar10-mlops-repository", ] } + detail-type = [ + "ECR Image Action", ] + source = [ + "aws.ecr", ] } ) + id = (known after apply) + is_enabled = true + name = "cifar10-mlops-run-ecs-task" + name_prefix = (known after apply) + tags_all = (known after apply) } # aws_cloudwatch_event_target.ecr_push_target will be created + resource "aws_cloudwatch_event_target" "ecr_push_target" { + arn = (known after apply) + event_bus_name = "default" + id = (known after apply) + rule = "cifar10-mlops-run-ecs-task" + target_id = "run-index-py-function" } # aws_cloudwatch_log_group.main will be created + resource "aws_cloudwatch_log_group" "main" { + arn = (known after apply) + id = (known after apply) + name = "cifar10-mlops-log-group" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # aws_ecr_repository.main will be created + resource "aws_ecr_repository" "main" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "cifar10-mlops-repository" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) + image_scanning_configuration { + scan_on_push = true } } # aws_ecs_cluster.main will be created + resource "aws_ecs_cluster" "main" { + arn = (known after apply) + id = (known after apply) + name = "cifar10-mlops-cluster" + tags_all = (known after apply) + setting { + name = "containerInsights" + value = "enabled" } } # aws_ecs_cluster_capacity_providers.this will be created + resource "aws_ecs_cluster_capacity_providers" "this" { + capacity_providers = [ + "FARGATE", ] + cluster_name = "cifar10-mlops-cluster" + id = (known after apply) + default_capacity_provider_strategy { + base = 0 + capacity_provider = "FARGATE" + weight = 0 } } # aws_ecs_service.main will be created + resource "aws_ecs_service" "main" { + cluster = (known after apply) + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = (known after apply) + name = "cifar10-mlops-service" + platform_version = "LATEST" + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + capacity_provider_strategy { + base = 0 + capacity_provider = "FARGATE" + weight = 100 } + deployment_circuit_breaker { + enable = true + rollback = true } + network_configuration { + assign_public_ip = true + security_groups = (known after apply) + subnets = (known after apply) } } # aws_ecs_task_definition.service will be created + resource "aws_ecs_task_definition" "service" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "2048" + execution_role_arn = (known after apply) + family = "cifar10-mlops-task" + id = (known after apply) + memory = "8192" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) + task_role_arn = (known after apply) } # aws_iam_role.ecs_task_exec will be created + resource "aws_iam_role" "ecs_task_exec" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "ecs-tasks.amazonaws.com" } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = [ + "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", ] + max_session_duration = 3600 + name = "ecs_task_exec" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) } # aws_iam_role.ecs_task_role will be created + resource "aws_iam_role" "ecs_task_role" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "ecs-tasks.amazonaws.com" } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = (known after apply) + max_session_duration = 3600 + name = "ecs_task_role" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) + inline_policy { + name = "allow_logs" + policy = jsonencode( { + Statement = [ + { + Action = [ + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", ] + Effect = "Allow" + Resource = "*" }, ] + Version = "2012-10-17" } ) } } # aws_iam_role.lambda_execution_role will be created + resource "aws_iam_role" "lambda_execution_role" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "lambda.amazonaws.com" } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = (known after apply) + max_session_duration = 3600 + name = "cifar10-mlops-lambda-execution-role" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) + inline_policy { + name = "lambda_execution_policy" + policy = jsonencode( { + Statement = [ + { + Action = [ + "ecr:GetAuthorizationToken", + "ecr:BatchCheckLayerAvailability", + "ecr:GetDownloadUrlForLayer", + "ecr:BatchGetImage", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents", ] + Effect = "Allow" + Resource = "*" }, ] + Version = "2012-10-17" } ) } } # aws_lambda_function.invoke_task will be created + resource "aws_lambda_function" "invoke_task" { + architectures = (known after apply) + arn = (known after apply) + filename = "lambda_function.zip" + function_name = "cifar10-mlops-invoke-task" + handler = "invoke_task.lambda_handler" + id = (known after apply) + invoke_arn = (known after apply) + last_modified = (known after apply) + memory_size = 128 + package_type = "Zip" + publish = false + qualified_arn = (known after apply) + qualified_invoke_arn = (known after apply) + reserved_concurrent_executions = -1 + role = (known after apply) + runtime = "python3.9" + signing_job_arn = (known after apply) + signing_profile_version_arn = (known after apply) + skip_destroy = false + source_code_hash = "Do2pUs/pluxzzLPoDo2Kyij7T4pLwn2Q88OH4sdYFG8=" + source_code_size = (known after apply) + tags_all = (known after apply) + timeout = 3 + version = (known after apply) } # aws_lambda_permission.allow_eventbridge will be created + resource "aws_lambda_permission" "allow_eventbridge" { + action = "lambda:InvokeFunction" + function_name = "cifar10-mlops-invoke-task" + id = (known after apply) + principal = "events.amazonaws.com" + source_arn = (known after apply) + statement_id = "AllowExecutionFromEventBridge" + statement_id_prefix = (known after apply) } # aws_s3_bucket.dataset will be created + resource "aws_s3_bucket" "dataset" { + acceleration_status = (known after apply) + acl = (known after apply) + arn = (known after apply) + bucket = "cifar10-mlops-bucket" + bucket_domain_name = (known after apply) + bucket_prefix = (known after apply) + bucket_regional_domain_name = (known after apply) + force_destroy = false + hosted_zone_id = (known after apply) + id = (known after apply) + object_lock_enabled = (known after apply) + policy = (known after apply) + region = (known after apply) + request_payer = (known after apply) + tags_all = (known after apply) + website_domain = (known after apply) + website_endpoint = (known after apply) } # aws_s3_bucket_policy.bucket_policy will be created + resource "aws_s3_bucket_policy" "bucket_policy" { + bucket = (known after apply) + id = (known after apply) + policy = (known after apply) } # aws_s3_bucket_public_access_block.main will be created + resource "aws_s3_bucket_public_access_block" "main" { + block_public_acls = true + block_public_policy = true + bucket = (known after apply) + id = (known after apply) + ignore_public_acls = true + restrict_public_buckets = true } # aws_security_group.ecs will be created + resource "aws_security_group" "ecs" { + arn = (known after apply) + description = "Security group for training task" + egress = [ + { + cidr_blocks = [] + description = "" + from_port = 443 + ipv6_cidr_blocks = [] + prefix_list_ids = [] + protocol = "tcp" + security_groups = (known after apply) + self = false + to_port = 443 }, ] + id = (known after apply) + ingress = (known after apply) + name = "cifar10-mlops-ecs-securitygroup" + name_prefix = (known after apply) + owner_id = (known after apply) + revoke_rules_on_delete = false + tags_all = (known after apply) + vpc_id = (known after apply) } # aws_security_group.vpc_endpoint will be created + resource "aws_security_group" "vpc_endpoint" { + arn = (known after apply) + description = "Security group for VPC Endpoint" + egress = [ + { + cidr_blocks = [ + "10.0.0.0/16", ] + description = "" + from_port = 443 + ipv6_cidr_blocks = [] + prefix_list_ids = [] + protocol = "tcp" + security_groups = [] + self = false + to_port = 443 }, ] + id = (known after apply) + ingress = [ + { + cidr_blocks = [ + "10.0.0.0/16", ] + description = "" + from_port = 443 + ipv6_cidr_blocks = [] + prefix_list_ids = [] + protocol = "tcp" + security_groups = [] + self = false + to_port = 443 }, ] + name = "cifar10-mlops-vpc-endpoint-securitygroup" + name_prefix = (known after apply) + owner_id = (known after apply) + revoke_rules_on_delete = false + tags_all = (known after apply) + vpc_id = (known after apply) } # aws_subnet.private1a will be created + resource "aws_subnet" "private1a" { + arn = (known after apply) + assign_ipv6_address_on_creation = false + availability_zone = "ap-northeast-1a" + availability_zone_id = (known after apply) + cidr_block = "10.0.1.0/24" + enable_dns64 = false + enable_resource_name_dns_a_record_on_launch = false + enable_resource_name_dns_aaaa_record_on_launch = false + id = (known after apply) + ipv6_cidr_block_association_id = (known after apply) + ipv6_native = false + map_public_ip_on_launch = false + owner_id = (known after apply) + private_dns_hostname_type_on_launch = (known after apply) + tags = { + "Name" = "cifar10-mlops-subnet-private-ap-northeast-1a" } + tags_all = { + "Name" = "cifar10-mlops-subnet-private-ap-northeast-1a" } + vpc_id = (known after apply) } # aws_vpc.main will be created + resource "aws_vpc" "main" { + arn = (known after apply) + cidr_block = "10.0.0.0/16" + default_network_acl_id = (known after apply) + default_route_table_id = (known after apply) + default_security_group_id = (known after apply) + dhcp_options_id = (known after apply) + enable_dns_hostnames = (known after apply) + enable_dns_support = true + enable_network_address_usage_metrics = (known after apply) + id = (known after apply) + instance_tenancy = "default" + ipv6_association_id = (known after apply) + ipv6_cidr_block = (known after apply) + ipv6_cidr_block_network_border_group = (known after apply) + main_route_table_id = (known after apply) + owner_id = (known after apply) + tags = { + "Name" = "cifar10-mlops-vpc" } + tags_all = { + "Name" = "cifar10-mlops-vpc" } } # aws_vpc_endpoint.ecr_api will be created + resource "aws_vpc_endpoint" "ecr_api" { + arn = (known after apply) + cidr_blocks = (known after apply) + dns_entry = (known after apply) + id = (known after apply) + ip_address_type = (known after apply) + network_interface_ids = (known after apply) + owner_id = (known after apply) + policy = (known after apply) + prefix_list_id = (known after apply) + private_dns_enabled = false + requester_managed = (known after apply) + route_table_ids = (known after apply) + security_group_ids = (known after apply) + service_name = "com.amazonaws.ap-northeast-1.ecr.api" + state = (known after apply) + subnet_ids = (known after apply) + tags_all = (known after apply) + vpc_endpoint_type = "Interface" + vpc_id = (known after apply) } # aws_vpc_endpoint.ecr_dkr will be created + resource "aws_vpc_endpoint" "ecr_dkr" { + arn = (known after apply) + cidr_blocks = (known after apply) + dns_entry = (known after apply) + id = (known after apply) + ip_address_type = (known after apply) + network_interface_ids = (known after apply) + owner_id = (known after apply) + policy = (known after apply) + prefix_list_id = (known after apply) + private_dns_enabled = false + requester_managed = (known after apply) + route_table_ids = (known after apply) + security_group_ids = (known after apply) + service_name = "com.amazonaws.ap-northeast-1.ecr.dkr" + state = (known after apply) + subnet_ids = (known after apply) + tags_all = (known after apply) + vpc_endpoint_type = "Interface" + vpc_id = (known after apply) } # aws_vpc_endpoint.s3 will be created + resource "aws_vpc_endpoint" "s3" { + arn = (known after apply) + cidr_blocks = (known after apply) + dns_entry = (known after apply) + id = (known after apply) + ip_address_type = (known after apply) + network_interface_ids = (known after apply) + owner_id = (known after apply) + policy = (known after apply) + prefix_list_id = (known after apply) + private_dns_enabled = false + requester_managed = (known after apply) + route_table_ids = (known after apply) + security_group_ids = (known after apply) + service_name = "com.amazonaws.ap-northeast-1.s3" + state = (known after apply) + subnet_ids = (known after apply) + tags_all = (known after apply) + vpc_endpoint_type = "Interface" + vpc_id = (known after apply) } Plan: 23 to add, 0 to change, 0 to destroy. ```
github-actions[bot] commented 2 months ago

:white_check_mark: Apply Succeeded

CI link

Apply complete! Resources: 23 added, 0 changed, 0 destroyed.
Details (Click me) ```hcl [command]/home/runner/work/_temp/5fe3b736-6be4-4fc1-a20c-33b96dcf3d10/terraform-bin apply -auto-approve -no-color -input=false data.archive_file.lambda: Reading... data.archive_file.lambda: Read complete after 0s [id=26195c4c8f2bd597b9e725a66d8589deba28f40c] data.aws_caller_identity.self: Reading... data.aws_caller_identity.self: Read complete after 0s [id=490755108457] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create <= read (data resources) Terraform will perform the following actions: # data.aws_iam_policy_document.bucket_policy will be read during apply # (config refers to values not yet known) <= data "aws_iam_policy_document" "bucket_policy" { + id = (known after apply) + json = (known after apply) + statement { + actions = [ + "s3:DeleteObject", + "s3:GetObject", + "s3:PutObject", ] + effect = "Allow" + resources = [ + (known after apply), ] + principals { + identifiers = [ + (known after apply), ] + type = "AWS" } } } # aws_cloudwatch_event_rule.ecr_push_rule will be created + resource "aws_cloudwatch_event_rule" "ecr_push_rule" { + arn = (known after apply) + description = "Trigger an ECS task when an image is pushed to ECR" + event_bus_name = "default" + event_pattern = jsonencode( { + detail = { + action-type = [ + "PUSH", ] + repository-name = [ + "cifar10-mlops-repository", ] } + detail-type = [ + "ECR Image Action", ] + source = [ + "aws.ecr", ] } ) + id = (known after apply) + is_enabled = true + name = "cifar10-mlops-run-ecs-task" + name_prefix = (known after apply) + tags_all = (known after apply) } # aws_cloudwatch_event_target.ecr_push_target will be created + resource "aws_cloudwatch_event_target" "ecr_push_target" { + arn = (known after apply) + event_bus_name = "default" + id = (known after apply) + rule = "cifar10-mlops-run-ecs-task" + target_id = "run-index-py-function" } # aws_cloudwatch_log_group.main will be created + resource "aws_cloudwatch_log_group" "main" { + arn = (known after apply) + id = (known after apply) + name = "cifar10-mlops-log-group" + name_prefix = (known after apply) + retention_in_days = 0 + skip_destroy = false + tags_all = (known after apply) } # aws_ecr_repository.main will be created + resource "aws_ecr_repository" "main" { + arn = (known after apply) + id = (known after apply) + image_tag_mutability = "MUTABLE" + name = "cifar10-mlops-repository" + registry_id = (known after apply) + repository_url = (known after apply) + tags_all = (known after apply) + image_scanning_configuration { + scan_on_push = true } } # aws_ecs_cluster.main will be created + resource "aws_ecs_cluster" "main" { + arn = (known after apply) + id = (known after apply) + name = "cifar10-mlops-cluster" + tags_all = (known after apply) + setting { + name = "containerInsights" + value = "enabled" } } # aws_ecs_cluster_capacity_providers.this will be created + resource "aws_ecs_cluster_capacity_providers" "this" { + capacity_providers = [ + "FARGATE", ] + cluster_name = "cifar10-mlops-cluster" + id = (known after apply) + default_capacity_provider_strategy { + base = 0 + capacity_provider = "FARGATE" + weight = 0 } } # aws_ecs_service.main will be created + resource "aws_ecs_service" "main" { + cluster = (known after apply) + deployment_maximum_percent = 200 + deployment_minimum_healthy_percent = 100 + desired_count = 1 + enable_ecs_managed_tags = false + enable_execute_command = false + iam_role = (known after apply) + id = (known after apply) + launch_type = (known after apply) + name = "cifar10-mlops-service" + platform_version = "LATEST" + scheduling_strategy = "REPLICA" + tags_all = (known after apply) + task_definition = (known after apply) + triggers = (known after apply) + wait_for_steady_state = false + capacity_provider_strategy { + base = 0 + capacity_provider = "FARGATE" + weight = 100 } + deployment_circuit_breaker { + enable = true + rollback = true } + network_configuration { + assign_public_ip = true + security_groups = (known after apply) + subnets = (known after apply) } } # aws_ecs_task_definition.service will be created + resource "aws_ecs_task_definition" "service" { + arn = (known after apply) + arn_without_revision = (known after apply) + container_definitions = (known after apply) + cpu = "2048" + execution_role_arn = (known after apply) + family = "cifar10-mlops-task" + id = (known after apply) + memory = "8192" + network_mode = "awsvpc" + requires_compatibilities = [ + "FARGATE", ] + revision = (known after apply) + skip_destroy = false + tags_all = (known after apply) + task_role_arn = (known after apply) } # aws_iam_role.ecs_task_exec will be created + resource "aws_iam_role" "ecs_task_exec" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "ecs-tasks.amazonaws.com" } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = [ + "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy", ] + max_session_duration = 3600 + name = "ecs_task_exec" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) } # aws_iam_role.ecs_task_role will be created + resource "aws_iam_role" "ecs_task_role" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "ecs-tasks.amazonaws.com" } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = (known after apply) + max_session_duration = 3600 + name = "ecs_task_role" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) + inline_policy { + name = "allow_logs" + policy = jsonencode( { + Statement = [ + { + Action = [ + "logs:CreateLogStream", + "logs:DescribeLogGroups", + "logs:DescribeLogStreams", + "logs:PutLogEvents", ] + Effect = "Allow" + Resource = "*" }, ] + Version = "2012-10-17" } ) } } # aws_iam_role.lambda_execution_role will be created + resource "aws_iam_role" "lambda_execution_role" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Principal = { + Service = "lambda.amazonaws.com" } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = (known after apply) + max_session_duration = 3600 + name = "cifar10-mlops-lambda-execution-role" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) + inline_policy { + name = "lambda_execution_policy" + policy = jsonencode( { + Statement = [ + { + Action = [ + "ecr:GetAuthorizationToken", + "ecr:BatchCheckLayerAvailability", + "ecr:GetDownloadUrlForLayer", + "ecr:BatchGetImage", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents", ] + Effect = "Allow" + Resource = "*" }, ] + Version = "2012-10-17" } ) } } # aws_lambda_function.invoke_task will be created + resource "aws_lambda_function" "invoke_task" { + architectures = (known after apply) + arn = (known after apply) + filename = "lambda_function.zip" + function_name = "cifar10-mlops-invoke-task" + handler = "invoke_task.lambda_handler" + id = (known after apply) + invoke_arn = (known after apply) + last_modified = (known after apply) + memory_size = 128 + package_type = "Zip" + publish = false + qualified_arn = (known after apply) + qualified_invoke_arn = (known after apply) + reserved_concurrent_executions = -1 + role = (known after apply) + runtime = "python3.9" + signing_job_arn = (known after apply) + signing_profile_version_arn = (known after apply) + skip_destroy = false + source_code_hash = "Do2pUs/pluxzzLPoDo2Kyij7T4pLwn2Q88OH4sdYFG8=" + source_code_size = (known after apply) + tags_all = (known after apply) + timeout = 3 + version = (known after apply) } # aws_lambda_permission.allow_eventbridge will be created + resource "aws_lambda_permission" "allow_eventbridge" { + action = "lambda:InvokeFunction" + function_name = "cifar10-mlops-invoke-task" + id = (known after apply) + principal = "events.amazonaws.com" + source_arn = (known after apply) + statement_id = "AllowExecutionFromEventBridge" + statement_id_prefix = (known after apply) } # aws_s3_bucket.dataset will be created + resource "aws_s3_bucket" "dataset" { + acceleration_status = (known after apply) + acl = (known after apply) + arn = (known after apply) + bucket = "cifar10-mlops-bucket" + bucket_domain_name = (known after apply) + bucket_prefix = (known after apply) + bucket_regional_domain_name = (known after apply) + force_destroy = false + hosted_zone_id = (known after apply) + id = (known after apply) + object_lock_enabled = (known after apply) + policy = (known after apply) + region = (known after apply) + request_payer = (known after apply) + tags_all = (known after apply) + website_domain = (known after apply) + website_endpoint = (known after apply) } # aws_s3_bucket_policy.bucket_policy will be created + resource "aws_s3_bucket_policy" "bucket_policy" { + bucket = (known after apply) + id = (known after apply) + policy = (known after apply) } # aws_s3_bucket_public_access_block.main will be created + resource "aws_s3_bucket_public_access_block" "main" { + block_public_acls = true + block_public_policy = true + bucket = (known after apply) + id = (known after apply) + ignore_public_acls = true + restrict_public_buckets = true } # aws_security_group.ecs will be created + resource "aws_security_group" "ecs" { + arn = (known after apply) + description = "Security group for training task" + egress = [ + { + cidr_blocks = [] + description = "" + from_port = 443 + ipv6_cidr_blocks = [] + prefix_list_ids = [] + protocol = "tcp" + security_groups = (known after apply) + self = false + to_port = 443 }, ] + id = (known after apply) + ingress = (known after apply) + name = "cifar10-mlops-ecs-securitygroup" + name_prefix = (known after apply) + owner_id = (known after apply) + revoke_rules_on_delete = false + tags_all = (known after apply) + vpc_id = (known after apply) } # aws_security_group.vpc_endpoint will be created + resource "aws_security_group" "vpc_endpoint" { + arn = (known after apply) + description = "Security group for VPC Endpoint" + egress = [ + { + cidr_blocks = [ + "10.0.0.0/16", ] + description = "" + from_port = 443 + ipv6_cidr_blocks = [] + prefix_list_ids = [] + protocol = "tcp" + security_groups = [] + self = false + to_port = 443 }, ] + id = (known after apply) + ingress = [ + { + cidr_blocks = [ + "10.0.0.0/16", ] + description = "" + from_port = 443 + ipv6_cidr_blocks = [] + prefix_list_ids = [] + protocol = "tcp" + security_groups = [] + self = false + to_port = 443 }, ] + name = "cifar10-mlops-vpc-endpoint-securitygroup" + name_prefix = (known after apply) + owner_id = (known after apply) + revoke_rules_on_delete = false + tags_all = (known after apply) + vpc_id = (known after apply) } # aws_subnet.private1a will be created + resource "aws_subnet" "private1a" { + arn = (known after apply) + assign_ipv6_address_on_creation = false + availability_zone = "ap-northeast-1a" + availability_zone_id = (known after apply) + cidr_block = "10.0.1.0/24" + enable_dns64 = false + enable_resource_name_dns_a_record_on_launch = false + enable_resource_name_dns_aaaa_record_on_launch = false + id = (known after apply) + ipv6_cidr_block_association_id = (known after apply) + ipv6_native = false + map_public_ip_on_launch = false + owner_id = (known after apply) + private_dns_hostname_type_on_launch = (known after apply) + tags = { + "Name" = "cifar10-mlops-subnet-private-ap-northeast-1a" } + tags_all = { + "Name" = "cifar10-mlops-subnet-private-ap-northeast-1a" } + vpc_id = (known after apply) } # aws_vpc.main will be created + resource "aws_vpc" "main" { + arn = (known after apply) + cidr_block = "10.0.0.0/16" + default_network_acl_id = (known after apply) + default_route_table_id = (known after apply) + default_security_group_id = (known after apply) + dhcp_options_id = (known after apply) + enable_dns_hostnames = (known after apply) + enable_dns_support = true + enable_network_address_usage_metrics = (k # ... # ... The maximum length of GitHub Comment is 65536, so the content is omitted by tfcmt. # ... = "sts:AssumeRole"%0A + Effect = "Allow"%0A + Principal = {%0A + Service = "lambda.amazonaws.com"%0A }%0A },%0A ]%0A + Version = "2012-10-17"%0A }%0A )%0A + create_date = (known after apply)%0A + force_detach_policies = false%0A + id = (known after apply)%0A + managed_policy_arns = (known after apply)%0A + max_session_duration = 3600%0A + name = "cifar10-mlops-lambda-execution-role"%0A + name_prefix = (known after apply)%0A + path = "/"%0A + tags_all = (known after apply)%0A + unique_id = (known after apply)%0A%0A + inline_policy {%0A + name = "lambda_execution_policy"%0A + policy = jsonencode(%0A {%0A + Statement = [%0A + {%0A + Action = [%0A + "ecr:GetAuthorizationToken",%0A + "ecr:BatchCheckLayerAvailability",%0A + "ecr:GetDownloadUrlForLayer",%0A + "ecr:BatchGetImage",%0A + "logs:CreateLogGroup",%0A + "logs:CreateLogStream",%0A + "logs:PutLogEvents",%0A ]%0A + Effect = "Allow"%0A + Resource = "*"%0A },%0A ]%0A + Version = "2012-10-17"%0A }%0A )%0A }%0A }%0A%0A # aws_lambda_function.invoke_task will be created%0A + resource "aws_lambda_function" "invoke_task" {%0A + architectures = (known after apply)%0A + arn = (known after apply)%0A + filename = "lambda_function.zip"%0A + function_name = "cifar10-mlops-invoke-task"%0A + handler = "invoke_task.lambda_handler"%0A + id = (known after apply)%0A + invoke_arn = (known after apply)%0A + last_modified = (known after apply)%0A + memory_size = 128%0A + package_type = "Zip"%0A + publish = false%0A + qualified_arn = (known after apply)%0A + qualified_invoke_arn = (known after apply)%0A + reserved_concurrent_executions = -1%0A + role = (known after apply)%0A + runtime = "python3.9"%0A + signing_job_arn = (known after apply)%0A + signing_profile_version_arn = (known after apply)%0A + skip_destroy = false%0A + source_code_hash = "Do2pUs/pluxzzLPoDo2Kyij7T4pLwn2Q88OH4sdYFG8="%0A + source_code_size = (known after apply)%0A + tags_all = (known after apply)%0A + timeout = 3%0A + version = (known after apply)%0A }%0A%0A # aws_lambda_permission.allow_eventbridge will be created%0A + resource "aws_lambda_permission" "allow_eventbridge" {%0A + action = "lambda:InvokeFunction"%0A + function_name = "cifar10-mlops-invoke-task"%0A + id = (known after apply)%0A + principal = "events.amazonaws.com"%0A + source_arn = (known after apply)%0A + statement_id = "AllowExecutionFromEventBridge"%0A + statement_id_prefix = (known after apply)%0A }%0A%0A # aws_s3_bucket.dataset will be created%0A + resource "aws_s3_bucket" "dataset" {%0A + acceleration_status = (known after apply)%0A + acl = (known after apply)%0A + arn = (known after apply)%0A + bucket = "cifar10-mlops-bucket"%0A + bucket_domain_name = (known after apply)%0A + bucket_prefix = (known after apply)%0A + bucket_regional_domain_name = (known after apply)%0A + force_destroy = false%0A + hosted_zone_id = (known after apply)%0A + id = (known after apply)%0A + object_lock_enabled = (known after apply)%0A + policy = (known after apply)%0A + region = (known after apply)%0A + request_payer = (known after apply)%0A + tags_all = (known after apply)%0A + website_domain = (known after apply)%0A + website_endpoint = (known after apply)%0A }%0A%0A # aws_s3_bucket_policy.bucket_policy will be created%0A + resource "aws_s3_bucket_policy" "bucket_policy" {%0A + bucket = (known after apply)%0A + id = (known after apply)%0A + policy = (known after apply)%0A }%0A%0A # aws_s3_bucket_public_access_block.main will be created%0A + resource "aws_s3_bucket_public_access_block" "main" {%0A + block_public_acls = true%0A + block_public_policy = true%0A + bucket = (known after apply)%0A + id = (known after apply)%0A + ignore_public_acls = true%0A + restrict_public_buckets = true%0A }%0A%0A # aws_security_group.ecs will be created%0A + resource "aws_security_group" "ecs" {%0A + arn = (known after apply)%0A + description = "Security group for training task"%0A + egress = [%0A + {%0A + cidr_blocks = []%0A + description = ""%0A + from_port = 443%0A + ipv6_cidr_blocks = []%0A + prefix_list_ids = []%0A + protocol = "tcp"%0A + security_groups = (known after apply)%0A + self = false%0A + to_port = 443%0A },%0A ]%0A + id = (known after apply)%0A + ingress = (known after apply)%0A + name = "cifar10-mlops-ecs-securitygroup"%0A + name_prefix = (known after apply)%0A + owner_id = (known after apply)%0A + revoke_rules_on_delete = false%0A + tags_all = (known after apply)%0A + vpc_id = (known after apply)%0A }%0A%0A # aws_security_group.vpc_endpoint will be created%0A + resource "aws_security_group" "vpc_endpoint" {%0A + arn = (known after apply)%0A + description = "Security group for VPC Endpoint"%0A + egress = [%0A + {%0A + cidr_blocks = [%0A + "10.0.0.0/16",%0A ]%0A + description = ""%0A + from_port = 443%0A + ipv6_cidr_blocks = []%0A + prefix_list_ids = []%0A + protocol = "tcp"%0A + security_groups = []%0A + self = false%0A + to_port = 443%0A },%0A ]%0A + id = (known after apply)%0A + ingress = [%0A + {%0A + cidr_blocks = [%0A + "10.0.0.0/16",%0A ]%0A + description = ""%0A + from_port = 443%0A + ipv6_cidr_blocks = []%0A + prefix_list_ids = []%0A + protocol = "tcp"%0A + security_groups = []%0A + self = false%0A + to_port = 443%0A },%0A ]%0A + name = "cifar10-mlops-vpc-endpoint-securitygroup"%0A + name_prefix = (known after apply)%0A + owner_id = (known after apply)%0A + revoke_rules_on_delete = false%0A + tags_all = (known after apply)%0A + vpc_id = (known after apply)%0A }%0A%0A # aws_subnet.private1a will be created%0A + resource "aws_subnet" "private1a" {%0A + arn = (known after apply)%0A + assign_ipv6_address_on_creation = false%0A + availability_zone = "ap-northeast-1a"%0A + availability_zone_id = (known after apply)%0A + cidr_block = "10.0.1.0/24"%0A + enable_dns64 = false%0A + enable_resource_name_dns_a_record_on_launch = false%0A + enable_resource_name_dns_aaaa_record_on_launch = false%0A + id = (known after apply)%0A + ipv6_cidr_block_association_id = (known after apply)%0A + ipv6_native = false%0A + map_public_ip_on_launch = false%0A + owner_id = (known after apply)%0A + private_dns_hostname_type_on_launch = (known after apply)%0A + tags = {%0A + "Name" = "cifar10-mlops-subnet-private-ap-northeast-1a"%0A }%0A + tags_all = {%0A + "Name" = "cifar10-mlops-subnet-private-ap-northeast-1a"%0A }%0A + vpc_id = (known after apply)%0A }%0A%0A # aws_vpc.main will be created%0A + resource "aws_vpc" "main" {%0A + arn = (known after apply)%0A + cidr_block = "10.0.0.0/16"%0A + default_network_acl_id = (known after apply)%0A + default_route_table_id = (known after apply)%0A + default_security_group_id = (known after apply)%0A + dhcp_options_id = (known after apply)%0A + enable_dns_hostnames = (known after apply)%0A + enable_dns_support = true%0A + enable_network_address_usage_metrics = (known after apply)%0A + id = (known after apply)%0A + instance_tenancy = "default"%0A + ipv6_association_id = (known after apply)%0A + ipv6_cidr_block = (known after apply)%0A + ipv6_cidr_block_network_border_group = (known after apply)%0A + main_route_table_id = (known after apply)%0A + owner_id = (known after apply)%0A + tags = {%0A + "Name" = "cifar10-mlops-vpc"%0A }%0A + tags_all = {%0A + "Name" = "cifar10-mlops-vpc"%0A }%0A }%0A%0A # aws_vpc_endpoint.ecr_api will be created%0A + resource "aws_vpc_endpoint" "ecr_api" {%0A + arn = (known after apply)%0A + cidr_blocks = (known after apply)%0A + dns_entry = (known after apply)%0A + id = (known after apply)%0A + ip_address_type = (known after apply)%0A + network_interface_ids = (known after apply)%0A + owner_id = (known after apply)%0A + policy = (known after apply)%0A + prefix_list_id = (known after apply)%0A + private_dns_enabled = false%0A + requester_managed = (known after apply)%0A + route_table_ids = (known after apply)%0A + security_group_ids = (known after apply)%0A + service_name = "com.amazonaws.ap-northeast-1.ecr.api"%0A + state = (known after apply)%0A + subnet_ids = (known after apply)%0A + tags_all = (known after apply)%0A + vpc_endpoint_type = "Interface"%0A + vpc_id = (known after apply)%0A }%0A%0A # aws_vpc_endpoint.ecr_dkr will be created%0A + resource "aws_vpc_endpoint" "ecr_dkr" {%0A + arn = (known after apply)%0A + cidr_blocks = (known after apply)%0A + dns_entry = (known after apply)%0A + id = (known after apply)%0A + ip_address_type = (known after apply)%0A + network_interface_ids = (known after apply)%0A + owner_id = (known after apply)%0A + policy = (known after apply)%0A + prefix_list_id = (known after apply)%0A + private_dns_enabled = false%0A + requester_managed = (known after apply)%0A + route_table_ids = (known after apply)%0A + security_group_ids = (known after apply)%0A + service_name = "com.amazonaws.ap-northeast-1.ecr.dkr"%0A + state = (known after apply)%0A + subnet_ids = (known after apply)%0A + tags_all = (known after apply)%0A + vpc_endpoint_type = "Interface"%0A + vpc_id = (known after apply)%0A }%0A%0A # aws_vpc_endpoint.s3 will be created%0A + resource "aws_vpc_endpoint" "s3" {%0A + arn = (known after apply)%0A + cidr_blocks = (known after apply)%0A + dns_entry = (known after apply)%0A + id = (known after apply)%0A + ip_address_type = (known after apply)%0A + network_interface_ids = (known after apply)%0A + owner_id = (known after apply)%0A + policy = (known after apply)%0A + prefix_list_id = (known after apply)%0A + private_dns_enabled = false%0A + requester_managed = (known after apply)%0A + route_table_ids = (known after apply)%0A + security_group_ids = (known after apply)%0A + service_name = "com.amazonaws.ap-northeast-1.s3"%0A + state = (known after apply)%0A + subnet_ids = (known after apply)%0A + tags_all = (known after apply)%0A + vpc_endpoint_type = "Interface"%0A + vpc_id = (known after apply)%0A }%0A%0APlan: 23 to add, 0 to change, 0 to destroy.%0A%0AChanges to Outputs:%0A + account_id = "490755108457"%0Aaws_ecr_repository.main: Creating...%0Aaws_vpc.main: Creating...%0Aaws_cloudwatch_log_group.main: Creating...%0Aaws_iam_role.lambda_execution_role: Creating...%0Aaws_iam_role.ecs_task_role: Creating...%0Aaws_ecs_cluster.main: Creating...%0Aaws_iam_role.ecs_task_exec: Creating...%0Aaws_s3_bucket.dataset: Creating...%0Aaws_iam_role.ecs_task_exec: Creation complete after 0s [id=ecs_task_exec]%0Aaws_iam_role.lambda_execution_role: Creation complete after 1s [id=cifar10-mlops-lambda-execution-role]%0Aaws_lambda_function.invoke_task: Creating...%0Aaws_iam_role.ecs_task_role: Creation complete after 1s [id=ecs_task_role]%0Aaws_cloudwatch_log_group.main: Creation complete after 1s [id=cifar10-mlops-log-group]%0Aaws_ecr_repository.main: Creation complete after 1s [id=cifar10-mlops-repository]%0Aaws_cloudwatch_event_rule.ecr_push_rule: Creating...%0Aaws_ecs_task_definition.service: Creating...%0Aaws_ecs_task_definition.service: Creation complete after 1s [id=cifar10-mlops-task]%0Aaws_cloudwatch_event_rule.ecr_push_rule: Creation complete after 2s [id=cifar10-mlops-run-ecs-task]%0Aaws_vpc.main: Creation complete after 3s [id=vpc-0eaad8e99e0e29e62]%0Aaws_subnet.private1a: Creating...%0Aaws_security_group.vpc_endpoint: Creating...%0Aaws_subnet.private1a: Creation complete after 2s [id=subnet-0721a046ba3cbdc3e]%0Aaws_s3_bucket.dataset: Creation complete after 5s [id=cifar10-mlops-bucket]%0Adata.aws_iam_policy_document.bucket_policy: Reading...%0Aaws_s3_bucket_public_access_block.main: Creating...%0Adata.aws_iam_policy_document.bucket_policy: Read complete after 0s [id=1027067802]%0Aaws_s3_bucket_policy.bucket_policy: Creating...%0Aaws_s3_bucket_public_access_block.main: Creation complete after 1s [id=cifar10-mlops-bucket]%0Aaws_security_group.vpc_endpoint: Creation complete after 5s [id=sg-040447271ad7cedb1]%0Aaws_vpc_endpoint.ecr_dkr: Creating...%0Aaws_vpc_endpoint.ecr_api: Creating...%0Aaws_vpc_endpoint.s3: Creating...%0Aaws_security_group.ecs: Creating...%0Aaws_s3_bucket_policy.bucket_policy: Creation complete after 4s [id=cifar10-mlops-bucket]%0Aaws_ecs_cluster.main: Still creating... [10s elapsed]%0Aaws_lambda_function.invoke_task: Still creating... [10s elapsed]%0Aaws_security_group.ecs: Creation complete after 4s [id=sg-0af8506fc22c62378]%0Aaws_ecs_cluster.main: Creation complete after 12s [id=arn:aws:ecs:ap-northeast-1:490755108457:cluster/cifar10-mlops-cluster]%0Aaws_ecs_cluster_capacity_providers.this: Creating...%0Aaws_ecs_service.main: Creating...%0Aaws_ecs_service.main: Creation complete after 1s [id=arn:aws:ecs:ap-northeast-1:490755108457:service/cifar10-mlops-cluster/cifar10-mlops-service]%0Aaws_lambda_function.invoke_task: Creation complete after 15s [id=cifar10-mlops-invoke-task]%0Aaws_lambda_permission.allow_eventbridge: Creating...%0Aaws_cloudwatch_event_target.ecr_push_target: Creating...%0Aaws_lambda_permission.allow_eventbridge: Creation complete after 1s [id=AllowExecutionFromEventBridge]%0Aaws_cloudwatch_event_target.ecr_push_target: Creation complete after 1s [id=cifar10-mlops-run-ecs-task-run-index-py-function]%0Aaws_vpc_endpoint.s3: Still creating... [10s elapsed]%0Aaws_vpc_endpoint.ecr_dkr: Still creating... [10s elapsed]%0Aaws_vpc_endpoint.ecr_api: Still creating... [10s elapsed]%0Aaws_ecs_cluster_capacity_providers.this: Still creating... [10s elapsed]%0Aaws_ecs_cluster_capacity_providers.this: Creation complete after 11s [id=cifar10-mlops-cluster]%0Aaws_vpc_endpoint.ecr_api: Still creating... [20s elapsed]%0Aaws_vpc_endpoint.ecr_dkr: Still creating... [20s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [20s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [30s elapsed]%0Aaws_vpc_endpoint.ecr_api: Still creating... [30s elapsed]%0Aaws_vpc_endpoint.ecr_dkr: Still creating... [30s elapsed]%0Aaws_vpc_endpoint.ecr_api: Creation complete after 32s [id=vpce-060dcf69d6e27977a]%0Aaws_vpc_endpoint.s3: Still creating... [40s elapsed]%0Aaws_vpc_endpoint.ecr_dkr: Still creating... [40s elapsed]%0Aaws_vpc_endpoint.ecr_dkr: Creation complete after 42s [id=vpce-034a16fe6db1a9e92]%0Aaws_vpc_endpoint.s3: Still creating... [50s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [1m0s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [1m10s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [1m20s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [1m30s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [1m40s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [1m50s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [2m0s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [2m10s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [2m20s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [2m30s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [2m40s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [2m50s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [3m0s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [3m10s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [3m20s elapsed]%0Aaws_vpc_endpoint.s3: Still creating... [3m30s elapsed]%0Aaws_vpc_endpoint.s3: Creation complete after 3m36s [id=vpce-0dbaa2e84ef2cdc8c]%0A%0AApply complete! Resources: 23 added, 0 changed, 0 destroyed.%0A%0AOutputs:%0A%0Aaccount_id = "490755108457"%0A ::set-output name=stderr:: ::set-output name=exitcode::0 ```