コンテンツにスキップ

インフラストラクチャ

環境一覧

環境 URL 用途
本番(prd) 未設定 本番サービス。Databricks Apps apps-survey-analysis-prd
ステージング(stg) 未設定 リリース前確認。Databricks Apps apps-survey-analysis-stg
開発(dev) https://sample-app-202510-96896088351718.aws.databricksapps.com/ 開発環境。Databricks Apps apps-survey-analysis-dev
ローカル http://localhost:5173 ローカル開発(Vite dev server + uvicorn :8000)

構成図

graph TD
  Browser[ブラウザ]
  Apps[Databricks Apps<br/>uvicorn: FastAPI + 静的SPA]
  Warehouse[(SQL Warehouse)]
  UC[(Unity Catalog<br/>cs.cs_dm)]
  GH[GitHub]
  Actions[GitHub Actions]
  GitFolder[Databricks Git フォルダ]

  Browser --> Apps
  Apps -->|databricks-sql-connector<br/>OAuth M2M| Warehouse
  Apps -->|databricks-sdk WorkspaceClient| UC
  Warehouse --> UC

  GH --> Actions
  Actions -->|OIDC| GitFolder
  GitFolder --> Apps

アプリは単一プロセスで動く。backend/main.py が backend/routes/ の router をすべて登録し、最後に catch-all GET /{full_path:path} で backend/static/index.html を返して SPA ルーティングを成立させる。

主要サービス一覧

サービス名 用途
Databricks Apps アプリのホスティング。app.yaml の command で uvicorn を起動する
Databricks SQL Warehouse 集計ビューへのクエリ実行。DATABRICKS_HTTP_PATH で指定
Unity Catalog データ本体(カタログ cs / スキーマ cs_dm)とメタデータの提供元
Databricks Git フォルダ /Workspace/survey_analytics/<env>/secure/internal/apps/databricks-apps-survey-analysis。デプロイ元
GitHub Actions main / stg / prd への push を契機にデプロイを実行

デプロイフロー

ブランチ デプロイ先 タイミング
main dev 自動(push 時)
stg stg 自動(push 時)
prd prd 自動(push 時)

GitHub Actions(.github/workflows/deploy.yml)は SP トークンではなく OIDC フェデレーション(DATABRICKS_AUTH_TYPE: github-oidc)で認証し、次の 2 ステップを実行する。

databricks repos update \
  /Workspace/survey_analytics/<env>/secure/internal/apps/databricks-apps-survey-analysis \
  --branch <branch>

databricks apps deploy apps-survey-analysis-<env> \
  --source-code-path /Workspace/survey_analytics/<env>/secure/internal/apps/databricks-apps-survey-analysis/nodejs-fastapi-hello-world-app

つまりデプロイされるのは git に入っているファイルそのもの(ビルド済みの backend/static/ を含む)。

ローカルから手動でデプロイする場合は databricks bundle deploy -t dev を使う。ただし databricks.yml には現状 dev ターゲットしか定義されていない(stg / prd はコメントアウト)。