Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 0 additions & 52 deletions terraform/env/dev/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -59,55 +59,3 @@ module "sqs" {
project_name = var.project_name
environment = var.environment
}

# Lambda
module "lambda" {
source = "../../modules/05.lambda"
project_name = var.project_name
environment = var.environment
aws_region = var.aws_region
ecr_api_repository_name = module.ecr.api_repository_name
ecr_api_repository_url = module.ecr.api_repository_url
ecr_builder_repository_name = module.ecr.builder_repository_name
ecr_builder_repository_url = module.ecr.builder_repository_url
ecr_builder_repository_arn = module.ecr.builder_repository_arn
ecr_notification_repository_name = module.ecr.notification_repository_name
ecr_notification_repository_url = module.ecr.notification_repository_url
ecr_notification_repository_arn = module.ecr.notification_repository_arn
image_tag = var.lambda_image_tag
lambda_timeout = var.lambda_timeout
lambda_memory_size = var.lambda_memory_size
log_retention_days = var.log_retention_days
url_service_tech = var.url_service_tech
prefix_api_version = var.prefix_api_version
service_url_registration_api_solana = var.service_url_registration_api_solana
service_api_key_registration_api_solana = var.service_api_key_registration_api_solana
tech_floripa_certificate_validate_url = var.tech_floripa_certificate_validate_url
tech_floripa_logo_url = var.tech_floripa_logo_url
builder_queue_url = module.sqs.builder_queue_url
builder_queue_arn = module.sqs.builder_queue_arn
notification_queue_arn = module.sqs.notification_queue_arn
notification_queue_url = module.sqs.notification_queue_url
dynamodb_table_arns = [
module.certificates_table.table_arn,
module.orders_table.table_arn,
module.participants_table.table_arn,
module.products_table.table_arn
]
ecr_repository_arn = module.ecr.api_repository_arn
s3_bucket_arn = module.s3.bucket_arn
s3_bucket_name = module.s3.bucket_name
api_gateway_download_url = module.api_gateway.api_endpoint_download_certificate
}

# API Gateway
module "api_gateway" {
source = "../../modules/06.api-gateway"
project_name = var.project_name
environment = var.environment
lambda_function_name = module.lambda.function_name
lambda_invoke_arn = module.lambda.invoke_arn
throttle_rate_limit = var.api_throttle_rate_limit
throttle_burst_limit = var.api_throttle_burst_limit
api_key_value = var.api_key_value
}
71 changes: 0 additions & 71 deletions terraform/env/dev/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -79,74 +79,3 @@ output "sqs_dlq_url" {
description = "URL da Dead Letter Queue (builder)"
value = module.sqs.builder_dlq_url
}

# Informações do Lambda
output "lambda_function_name" {
description = "Nome da função Lambda"
value = module.lambda.function_name
}

output "lambda_function_arn" {
description = "ARN da função Lambda"
value = module.lambda.function_arn
}

# Informações da Lambda de Notificação
output "lambda_notification_function_name" {
description = "Nome da função Lambda de Notificação"
value = module.lambda.notification_function_name
}

output "lambda_notification_function_arn" {
description = "ARN da função Lambda de Notificação"
value = module.lambda.notification_function_arn
}

# Informações do API Gateway
output "api_gateway_url" {
description = "URL base do API Gateway"
value = module.api_gateway.api_url
}

output "api_gateway_endpoint_create_certificate" {
description = "URL completa do endpoint para criar certificado"
value = module.api_gateway.api_endpoint_create_certificate
}

output "api_gateway_endpoint_download_certificate" {
description = "URL base do endpoint para download de certificados"
value = module.api_gateway.api_endpoint_download_certificate
}

output "api_gateway_id" {
description = "ID do API Gateway"
value = module.api_gateway.api_id
}

# Resumo completo da infraestrutura
output "infrastructure_summary" {
description = "Resumo completo da infraestrutura criada"
value = {
api_gateway = {
id = module.api_gateway.api_id
url = module.api_gateway.api_url
endpoint_create_cert = module.api_gateway.api_endpoint_create_certificate
}
lambda = {
function_name = module.lambda.function_name
function_arn = module.lambda.function_arn
notification_function_name = module.lambda.notification_function_name
notification_function_arn = module.lambda.notification_function_arn
}
ecr = {
repository_url = module.ecr.api_repository_url
api_repository_name = module.ecr.api_repository_name
}
sqs = {
queue_url = module.sqs.queue_url
dlq_url = module.sqs.builder_dlq_url
}
environment = var.environment
project = var.project_name
}
}
84 changes: 0 additions & 84 deletions terraform/env/dev/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -52,87 +52,3 @@ variable "project_name" {

# Configuração do DynamoDB - Modo de Baixo Custo
# Todas as tabelas usam PAY_PER_REQUEST por padrão (paga apenas pelo que usar)

# Variáveis para Lambda Function
variable "lambda_image_tag" {
description = "Tag da imagem Docker para o Lambda"
type = string
default = "latest"
}

variable "lambda_timeout" {
description = "Timeout da função Lambda em segundos"
type = number
default = 60
}

variable "lambda_memory_size" {
description = "Memória alocada para a função Lambda em MB"
type = number
default = 512
}

variable "log_retention_days" {
description = "Dias de retenção dos logs do CloudWatch"
type = number
default = 3
}

variable "url_service_tech" {
description = "URL do serviço Tech Floripa"
type = string
default = "https://tech.floripa.br/wp-json/custom/v1"
}

variable "prefix_api_version" {
description = "Prefixo da versão da API"
type = string
default = "/api/v1"
}

# Variáveis para API Gateway
variable "api_throttle_rate_limit" {
description = "Limite de taxa por segundo para throttling do API Gateway"
type = number
default = 100
}

variable "api_throttle_burst_limit" {
description = "Limite de burst para throttling do API Gateway"
type = number
default = 200
}

variable "api_key_value" {
description = "Valor da API Key para autenticação do API Gateway (deve ser fornecido via terraform.tfvars)"
type = string
sensitive = true

validation {
condition = can(regex("^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", var.api_key_value))
error_message = "A API Key deve estar no formato UUID válido (ex: 8a3f1e2c-9d7b-4f4a-8453-bf3c1d2a6f29)."
}
}

# Variáveis para integração com API Solana
variable "service_url_registration_api_solana" {
description = "URL do serviço de registro da API Solana"
type = string
}

variable "service_api_key_registration_api_solana" {
description = "API Key do serviço de registro da API Solana"
type = string
sensitive = true
}

variable "tech_floripa_certificate_validate_url" {
description = "URL para validação de certificados do Tech Floripa"
type = string
}

variable "tech_floripa_logo_url" {
description = "URL do logo do Tech Floripa"
type = string
default = "https://tech.floripa.br/wp-content/uploads/2025/03/Tech-Floripa-Qr.png"
}
Loading