Terraform Ops 規範
Cloud Run Always-on CPU 設定
resources {
cpu_idle = false # Always-on CPU
}
scaling {
min_instance_count = 1 # 至少 1 實例
max_instance_count = 5
}
必須部署的資源
Pub/Sub Topics
raw.market.{env}— 原始市場事件raw.news.{env}— 原始新聞事件raw.social.{env}— 原始社群事件fused.event.{env}— 融合事件events.dlq.{env}— Dead Letter Queue
Cloud Run Services
market-streamer— 市場資料輪詢news-collector— 新聞 RSS 收集social-collector— 社群監控fusion-engine— 事件融合notifier— 推播通知
Secret Manager
telegram-bot-token-{env}telegram-chat-id-{env}line-notify-token-{env}gemini-api-key-{env}
部署順序
# 1. 初始化
cd infra/terraform/cloudrun
terraform init
# 2. 預覽
terraform plan -var="project_id=YOUR_PROJECT"
# 3. 部署
terraform apply -var="project_id=YOUR_PROJECT" \
-var="telegram_bot_token=XXX" \
-var="telegram_chat_id=XXX"
成本控制
- Cloud Run min instances = 1(每服務約 $30-50/月)
- 設定 max instances 上限避免爆成本
- 使用 Pub/Sub 避免服務間直接呼叫