mcpField
S
sap-btp-job-scheduling

sap-btp-job-scheduling

github.com/secondskyクラウド・DevOps480679 回インストール3 週間前に更新
リポジトリ

sap-btp-job-scheduling について

SAP BTP Job Scheduling Service 向けのガイドスキルです。開発者によるジョブ、スケジュール、セキュリティの設定を支援し、REST API、Node.js クライアント、トラブルシューティング資料を提供します。

主な機能

  1. 01ジョブとスケジュールの作成・管理
  2. 02単発および定期スケジュールへの対応
  3. 03Cron、日時、自然言語形式の利用
  4. 04OAuth 2.0 と XSUAA のセキュリティ設定
  5. 05非同期ジョブ実行のガイダンス
  6. 06REST API と Node.js クライアントの資料

活用シーン

  1. 01Cloud Foundry または Kyma でスケジューリングサービスを設定
  2. 02マイクロサービスの定期タスクや単発タスクを設定
  3. 03ジョブのアクションエンドポイントを保護
  4. 04スケジュール失敗やサービス動作の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/secondsky/sap-skills --skill sap-btp-job-scheduling

インストール後、Claude Code で/sap-btp-job-schedulingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
agents/
openai.yaml
references/
changelog.md
concepts.md
integrations.md
operations.md
rest-api.md
security.md
setup-guide.md
troubleshooting.md
templates/
job-creation.json
xs-security.json

詳細

SAP BTP Job Scheduling Service

関連スキル

  • sap-dependency-security:ジョブスケジューリングマイクロサービスが npm/CLI の依存関係スタックを管理する際に、依存関係とワークフローを安全に強化するために使用します

目次

概要

SAP Job Scheduling Service は、SAP BTP 上で単発および定期的なジョブや Cloud Foundry タスクを定義・管理するための、ランタイムに依存しないプラットフォームサービスです。アプリケーションを変更することなく、複数のハイパースケーラー(AWS、Azure、GCP)で動作します。

ドキュメントソース:https://help.sap.com/docs/job-scheduling

最終確認日:2025-11-27

このスキルを使用するタイミング

以下の場合にこのスキルを使用します。

  • Cloud Foundry または Kyma ランタイムで Job Scheduling Service をセットアップする
  • REST API またはダッシュボードを使用して ジョブを作成・管理する
  • cron、日付/時刻、または人が読みやすい形式で スケジュールを設定する
  • 長時間実行されるプロセス向けに 非同期ジョブの実行を実装する
  • OAuth 2.0 と XSUAA を使用して アクションエンドポイントを保護する
  • SAP Cloud ALM または Alert Notification Service と 連携する
  • テナントを考慮したジョブスケジューリングで マルチテナントアプリケーションを開発する
  • ジョブ実行の問題やスケジュールの失敗をトラブルシューティングする
  • Node.js クライアントライブラリ(@sap/jobs-client)を 使用する

クイック判断ツリー

どのタスクですか?
Setup & Configuration
├─ Initial setup prerequisites → references/setup-guide.md
├─ Create service instance
│  ├─ BTP Cockpit → references/setup-guide.md#cockpit
│  ├─ CF CLI → references/setup-guide.md#cf-cli
│  └─ Kyma Dashboard → references/setup-guide.md#kyma
└─ Configure XSUAA scopes → references/security.md

Job Management
├─ Create jobs → references/rest-api.md#create-job
├─ Configure schedules → references/rest-api.md#schedules
├─ Run logs & monitoring → references/rest-api.md#run-logs
└─ Dashboard operations → references/operations.md#dashboard

Schedule Configuration
├─ One-time vs recurring → references/concepts.md#schedule-types
├─ Cron format → references/concepts.md#cron-format
├─ Date/time formats → references/concepts.md#date-formats
└─ Human-readable → references/concepts.md#human-readable

Asynchronous Execution
├─ Async mode flow → references/concepts.md#async-mode
├─ Callback implementation → references/rest-api.md#update-run-log
└─ CF tasks → references/concepts.md#cf-tasks

Security & Authentication
├─ OAuth 2.0 setup → references/security.md#oauth
├─ XSUAA configuration → references/security.md#xsuaa
└─ Credential rotation → references/security.md#rotation

Integrations
├─ SAP Cloud ALM → references/integrations.md#cloud-alm
└─ Alert Notification → references/integrations.md#alert-notification

Troubleshooting
├─ Common errors → references/troubleshooting.md#errors
├─ FAQ → references/troubleshooting.md#faq
└─ Support: BC-CP-CF-JBS

Version History & Updates
└─ What's New (2021-2025) → references/changelog.md

主な概念

ジョブ

アクションエンドポイントを含むスケジュールの集合です。ジョブは、指定された時刻に設定済みの URL を同期的に(短時間の操作)または非同期的に(長時間のプロセス)呼び出します。

スケジュール

