Skip to main content
開発者向けドキュメントを表示しています
このドキュメントは、Base44 開発者プラットフォームで作業する開発者向けです。アプリエディタ内の自動化については、アプリ用の自動化の作成を参照してください。
自動化により、バックエンド関数をスケジュールに沿って、データベースイベントに応じて、または接続されたインテグレーションが webhook イベントを送信したときに自動的に実行できます。自動化を使用して、定期的にデータを処理し、エンティティの変更を処理し、外部サービスイベントに反応し、特定のタイミングで一度きりのタスクを実行できます。 各バックエンド関数には複数の自動化を関連付けることができ、関数の function.jsonc ファイルで設定します。entry.ts または entry.js ファイルのみがある場合は、自動化を使用するためにこの設定ファイルを追加する必要があります。deploy または functions deploy を実行すると、自動化は関数コードと一緒にアトミックにデプロイされます。

自動化のタイプ

Base44 は 4 種類の自動化をサポートしています:

共通フィールド

すべての自動化に共通のフィールド

すべての自動化タイプは、次のフィールドを共有します:

スケジュールされた自動化に共通のフィールド

cron とシンプルなスケジュールされた自動化の両方は、これらの追加フィールドを共有します:

自動化の設定

function.jsonc ファイルで、以下のアプローチのいずれかを使用して自動化を設定します。すべての自動化は、上記のすべての自動化に共通のフィールドと、各タイプ固有のフィールドを使用します。

Cron

すべての自動化に共通のフィールドスケジュールされた自動化に共通のフィールドに加えて、ここにリストされている cron 固有のフィールドを使用します。 正確なスケジュール制御のために cron 式を使用するには、type"scheduled"schedule_type"cron" に設定します。 cron 自動化は、標準の 5 フィールド構文を使用します: minute hour day-of-month month day-of-week。インタラクティブな cron 式エディタと構文リファレンスについては、crontab.guru を参照してください。

Cron の例

この例では、関数を毎日 UTC 真夜中に実行します:

シンプルスケジュール

すべての自動化に共通のフィールドスケジュールされた自動化に共通のフィールドに加えて、ここにリストされているシンプルスケジュールフィールドを使用します。 簡単なスケジューリングニーズには type"scheduled"schedule_type"simple" に設定します。 cron 式を書かずに、分、時間、日、週、または月などの間隔で繰り返しタスクを設定できます。

シンプルスケジュールの例

以下の例は、シンプルスケジュールで自動化をスケジュールするさまざまな方法を示しています:

エンティティイベント

すべての自動化に共通のフィールドに加えて、ここにリストされているエンティティイベントフィールドを使用します。 データベースレコードが作成、更新、または削除されたときに関数を自動的にトリガーするには、type"entity" に設定します。 エンティティ自動化は、特定のエンティティで 1 つまたは複数のイベントタイプをリッスンできます。

エンティティイベントの例

以下の例は、エンティティイベントに基づいて関数をトリガーする方法を示しています:

コネクター自動化

すべての自動化に共通のフィールドに加えて、ここにリストされているコネクター固有のフィールドを使用します。 接続されたインテグレーションが webhook イベントを送信したときに関数をトリガーするには、type"connector" に設定します。これらを使用して、外部サービスのアクティビティにリアルタイムで反応します。例えば、新しいメールを解析したり、カレンダーの変更を同期したり、Google Drive のファイル更新に応答したりできます。 トリガー条件をオプションで追加して、定義したルールにペイロードが一致する場合のみ関数が実行されるようにイベントをフィルタリングできます。 コネクター自動化が発火すると、関数はイベントタイプ、インテグレーションの詳細、外部サービスからの生データを含む構造化された webhook ペイロードを受信します。
コネクターは、デプロイ前にプロジェクトで構成され、認可されている必要があります。セットアップ手順については、共有コネクターを参照してください。

サポートされるインテグレーションとイベント

Gmail の mailbox イベントは、新しいメッセージだけでなく、すべてのメールボックスの変更で発火します。新しいメールが届いたときのみ関数を実行するには、トリガー条件を追加します: { "field": "has_new_messages", "operator": "equals", "value": true }
Slack コネクター自動化にはトリガー条件が必要です。Slack コネクター自動化に条件が設定されていない場合、デプロイは失敗します。

リソース ID の形式

resource_id の予想値はコネクターによって異なります:
  • Google Drive: ファイル ID。ファイルスコープイベント (filefile.updatefile.trashfile.untrashfile.delete) に必要。
  • Gmail: 監視するラベル ID のカンマ区切りリスト。省略した場合はデフォルトで "INBOX"
  • Microsoft Teams: 特定のチャンネルを監視するには {teamId}/{channelId}、特定のチャットを監視するには {chatId}
  • SharePoint: 特定のリストを監視するには {siteId}/{listId}

トリガー条件

trigger_conditions を使用して、定義したルールにペイロードが一致する場合のみ関数が実行されるように webhook イベントをフィルタリングします。条件が設定されていない場合、関数はすべての受信イベントで実行されます。完全な構成については、コネクター自動化の例を参照してください。
string
条件を結合する方法。可能な値: "and" (すべて一致する必要があります)、"or" (いずれかが一致する必要があります)。デフォルトは "and"
array
必須
1 つ以上の条件オブジェクトまたはネストされた条件グループ。最大 20 個の葉条件と 5 レベルのネスト。

Webhook ペイロード

コネクター自動化が関数をトリガーすると、リクエストボディには次の構造の payload オブジェクトが含まれます。ペイロードを読み取る関数については、コネクター自動化の例を参照してください。

コネクター自動化の例

関数引数

自動化設定に function_args フィールドを含めることで、関数がトリガーされたときにデータを渡すことができます。これは、1 つの関数が異なる動作で複数の自動化を処理する場合に役立ちます。例えば、15 分ごとに増分実行されるが日次でフルシンクを行う同期関数などです。 これらの引数は、リクエストボディを介して関数コード内でアクセスできます。

関数引数の例

この例は、自動化設定に基づいて増分とフルシンクモードの両方を処理する関数を示しています:

自動化のデプロイ

CLI functions deploy コマンドまたは統合 deploy コマンドを使用して、自動化付きのバックエンド関数をデプロイします。functions deploy <names...> で名前で特定の関数をデプロイできます。 デプロイは関数ごとにアトミックです。関数は、Deno デプロイメントとそのすべての自動化の両方が成功した場合にのみデプロイされたと見なされます。自動化のデプロイに失敗した場合、関数のデプロイ全体がロールバックされます。 デプロイ後、CLI は関数ごとのステータスを表示します: deployed、unchanged、または error。

ダッシュボードで自動化を管理する

ダッシュボードで行った変更は、次回 functions deploy を実行したときに上書きされます。ダッシュボードとローカルファイル間には双方向同期はありません。ローカルの function.jsonc ファイルで定義された自動化が真実の源です。自動化を変更したい場合は、ローカルの function.jsonc ファイルを更新して再デプロイしてください。実行ログの監視や必要に応じた手動でのトリガーには、ダッシュボードを使用してください。
Automations タブの下で Base44 ダッシュボードで自動化を表示・管理できます。ダッシュボードから次のことができます:
  • 実行ログと履歴を表示
  • テストのために自動化を手動で実行
  • 自動化のステータスを監視

関連項目

このページは AI を使用して翻訳されました。最も正確で最新の情報については、英語版 を参照してください。