အကြောင်းအရာသို့ ကျော်သွားပါ

Cloudflare Workers ရှိ ဝဘ်အဆင့်

Cloudflare Workers တွင် လျှော့ချထားသော Quire ဝဘ်အဆင့် လည်ပတ်ပါ။

Markdown အဖြစ် ကြည့်ပါ

ဒီဇိုင်းက docs/architecture/23-ops.md အပိုင်း ၆ ဖြစ်သည်။ Workers က လျှော့ချထားသောဝဘ်အဆင့် လည်ပတ်သည်။ Workers ရှိ လုပ်ဆောင်ချက်တူညီမှုက နယ်ပယ်အပြင် (PRD အပိုင်း ၁၂)– ဤပစ်မှတ် မလုပ်နိုင်သည့်အရာကို စတင်သည့်အခါ အမည်ပေး၍ ငြင်းပယ်သည်။

ဤထုတ်ဝေမှုရှိ အခြေအနေ

စီစဉ်မှုက နေရာတကျ ရှိသည် (apps/web/wrangler.jsonc၊ cloudflare-module Nitro ကြိုတင်သတ်မှတ်မှု၊ Hyperdrive တံတားနှင့် စတင်စစ်ဆေးမှုများ)။ Worker တစ်ခုက R2 အတွက် S3 နှင့်ကိုက်ညီသောသိုလှောင်မှု (QUIRE_STORAGE_DRIVER=s3)၊ တောင်းဆိုမှုများ ဖြတ်ကျော် realtime မောင်းနှင်သူ (QUIRE_REALTIME_DRIVER=durable_objects သို့မဟုတ် centrifugo)၊ မျှဝေသောသိမ်းဆည်းမှု (QUIRE_CACHE_DRIVER=postgres သို့မဟုတ် valkey) နှင့် HTTP အီးမေးလ်ဝန်ဆောင်မှုပေးသူ လိုအပ်သည်။ ၎င်းတို့မရှိပါက Worker က စတင်ရန် ငြင်းပယ်ပြီး ၎င်း၏မှတ်တမ်း ဆက်တင်တစ်ခုစီ အမည်ပေးသည်။ Durable Objects မောင်းနှင်သူက apps/realtime-worker ရှိ realtime Worker ၏ client ဖြစ်သည် (ဖြန့်ဝေမှု၊ တည်ရှိမှုနှင့် မှတ်တမ်းအတွက် channel တစ်ခုလျှင် Durable Object တစ်ခု၊ ချိတ်ဆက်ပြတ်မှုအတွက် လူတစ်ဦးလျှင် တစ်ခု)။ အောက်၌ပါသည့်အတိုင်း ၎င်းဘေးတွင် ဖြန့်ကျက်ပါ၊ သို့မဟုတ် Centrifugo အသုံးပြုပါ။

အစိတ်အပိုင်းများ

အစိတ်အပိုင်း Cloudflare တွင်
web nodejs_compat ပါသော Worker တစ်ခု
Postgres Hyperdrive မှတစ်ဆင့် ရောက်သော ပြင်ပ– အက်ပလီကေးရှင်းအခန်းကဏ္ဍအတွက် HYPERDRIVE၊ တူညီသောရုပ်ပိုင်းဆိုင်ရာဒေတာဘေ့စ်တွင် အစီရင်ခံအခန်းကဏ္ဍအတွက် REPORT_HYPERDRIVE။ ဝဘ်အဆင့်က စတင်သည့်အခါ ချိတ်ဆက်မှုစာကြောင်းတစ်ခုစီကို DATABASE_URL နှင့် QUIRE_REPORT_DATABASE_URL အဖြစ် ကူးသည်
Files ၎င်း၏ S3 API မှတစ်ဆင့် R2 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com)။ FILES ချိတ်ဆက်မှုက ပုံးကို တွဲသည်
Background jobs စာရေးမှုဖြင့် တန်းစီရမည့်အလုပ်အတွက် Hyperdrive ပေါ်မှ pg-boss။ အဖော်အလုပ်သမားတွင် QUIRE_QUEUE_DRIVER=cloudflare ဖြင့် ပေါ့ပါးသောအလုပ်များ (အစီအစဉ်မချထားသော အသိပေးချက်နှင့် webhook ပို့ဆောင်မှုများ) က Postgres ကို စစ်ဆေးမနေစေရန် အစား Cloudflare Queues မှတစ်ဆင့် သွားသည်။ အဖော်အလုပ်သမားက နှစ်ခုစလုံး လည်ပတ်သည်
Realtime Durable Objects ပါသော realtime Worker၊ apps/realtime-worker
worker၊ scheduler၊ collab၊ content၊ ClamAV၊ Gotenberg၊ ffmpeg အဖော်ကွန်တိန်နာအိမ်ရှင်။ Worker တစ်ခုက ၎င်းတို့ကို လည်ပတ်၍မရပါ
Tracing wrangler.jsonc တွင် ဖွင့်ထားသော Workers စောင့်ကြည့်မှု

