Handler と Run
保存したコードと1回ごとの実行を区別します。
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秒の期限は延びません。 転送した分だけ外部の処理が進んでいる可能性があるため、自動では再送しません。