Databricks キープアライブ Workers

DevOps

概要

このリポジトリは「Databricks Keep-Alive Workers」として、Cloudflare Workers 上で動作する単一のスクリプトを提供します。目的は Databricks のアプリやワークスペース内のノードを定期的にチェックし、停止や異常が検知された場合に API 経由で再起動を行うことです。導入に必要なのは Databricks ワークスペースのホスト URL と個人アクセストークンのみで、オプションで Telegram Bot を使った通知に対応します。軽量な構成で Cloudflare の Cron Triggers と組み合わせることで、常時稼働を保つ運用自動化が可能です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 29
  • フォーク数: 28
  • ウォッチャー数: 29
  • コミット数: 15
  • ファイル数: 3
  • メインの言語: JavaScript

主な特徴

  • Cloudflare Workers での単一スクリプト実装(_worker.js)
  • Databricks REST API を用いたアプリ/クラスターの監視と自動再起動
  • 必要情報は Databricks Host とアクセストークンのみ(Telegram 通知は任意)
  • 軽量で迅速にデプロイでき、Cron トリガーと容易に統合可能

技術的なポイント

このプロジェクトは Cloudflare Workers の実行環境を活かして、外部 API(Databricks REST API)への定期的な HTTP リクエストによる監視を行います。Worker スクリプトは非同期 fetch を用いて Databricks ワークスペースにアクセスし、指定したアプリやクラスターの状態を問い合わせます。停止やエラー状態が検知された場合は、同様に REST API を叩いて再起動操作を実行する設計です。構成情報(Databricks Host、Personal Access Token、オプションの Telegram Bot Token と Chat ID)は Worker の環境変数やシークレットとして保存して運用します。

運用面では Cloudflare の Cron Triggers(スケジュール実行)を設定することで定期的に Worker を走らせ、間欠的な停止やスケールダウンによるダウンタイムを短時間で検出・復旧できます。Worker の短い実行時間とスケーラビリティを活かし、軽いヘルスチェックを頻度高く行うのに適しています。ただし、Databricks API のレート制限や一時的なネットワークエラー、認証トークンの漏洩リスクには注意が必要です。対策としては、API 呼び出しに対するリトライと指数バックオフ、ログ出力(Cloudflare のログや外部監視への連携)、最小権限のトークン発行、トークンの定期ローテーションを推奨します。

スクリプト自体はシンプルなため改造もしやすく、例えば再起動履歴のトラッキングに Cloudflare KV を追加したり、失敗時に Slack / PagerDuty と連携してオンコール通知を出す拡張が容易です。また、状態遷移を厳密に管理したい場合は、同一 Worker による複数リソース管理の設計や、失敗回数に基づくバックオフ/エスカレーションポリシーの導入を検討すると良いでしょう。セキュリティ面では Worker に直接トークンを埋め込まず、Cloudflare のシークレット管理機能を用いること、及び Databricks 側でトークンのアクセス範囲を絞ることが重要です。(約700〜1500字相当)

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • _worker.js: file

まとめ

Cloudflare Workers を使った手軽な Databricks 自動復旧ツール。導入が簡単で実運用に役立つ。

リポジトリ情報:

READMEの抜粋:

Databricks Keep-Alive Workers 部署说明

这个 Worker 脚本用于监控和自动重启 Databricks App,确保它们保持运行状态。

Databricks部署节点视频教程:https://youtu.be/r35kK77PlLg

部署指南

1. 准备工作

在部署之前,你需要获取以下信息:

  1. Databricks 工作区 Host: 例如 https://abc-123456789.cloud.databricks.com
  2. Databricks 访问 Token: 用于 API 访问的个人访问令牌,点击右上角用户设置-选择”Developer” -> “Access Tokens”生成新的访问令牌
  3. (可选) Telegram BOT Token: 用于发送通知的 Telegram Bot 令牌
  4. (可选) Telegram Chat ID: 接收通知的聊天caht id

2. 部署

  1. 登录你的cloudflare,创建一个新的workers,名称随意,编辑…