REPORT_HYPERDRIVE က HYPERDRIVE အမည်ပေးသောရုပ်ပိုင်းဆိုင်ရာဒေတာဘေ့စ်အတွက် အစီရင်ခံအခန်းကဏ္ဍ ပေးသည်။ ဤပစ်မှတ်က အောက်၌ဖော်ပြထားသည့်အတိုင်း ထပ်တိုးရုပ်ပိုင်းဆိုင်ရာဒေတာဘေ့စ်များတွင် ချိတ်ထားသော tenant များကို ဝန်ဆောင်မှု မပေးပါ။

ဤပစ်မှတ် မလုပ်နိုင်သည့်အရာ

စတင်စဉ် ငြင်းပယ်သည်၊ ပြဿနာတိုင်း တစ်ပြိုင်နက် စာရင်းပြုစုလျက်–

  • SMTP မရှိပါ။ QUIRE_EMAIL_PROVIDER_CONFIG တွင် HTTP ဝန်ဆောင်မှုပေးသူ အသုံးပြုပါ။
  • ဒေသခံဒစ်ခ် မရှိပါ။ QUIRE_STORAGE_DRIVER က object သိုလှောင်မှု အမည်ပေးရမည်။
  • လုပ်ငန်းစဉ်တွင်း realtime သို့မဟုတ် သိမ်းဆည်းမှု မရှိပါ။ Workers က တောင်းဆိုမှုများအကြား မှတ်ဉာဏ် မမျှဝေပါ၊ ထို့ကြောင့် QUIRE_REALTIME_DRIVER=inprocess နှင့် QUIRE_CACHE_DRIVER=memory ကို ငြင်းပယ်သည်။
  • Worker တွင် ClamAV၊ Gotenberg သို့မဟုတ် ffmpeg မရှိပါ။ Worker တွင် သတ်မှတ်ထားသော CLAMAV_URL၊ GOTENBERG_URL နှင့် FFMPEG_PATH ကို ငြင်းပယ်သည်။ အစား အဖော်အလုပ်သမားတွင် သတ်မှတ်ပါ။
  • သီးသန့်ဒေတာဘေ့စ်အဖွဲ့အစည်းများ မရှိပါ။ Worker ၏ Hyperdrive ချိတ်ဆက်မှုများ ဖြန့်ကျက်ချိန်တွင် ပုံသေဖြစ်သောကြောင့်၊ ကိုယ်ပိုင်ဒေတာဘေ့စ်ပါသောအဖွဲ့အစည်းက ရှင်းလင်းသော “ဤနေရာတွင် မရနိုင်ပါ” စာမျက်နှာ ရသည်။ Compose သို့မဟုတ် Vercel မှ ၎င်းကို ဝန်ဆောင်မှုပေးပါ။

ငြင်းပယ်မထားသော်လည်း သိရမည့်အရာတစ်ခု– ကြိုတင်ဖော်ပြခြင်းနှင့် ထပ်တိုးတည်ငြိမ် ပြန်လည်ထုတ်လုပ်ခြင်း Workers တွင် အလုပ်မလုပ်ပါ၊ framework စာရွက်စာတမ်း ဘာပြောသည်ဖြစ်စေ။ လမ်းကြောင်းတိုင်း တောင်းဆိုမှုတစ်ခုစီအလိုက် ဖော်ပြသည်။

ဤပစ်မှတ်တွင် ငွေလွှဲများ တိုအောင် ထားပြီး ကွန်ရက်ခေါ်ဆိုမှုတစ်ခုဖြတ် တစ်ခုကို ဘယ်တော့မှ မကိုင်ထားပါနှင့်– ချိတ်ဆက်မှုတစ်ခု ပေါင်းကူးသို့ ပြန်ရောက်သည့်အခါ Hyperdrive က session အခြေအနေ ပြန်လည်သတ်မှတ်သောကြောင့်၊ tenant အခြေအနေ ငွေလွှဲတစ်ခုစီအလိုက် သတ်မှတ်သည်။

