関数の作成
Base44 の関数は Deno 上で実行されるサーバーレスバックエンド関数です。プロジェクト内でローカルに定義され、Base44 バックエンドにデプロイされます。関数ディレクトリ
すべての関数定義はプロジェクトのbase44/functions/ フォルダーに配置する必要があります。最もシンプルな関数は、entry.ts または entry.js ファイルを含むフォルダーです。
構造の例:
関数の作成方法
base44/functions/に関数名で新しいディレクトリを作成します (kebab-case を使用)- そのディレクトリに
entry.ts(またはentry.js) を作成します - CLI を使用して関数をデプロイします
関数の検出
CLI はentry.ts または entry.js ファイルから関数を検出します。それらのファイルのいずれかを含むフォルダーが関数です:
| ファイル | 関数名 |
|---|---|
base44/functions/process-order/entry.ts | process-order |
base44/functions/orders/process/entry.ts | orders/process |
entry.tsまたはentry.jsはbase44/functions/直下ではなく、名前付きサブフォルダー内にある必要があります- 関数フォルダー内のすべての
*.js、*.ts、*.jsonファイルはデプロイ時に含まれます - パスセグメントにドットを含む関数パスは無視されます
エントリーポイントファイル
関数は Deno 上で実行され、Deno.serve() を使用してエクスポートする必要があります。npm パッケージには npm: プレフィックスを使用します。
Request オブジェクト
関数は標準の DenoRequest オブジェクトを受け取ります:
req.json()- JSON ボディを解析req.text()- 生のテキストボディを取得req.headers- リクエストヘッダーにアクセスreq.method- HTTP メソッド
Response オブジェクト
JSON レスポンスにはResponse.json() を使用して返します:
完全な例
ディレクトリ構造
entry.ts
サービスロールアクセスの使用
管理者レベルの操作にはasServiceRole を使用します:
シークレットの使用
アプリダッシュボードで設定された環境変数にアクセス:命名規則
- ディレクトリ名: kebab-case を使用 (例:
process-order,send-notification) - 関数名:
base44/functions/の下のディレクトリパスから決まります- 有効:
process-order,orders/process,send_notification,myFunction - 無効:
process.order,send.notification.v2
- 有効:
- エントリーファイル:
entry.tsまたはentry.jsを使用
関数のデプロイ
関数を作成したら、Base44 にデプロイします:注意事項
- 関数は Node.js ではなく Deno ランタイム上で実行されます
- npm パッケージには
npm:プレフィックスを使用します (例:npm:@base44/sdk) - 呼び出し元の認証コンテキストを継承するクライアントを取得するには
createClientFromRequest(req)を使用します - API キーは app ダッシュボードでシークレットを設定します
- エラーを適切に処理し、適切な HTTP ステータスコードを返してください
よくある間違い
| 誤 | 正 | 理由 |
|---|---|---|
base44/functions/myFunction.js (単一ファイル) | base44/functions/my-function/entry.ts | 関数は名前付きサブディレクトリに存在する必要があります |
base44/functions/entry.ts | base44/functions/my-function/entry.ts | 関数名はサブディレクトリパスから決まります |
import { ... } from "@base44/sdk" | import { ... } from "npm:@base44/sdk" | Deno は npm パッケージに npm: プレフィックスを必要とします |
MyFunction または myFunction ディレクトリ | my-function ディレクトリ | ディレクトリ名には kebab-case を使用します |
このページは AI を使用して翻訳されました。最も正確で最新の情報については、英語版 を参照してください。