ジョブ内の単発または定期的なエンティティです。複数の形式(cron、日付/時刻、人が読みやすい形式)をサポートし、3 つのライフサイクル状態があります:SCHEDULED → RUNNING → COMPLETED。

アクションエンドポイント

スケジュールの起動時にサービスが呼び出す、アプリケーションが公開する HTTP/REST エンドポイントです。本番環境では OAuth 2.0 による保護が必要です。

Cloud Foundry タスク

独自のコンテナ内で独立して実行されるアプリまたはスクリプトです。設定可能なメモリ割り当てを使用して、常に非同期で実行されます。

サービスの制約

制約値
スケジュールの最小間隔5 分
同期リクエストのタイムアウト15 秒
非同期タイムアウト(デフォルト)30 分(最大 7 日まで設定可能)
POST リクエストの本文サイズ制限100 KB
実行ログの保持期間15 日
サービス SLAスケジュール時刻から約 20 分

クイックリファレンステーブル

スケジュール形式
形式例ユースケース
Cron* * * * 10:12 0,30 010:00~12:00の間、30分ごと
日付/時刻2025-10-20T04:30:00ZISO-8601形式の1回限りの実行
人間が読める形式tomorrow at 4pm自然言語によるスケジュール設定
repeatInterval2 hours, 5 minutes固定間隔で繰り返し
repeatAt4.40pm, 18:40毎日、指定時刻に実行
Cron形式(7フィールド)
Year Month Day DayOfWeek Hour Minute Second
*    *     *   *         *    *      *
フィールド値特殊形式
年4桁(2025)* = 任意
月1~12*/a = aごと
日-31~31負の値 = 月末から数える
曜日mon、tue、wed...a.y = a回目
時0~23a:b = 範囲
分0~59a:b/c = 範囲内の間隔
秒0~59a,b,c = 複数の値
スケジュールのライフサイクル状態
フェーズ状態説明
SCHEDULEDSCHEDULED将来の実行に向けてキューに登録済み
RUNNINGTRIGGERED, ACK_RECVD, ACK_NOT_RECVD実行中
COMPLETEDSUCCESS, ERROR, REQUEST_ERROR, UNKNOWN完了
ジョブのHTTPメソッド
メソッドエンドポイント目的
POST/scheduler/jobsジョブを作成
GET/scheduler/jobsすべてのジョブを一覧表示
GET/scheduler/jobs/{id}ジョブの詳細を取得
PUT/scheduler/jobs/{id}ジョブを更新
DELETE/scheduler/jobs/{id}ジョブを削除

ベストプラクティス

スケジュールの最適化

ピーク時間を避ける:

  • ❌ 毎分の0秒または30秒
  • ❌ 0分、30分、または5分ごと
  • ❌ 毎時ちょうど
  • ❌ UTCの午前0時(最も混雑する時間)

不規則な時刻を使用する:

  • ✅ 01:00:00ではなく01:12:17
  • ✅ 01:30:00ではなく01:38:37
非同期ジョブ
  1. 202 Acceptedをすぐに返す - リクエストをブロックしないでください
  2. リクエストヘッダーを保存する - x-sap-job-id、x-sap-job-schedule-id、x-sap-job-run-id、x-sap-scheduler-host
  3. 完了時に実行ログを更新する - 最終ステータスを指定した単一のAPI呼び出し
  4. タイムアウトを処理する - デフォルトは30分で、最大7日まで設定可能
1回限りのスケジュール
  • テスト/検証にのみ使用する
  • 実行後、自動的に無効化される
  • 即時実行には"time": "now"を使用する

認証のクイックスタート

Standardプラン(OAuth 2.0)
# Get access token
curl -X POST "<uaa_url>/oauth/token" \
  -H "Authorization: Basic $(echo -n '<clientid>:<clientsecret>' | base64)" \
  -d "grant_type=client_credentials"

# Use token in API calls
curl -X GET "https://jobscheduler-rest.<landscape>/scheduler/jobs" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json"
xs-security.jsonの設定
{
  "xsappname": "<app-name>",
  "scopes": [{
    "name": "$XSAPPNAME.JOBSCHEDULER",
    "description": "Job Scheduler Scope",
    "grant-as-authority-to-apps": ["$XSSERVICENAME(<jobscheduler-instance>)"]
  }]
}

ジョブ作成の例

POST /scheduler/jobs
{
  "name": "myJob",
  "description": "Process daily reports",
  "action": "https://myapp.cfapps.eu10.hana.ondemand.com/api/process",
  "active": true,
  "httpMethod": "POST",
  "schedules": [{
    "active": true,
    "description": "Daily at 6 AM",
    "repeatAt": "6.00am",
    "startTime": {"date": "2025-01-01", "format": "YYYY-MM-DD"}
  }]
}

Node.jsクライアントライブラリ

要件:Node.js 14.x以降

npm install @sap/[email protected]
const JobSchedulerClient = require('@sap/jobs-client');
const scheduler = new JobSchedulerClient.Scheduler();

