huawei-cloud-functiongraph-trigger-create
huawei-cloud-functiongraph-trigger-create について
huawei-cloud-functiongraph-trigger-create は、Huawei Cloud FunctionGraph の関数に TIMER トリガーを作成するスキルです。サーバーレス関数の実行予定を設定するユーザー向けで、Quartz Cron と固定間隔に対応し、API 呼び出し前に関数とパラメーターを検証します。
主な機能
- 01FunctionGraph TIMER トリガーの作成
- 02Quartz Cron と Rate によるスケジュール
- 03トリガー状態とイベントデータの設定
- 04作成前の関数・パラメーター検証
- 05結果とエラーの JSON 出力
活用シーン
- 01定期的なデータ処理の実行
- 02関数によるバックアップの予約
- 03監視とヘルスチェックの定期実行
- 04時間指定通知の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-functiongraph-trigger-createインストール後、Claude Code で/huawei-cloud-functiongraph-trigger-createを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcron-reference.mdiam-policies.mdsdk-installation-guide.mdverification-method.mdscripts/create_trigger.pysimple_timer_func.pytimer_func_code.py詳細
概要
このスキルでは、Huawei Cloud FunctionGraph の関数に対するスケジュール済みトリガー(TIMER タイプ)を作成、設定できます。柔軟なスケジュール設定のために、Quartz Cron 式の形式をサポートしています。
このトリガーを使用すると、指定した時間間隔でサーバーレス関数を自動実行できます。以下の用途に最適です。
- 定期的なデータ処理タスク
- スケジュールされたバックアップ処理
- 定期的な監視とヘルスチェック
- 時刻に基づく通知システム
前提条件
このスキルを使用する前に、以下の要件を満たしていることを確認してください。
- Python 環境:Python 3.9 以降がインストールされていること
- SDK のインストール:FunctionGraph SDK をインストールします:
pip install huaweicloudsdkfunctiongraph - 環境変数:以下の環境変数を設定します。
HUAWEI_AK:Huawei Cloud のアクセスキーHUAWEI_SK:Huawei Cloud のシークレットキーHUAWEI_REGION:対象リージョン(例:cn-north-4)HUAWEI_PROJECT_ID:プロジェクト ID
- FunctionGraph 関数:対象の関数が指定したリージョンにすでに存在していること
- ネットワークアクセス:Huawei Cloud API エンドポイントへの安定したネットワーク接続
ワークフロー(工作流)
スケジュール済みの TIMER トリガーを作成する全ワークフローは、以下の手順で構成されます。
手順 1:環境変数を読み込み、認証します(加载环境变量/鉴权)
スクリプトは起動時に以下の環境変数を読み込みます。
HUAWEI_AK:Huawei Cloud のアクセスキー(必須)HUAWEI_SK:Huawei Cloud のシークレットキー(必須)HUAWEI_REGION:対象リージョン。デフォルトはcn-north-4ですHUAWEI_PROJECT_ID:プロジェクト ID
HUAWEI_AK または HUAWEI_SK が設定されていない場合、スクリプトは Config error: Please set environment variables HUAWEI_AK and HUAWEI_SK を出力し、API を呼び出す前に終了します。
手順 2:対象の関数 URN を確認します(确认 function_urn)
--function-urn を使って対象の関数 URN を渡します。例:urn:fss:cn-north-4:project_id:function:default:my-function:latest。トリガーを作成する前に、スクリプトは ShowFunctionConfig を呼び出して関数が存在することを確認します。関数が見つからない場合は FunctionNotFound を返し、何も作成せずに終了します。
手順 3:トリガーの設定を確認します(确认触发配置)
トリガーのパラメーターを確認します(パラメーターの確認を参照)。
--name:トリガー名。1~64 文字--schedule:Cronの場合は Quartz Cron 式(6~7 フィールド)、Rateの場合は5mのようなレート値--schedule-type:Cron(デフォルト)またはRate--status:ACTIVE(デフォルト)またはDISABLED--user-event:追加のユーザーイベントデータ(任意)
スクリプトは API を呼び出す前に、すべてのパラメーター(必須フィールド、Cron の構文、名前の長さ、ステータス値)を検証します。
手順 4:作成スクリプトを実行します(执行 create_trigger.py)
スキルのディレクトリから実行します。
python3 scripts/create_trigger.py \
--function-urn "urn:fss:cn-north-4:project_id:function:default:my-function:latest" \
--name "daily-trigger" \
--schedule "0 0 2 * * ?" \
--schedule-type "Cron" \
--status "ACTIVE"
手順 5:結果を確認します(验证结果)
- 成功すると、作成された
trigger_id、trigger_name、trigger_type(TIMER)、schedule、enable_statusを含む、status: "success"の JSON レスポンスがスクリプトから出力されます。 - 失敗すると、
error_code(InvalidParameter、FunctionNotFound、TriggerAlreadyExists、TriggerLimitExceeded、InternalError)を含むstatus: "failed"が出力され、ゼロ以外のコードで終了します。該当するパラメーターを修正して、スクリプトを再実行してください。 - FunctionGraph コンソールでも結果を確認できます。Function details → Triggers タブに、新しい TIMER トリガーが Active ステータスで表示されます。
使用方法
基本的なコマンド構造
python3 scripts/create_trigger.py \
--function-urn "urn:fss:cn-north-4:project_id:function:default:my-function:latest" \
--name "daily-trigger" \
--schedule "0 0 2 * * ?" \
--schedule-type "Cron" \
--status "ACTIVE"
例
Cron 式のトリガー
python3 scripts/create_trigger.py \
--function-urn "urn:fss:cn-north-4:project_id:function:default:my-function:latest" \
--name "hourly-report" \
--schedule "0 0 8 * * ?" \
--schedule-type "Cron"
固定レートのトリガー
python3 scripts/create_trigger.py \
--function-urn "urn:fss:cn-north-4:project_id:function:default:my-function:latest" \
--name "every-5min" \
--schedule "5m" \
--schedule-type "Rate"
Cron 式の形式
FunctionGraph では、6 または 7 フィールドの Quartz Cron 形式を使用します(7 番目のフィールドである year は省略可能です)。
┌───────────── second (0-59)
│ ┌───────────── minute (0-59)
│ │ ┌───────────── hour (0-23)
│ │ │ ┌───────────── day of month (1-31)
│ │ │ │ ┌───────────── month (1-12)
│ │ │ │ │ ┌───────────── day of week (1-7, 1=Sunday)
│ │ │ │ │ │ ┌───────────── year (optional, e.g. 2026)
│ │ │ │ │ │ │
* * * * * ? *
特殊文字や一般的な例を含む Cron 式の詳しいリファレンスについては、Cron 式のリファレンスを参照してください。
パラメーターの確認
トリガーを作成する前に、以下のパラメーターを確認してください。
| パラメーター | CLI 引数 | 必須 | 説明 | 例 |
|---|---|---|---|---|
function_urn | --function-urn | はい | 対象の関数 URN | urn:fss:cn-north-4:xxx:function:default:my-func:latest |
trigger_name | --name | はい | トリガー名(1~64 文字) | daily-trigger |
schedule | --schedule | はい | Cron 式または Rate 値 | 0 0 2 * * ? または 5m |
schedule_type | --schedule-type | いいえ | Cron(デフォルト)または Rate | Cron |
enable_status | --status | いいえ | ACTIVE(デフォルト)または DISABLED | ACTIVE |
user_event | --user-event | いいえ | 追加のユーザーイベントデータ | optional info |
確認チェックリスト
- 関数 URN が正しく、関数が存在する
- Cron 式が検証済みである
- トリガー名が命名規則に従っている
- IAM 権限が十分である
- リージョンが関数の場所と一致している
出力形式
成功応答
{
"status": "success",
"trigger_id": "timer-xxx-xxx-xxx",
"trigger_name": "daily-trigger",
"trigger_type": "TIMER",
"schedule": "0 0 2 * * ?",
"enable_status": "ACTIVE",
"message": "Trigger created successfully"
}
エラー応答
{
"status": "failed",
"error_code": "TriggerAlreadyExists",
"message": "Trigger with the same name already exists"
}
エラーコードとトラブルシューティングの詳細については、Cron 式リファレンスを参照してください。
検証方法
トリガーの作成後、設定を検証してください。
1. 関数トリガーの一覧表示
FunctionGraph コンソール → 関数の詳細 → トリガータブに移動して、すべてのトリガーを表示します
2. トリガーの詳細確認
FunctionGraph コンソール → 関数の詳細 → トリガー → トリガーの詳細を表示に移動します
3. トリガー実行の監視
FunctionGraph コンソール → 関数の詳細 → トリガー → 実行履歴を表示に移動します
期待される指標:
- トリガーのステータス:アクティブ
- 次回の実行時刻:正しく計算されている
- 実行履歴:失敗した呼び出しがない
ベストプラクティス
Cron 式のベストプラクティス
- 頻繁な実行を避ける:必要な場合を除き、5 分以上の間隔を使用します
- タイムゾーンを考慮する:FunctionGraph はデフォルトで UTC を使用します
- 未使用の日付フィールドには
?を使用する:月内の日付または曜日のどちらかに?を使用します - 作成前に検証する:オンラインの Cron 検証ツールで式をテストします
命名規則
- わかりやすい名前を使用します:
daily-data-sync、hourly-health-check - 次のパターンに従います:[頻度]-[目的]
- 最大 64 文字です
- 小文字とハイフンを使用します
セキュリティに関する考慮事項
- 最小権限:必要最小限の IAM 権限を付与します
- 暗号化を有効にする:機密性の高い関数入力には KMS を使用します
- 実行を監視する:失敗を検知するために Cloud Eye アラームを設定します
- レート制限:適切な再試行パラメーターを設定します
運用上の推奨事項
- テスト時は、まずステータスを無効にします
- 説明フィールドにトリガーの目的を記載します
- 一時的な失敗に備えて適切な再試行を設定します
- 有効化後、最初の実行を監視します
参考ドキュメント
詳細については、以下を参照してください。
重要な注意事項
互換性に関する注意事項
このスキルは Huawei Cloud FunctionGraph API で動作するように設計されています。tags フィールドは、スキルの検索と分類に役立ちます。
制限事項
- トリガーの最大数:各関数でデフォルトでサポートされるトリガーは最大 10 個です
- Cron の精度:秒単位のスケジュールでは、わずかな遅延が発生する場合があります
- タイムアウトの処理:関数のタイムアウトはトリガーの間隔より短くする必要があります
- コールドスタート:初回の実行では、追加の遅延が発生する場合があります
コストへの影響
- トリガーの設定に追加料金はかかりません
- 関数の実行には呼び出しごとに課金されます
- コストを最適化するため、実行頻度を考慮してください
よくある落とし穴
- タイムゾーンの誤り:FunctionGraph は UTC を使用することにご注意ください。
- スケジュールの重複:複数のトリガーにより、同時実行が発生する場合があります。
- 実行時間の長い関数:次のトリガーが実行される前に関数が完了するようにしてください。
- Cron 構文エラー:デプロイ前に式の形式を検証してください。
トラブルシューティングとエラーコードについては、Cron 式のリファレンスを参照してください。
関連スキル:
huawei-cloud-functiongraph-function-createhuawei-cloud-functiongraph-deploy