Skip to content

Cloud Deployment

itsaldray97 edited this page Jul 20, 2026 · 1 revision

雲端佈署清單(預設關閉)

這份清單是給「未來真的要接上一個獨立的 GCP 沙箱環境」時使用,目前預設完全不會執行任何雲端動作(見 安全機制)。

步驟總覽

flowchart TD
    A["1. 建立獨立的沙箱 GCP 專案<br/>(含獨立帳單與預算警示)"] --> B["2. 手動啟用 Pub/Sub、BigQuery、<br/>Dataflow、Cloud Storage API"]
    B --> C[3. 建立 GCS Bucket]
    C --> D[4. 建立 Pub/Sub 主題與訂閱]
    D --> E[5. 套用 BigQuery Schema]
    E --> F[6. 設定最小權限 IAM]
    F --> G[7. 依 .env.example 填寫 .env]
    G --> H["8. 執行 preflight_cloud.py<br/>(唯讀檢查)"]
    H --> I["9. 三個閘門旗標都開啟後<br/>才能送出真實 Dataflow Job"]
Loading

詳細文件對照

步驟 對應文件
GCP 專案與 API demo/infra/README_CLOUD_SETUP.md
Bucket / Dataflow 送出 demo/infra/dataflow_submission_plan.md
Pub/Sub demo/infra/pubsub_resource_plan.md
BigQuery Schema demo/infra/bigquery_schema.sql
IAM 權限 demo/infra/iam_role_plan.md
費用控管與清理 demo/infra/cost_and_cleanup_plan.md

送出/停止 Job

# 送出(需要三個旗標都開啟)
.venv\Scripts\python demo\scripts\submit_dataflow.py `
  --enable-cloud-mode --execute-dataflow-job `
  --confirm-synthetic-sandbox-only I_CONFIRM_SYNTHETIC_SANDBOX_ONLY

# 停止
.venv\Scripts\python demo\scripts\stop_dataflow.py `
  --job-id <JOB_ID> --confirm-stop-sandbox-job

沒有帶齊旗標的話,這兩支腳本只會印出「等效的指令」給你看,不會真的執行任何動作,也不會建立任何 GCP 用戶端。

費用控管重點

  • 使用獨立的帳單專案與預算警示。
  • Worker 數量採保守上限。
  • 每次展示結束後務必執行 stop_dataflow.py 停止串流 Job。
  • 定期清理沙箱裡的 BigQuery/Pub/Sub/GCS 產出物。

Clone this wiki locally