Open8
Cloudflareにハンズオン
SDの1月号の特集に基づいてやってみる
npm create cloudflare@latest
で初期化。
本の内容に逆らって、Typescriptでやってみる。
src/index.ts
に色々書いてあるけど、実行時のKey-Valueがあったり、Durable Object?があるみたい。
// Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/
// MY_KV_NAMESPACE: KVNamespace;
//
// Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/
// MY_DURABLE_OBJECT: DurableObjectNamespace;
KVはともかく、Durable Objectってどんな感じに動作するんだろ。
ワーカーって同時にも動くわけでしょ?
ちゃうわ。
KVってCloudflareのマネージドKVSの名前だったわ。
npm run deploy
でデプロイした。
URLにアクセスしても何も見えないけど、時間経てば解決する?
とりあえず、curlはcurl: (6) Could not resolve host:
になる。
だけど、携帯からアクセスするといけるな…
登録してるDNSがダメ?
↑DNS変えたら成功した。
TSとJSではプログラムがちょっと違って見えるけどService Worker APIの仕様に従ってるらしいので、どっちも許容範囲内なのかな?それともJSにコンパイルされた結果で見てるのかな?
request: リクエストの中身
env: 環境変数とか、他サービスへの接続とか
ctx: handlerの中で特別な処理をしたいときに呼び出す関数とか
ctxの型定義はこんな感じになってた
declare interface ExecutionContext {
waitUntil(promise: Promise<any>): void;
passThroughOnException(): void;
}
いろんなHandlerがあるみたい。
メールとか定期実行とかキューとか。
キューについてはうっかりループにしちゃうと破産しそう。