本文へ移動

Handler と Run

保存したコードと1回ごとの実行を区別します。

対象
CLIConsoleAPI

最終検証 · v1.4.16

Markdown

Handler は保存した JavaScript、Run は1回の実行です。 保存せずに wings run --file handler.js で動かすこともできます。

通常の Handler は export default async function (event, env) を使います。 Web アプリは fetch(request, env) を使います。

外への通信を許可する

外への fetch() には、相手のホストに一致する Connection を Handler または Run に割り当てる必要があります。 公開ページ・RSS・公開 API も同じです。 認証のいらないホストには wings connection add status-claude --host status.claude.com --auth none で作成し、wings run --file handler.js または wings handler deploy に --connection status=status-claude を付けます。 fetch のオプションに agiWings: { connection: 'status' } を指定して選択できます。 ホストの完全一致や Console・API の手順は Connectionを参照してください。

更新する

wings handler deploy --update <handler-id> --file handler.js

更新しても、ID、Trigger、Secret、Database、実行履歴は残ります。 --connection を省略すると、設定済みの Connection も残ります。 指定した場合は、Connection の設定全体を置き換えます。 更新時は --schedule を併用できません。

削除する

wings handler rm <handler-id>

Handler を削除すると、Trigger、Secret、Connection との関連付けも消えます。 過去の Run は、この Handler の logs や run show で読めなくなります。 必要な結果は先に保存してください。

ファイルを渡す

wings run <handler-id> --input ./input.bin

Handler は await env.input() でファイルを受け取ります。 返された Response の内容を読めるのは1回だけです。

  • 渡せるのは通常のファイル1つです。容量は最大1 GiBです。
  • 8 MiBまでのチャンクに分けて転送します。
  • 1アカウントで同時に準備・実行できる入力は1つです。
  • 入力は保存しません。終了、キャンセル、期限切れで破棄します。

大きなデータを外部 API とやり取りする

外部 API への fetch に agiWings: { stream: true } を指定すると、ストリームで転送できます。 送信は100 MiB、応答は1 GiBまでです。 指定しない場合は、送信1 MiB、応答4 MiBまでです。

外部サービス側の制限も適用されます。 Run の30秒/120秒の期限は延びません。 転送した分だけ外部の処理が進んでいる可能性があるため、自動では再送しません。

実行時間の数え方と実行履歴も確認してください。

Handler と Run | AGI Wings 公式ドキュメント