// Create job
scheduler.createJob({ url: vcapServices.jobscheduler[0].credentials.url }, {
  name: 'myJob',
  action: 'https://myapp.../process',
  active: true,
  httpMethod: 'GET',
  schedules: [{ cron: '* * * * 0 0 0', active: true }]
}, (err, result) => { /* handle */ });

レート制限

制限の種類応答コードヘッダー
クライアントの上限を超過429retry-after(秒)
絶対上限を超過503throttling(ミリ秒)

制限は累積し、両方が同時に適用される場合があります。

サービスの動作

障害からの復旧
障害時間動作
< 20分実行されなかったすべての処理を直ちに実行
>= 20分最後に実行されなかった処理のみ実行
自動無効化のトリガー
  • 1回限りのスケジュールが実行された
  • 有効な将来の日付が存在しない
  • ジョブ/スケジュールのendTimeに到達した
  • アクションエンドポイントに10日以上接続できない

参考ファイル

詳細ガイド
  1. references/concepts.md - スケジュールの種類、形式、ライフサイクル、非同期モード、マルチテナンシー
  2. references/rest-api.md - すべてのエンドポイントを網羅したREST APIリファレンス
  3. references/setup-guide.md - 前提条件、サービスインスタンスの作成
  4. references/security.md - OAuth 2.0、XSUAAスコープ、認証情報のローテーション
  5. references/integrations.md - Cloud ALM、Alert Notification Service
  6. references/troubleshooting.md - FAQ、エラーのシナリオ、モニタリング
  7. references/operations.md - ダッシュボード、バックアップ/復元、サービスの動作
  8. references/changelog.md - バージョン履歴、機能の更新(2021~2025)
利用可能なテンプレート
  1. templates/job-creation.json - ジョブ作成リクエストのテンプレート
  2. templates/xs-security.json - XSUAA設定のテンプレート

よくある落とし穴

セットアップ:

  • ❌ Job Scheduling のバインドより前に XSUAA のバインドを設定していない
  • ❌ grant-as-authority-to-apps を使ってスコープを付与していない
  • ❌ アクションエンドポイントに HTTPS ではなく HTTP を使用している

スケジュール設定:

  • ❌ Linux の cron 形式を使用している(サービスでは SAP cron を使用します)
  • ❌ ピーク時間(00:00、00:30 など)にスケジュールを設定している
  • ❌ タイムゾーンが UTC であることを忘れている(サポートされるのは UTC のみです)

非同期ジョブ:

  • ❌ 直ちに 202 Accepted を返していない
  • ❌ Update Run Log API の呼び出しを忘れている
  • ❌ 最終更新を 1 回だけ行わず、複数回ステータスを更新している

マルチテナント:

  • ❌ SaaS テナントトークンで tenantId フィルターを使用している(400 が返されます)
  • ❌ アプリケーションの依存関係に Job Scheduling を含めていない

外部リソース

SAP ドキュメント
サポート
  • コンポーネント:BC-CP-CF-JBS
  • SAP Trust Center:プラットフォームのステータスを確認できます
  • Guided Answers:セルフサービスでトラブルシューティングできます

更新とメンテナンス

情報源:SAP BTP Job Scheduling Service のドキュメント

このスキルを更新するには:

  1. GitHub リポジトリでドキュメントの更新を確認します
  2. What's New セクションで変更点を確認します
  3. 影響を受ける参照ファイルを更新します
  4. 設定に変更があった場合はテンプレートを更新します
  5. 「Last Verified」の日付を更新します

四半期ごとのレビューを推奨:3 か月ごとに更新を確認します

次回のレビュー:2026-02-27

同梱リソース

参照ファイル
  1. references/concepts.md - スケジュールの種類、形式、ライフサイクル、非同期モード、マルチテナント(12K 行)
  2. references/rest-api.md - すべてのエンドポイントを網羅した REST API リファレンス(20K 行)
  3. references/setup-guide.md - 前提条件、サービスインスタンスの作成(9K 行)
  4. references/security.md - OAuth 2.0、XSUAA スコープ、認証情報のローテーション(11K 行)
  5. references/integrations.md - Cloud ALM、Alert Notification Service(8K 行)
  6. references/troubleshooting.md - FAQ、エラーシナリオ、モニタリング(9K 行)
  7. references/operations.md - ダッシュボード、バックアップ/復元、サービスの動作(8K 行)
  8. references/changelog.md - バージョン履歴、機能の更新(2021-2025)(9K 行)
テンプレート
  1. templates/job-creation.json - 例を含むジョブ作成リクエストのテンプレート
  2. templates/xs-security.json - OAuth スコープ用の XSUAA 設定テンプレート

ライセンス:GPL-3.0 メンテナー:Eduard Jiglau | [email protected] | sap-ai-skills.com | https://github.com/secondsky/sap-skills

コメント