ဖြန့်ကျက်ခြင်း

  1. အရင်းအမြစ်များ ဖန်တီးပါ–
    bun run --bun wrangler hyperdrive create quire-app --connection-string="postgres://quire_app:...@db.example.com:5432/quire"
    bun run --bun wrangler hyperdrive create quire-report --connection-string="postgres://quire_report:...@db.example.com:5432/quire"
    bun run --bun wrangler r2 bucket create quire-files
    bun run --bun wrangler queues create quire-jobs
    Hyperdrive id နှစ်ခုကို apps/web/wrangler.jsonc အတွင်း ထည့်ပါ။
  2. လျှို့ဝှက်ချက်များ သတ်မှတ်ပါ၊ bun run --bun wrangler secret put <NAME> ဖြင့် apps/web မှ တစ်ခုစီ– QUIRE_SECRET_KEY၊ QUIRE_MASTER_KEY၊ QUIRE_EMAIL_PROVIDER_CONFIG၊ S3_ACCESS_KEY_ID၊ S3_SECRET_ACCESS_KEY၊ QUIRE_COLLAB_SIGNING_KEY၊ QUIRE_REALTIME_WORKER_SECRET။ ရိုးရိုးဆက်တင်များ (QUIRE_APP_ORIGIN၊ QUIRE_CONTENT_ORIGIN၊ QUIRE_PLATFORM_DOMAINS၊ QUIRE_DATABASE_ID၊ S3_ENDPOINT၊ S3_BUCKET၊ QUIRE_COLLAB_URL) က vars အတွင်း သွားသည်။
  3. apps/web မှ တည်ဆောက်ပြီး ဖြန့်ကျက်ပါ–
    NITRO_PRESET=cloudflare-module bun run build
    bun run --bun wrangler deploy
  4. realtime Worker ကို ဖြန့်ကျက်ပါ၊ ဝဘ်အဆင့်၏ QUIRE_REALTIME_WORKER_SECRET နှင့် ၎င်း၏တိုကင်လျှို့ဝှက်ချက်ကို QUIRE_REALTIME_TOKEN_SECRET အဖြစ် (ဝဘ်အဆင့်က realtime တိုကင်များကို ၎င်း၏ကိုယ်ပိုင် QUIRE_REALTIME_TOKEN_SECRET ဖြင့်၊ သို့မဟုတ် မသတ်မှတ်ထားလျှင် QUIRE_SECRET_KEY ဖြင့် လက်မှတ်ထိုးသောကြောင့်၊ ၎င်းအသုံးပြုသည့်အရာကို အသုံးပြုပါ)၊ ဝဘ်အဆင့်တွင် QUIRE_REALTIME_WORKER_URL ကို ၎င်း၏လိပ်စာ အဖြစ် သတ်မှတ်ပါ–
    cd apps/realtime-worker
    bun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRET
    bun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRET
    bun run --bun wrangler deploy
  5. Cloudflare Queues ရှိ ပေါ့ပါးသောအလုပ်များအတွက် အပေါ့စားတန်းစီတစ်ခုလျှင် တန်းစီတစ်ခုဖန်တီးပြီး အဖော်အလုပ်သမားတွင် ယင်းတို့ကို သတ်မှတ်ပါ (Queues ဖတ် ရေးခွင့်ပါသော API တိုကင်)–
    bun run --bun wrangler queues create quire-events-notifications
    bun run --bun wrangler queues create quire-events-notifications-dead
    bun run --bun wrangler queues create quire-events-webhooks
    bun run --bun wrangler queues create quire-events-webhooks-dead
    QUIRE_QUEUE_DRIVER=cloudflare၊ CLOUDFLARE_ACCOUNT_ID၊ CLOUDFLARE_QUEUES_TOKEN၊ QUIRE_QUEUE_PREFIX (quire- မဟုတ်ပါက)။
  6. Vercel လမ်းညွှန် အတိုင်း၊ အဆင့် ၃၊ အဖော်အိမ်ရှင် လည်ပတ်ပါ။ ရွှေ့ပြောင်းမှုများ ထိုနေရာတွင် လည်ပတ်သည်၊ Worker ဖြန့်ကျက်မှုတစ်ခုစီမပြုမီ။

ငြင်းပယ်သောစီစဉ်မှုက bun run --bun wrangler tail တွင် “The web tier did not start on cloudflare” အဖြစ် ပြပြီး၊ နောက်၌ ပြောင်းရမည့်ဆက်တင်တစ်ခုစီ ပါရှိသည်။

လမ်းညွှန်

ရှာဖွေရန် ရိုက်ထည့်ပါ…

↑↓ ရွှေ့ပါ↵ ရွေးချယ်ပါEsc ပိတ်ပါ