Architektúra · Űrlapok, ellenőrzés és munkafolyamat-futtatás

Eseményvezérelt űrlap- és munkafolyamat-backend WordPresshez AWS-en

Az űrlapok létrehozása és elhelyezése maradjon WordPressben, míg a tartós vázlatok, beküldések, megbeszélések, ellenőrzési állapotok, értesítések és további műveletek egy egyértelmű API- és eseményhatár mögött futnak.

WordPress / statikus frontend
          ↓
      Flow-futtatókörnyezet
      frontend API
          ↓
Beküldési és vázlatállapot
   ├→ feltöltések
   ├→ megbeszélés / ellenőrzési állapot
   └→ munkafolyamat-események
          ↓
e-mail / webhookok / műveletek

Végrehajtási határ

Az űrlap akkor válik munkafolyamattá, amikor az állapotának túl kell élnie az oldalkérést

A hosszú űrlapoknak, jóváhagyásoknak és ellenőrzési folyamatoknak tartós állapotra van szükségük. A Flow különválasztja a böngészőbeli élményt a backendbeli állapotmegőrzéstől és a további végrehajtástól, így a nyilvános oldal statikus maradhat, miközben a folyamat önállóan folytatódik.

Űrlap- / ellenőrzési felület WordPressben
          ↓ böngésző
      /frontend/* API
   ├→ vázlat mentése / betöltése / véglegesítése
   ├→ rekord beküldése
   ├→ feltöltési szerződés
   └→ megbeszélési / értékelési adatok
          ↓
tartós állapot + események
/admin/* → védett kezelés
          ↓
munkafolyamat-indítás → e-mail / webhook / folyamatművelet

Biztonsági határ A nyilvános űrlapútvonalak és a privilegizált adminisztrációs útvonalak kockázati profilja eltérő. Az anonim beküldések kontrolljai, a hitelesített ellenőri hozzáférés és az adminisztratív konfiguráció nem használhat közös, széles jogosultsági felületet.

A Flow stack által létrehozott erőforrások

A Flow backend különválasztja az API-, számítási, állapot-, adat-, esemény-, biztonsági és üzemeltetési feladatokat. Ez az áttekintés megmutatja az egyes architekturális szerepeket ellátó AWS-erőforrásokat.

RétegAWS-erőforrásokArchitekturális feladat
API-rétegRegionális API Gateway REST API, opcionális egyedi domain és opcionális Route53-rekordokKülön frontend- és adminútvonalakat biztosít anélkül, hogy az űrlapok futtatását a WordPress-tárhelyhez kötné.
Számítási rétegForms API Lambda, Workflow Dispatcher Lambda, Email Sender Lambda, Webhook Dispatcher Lambda és telepítési Custom Resource LambdaKülön működési egységben tartja a szinkron űrlapkezelést, az aszinkron munkafolyamatokat, az e-mail-küldést és a kimenő webhookokat.
ÁllapotrétegDynamoDB-táblák a beküldésekhez, eseményekhez, sablonokhoz, munkafolyamat- és űrlapdefiníciókhoz, webhook-végpontokhoz és folyamattérképekhezCélhoz kötött, TTL-lel és megőrzéssel kezelt táblákban tárolja a definíciókat, rekordokat és állapotot, nem a WordPress-adatbázist használja integrációs naplóként.
AdatrétegS3-adatbucket és sablonbucket, opcionálisan meglévő bucketekA nagy fájlátvitelt és az újrafelhasználható e-mail- vagy sablonerőforrásokat objektumtárba helyezi.
EseményrétegEventBridge-szabályok és események: beküldés létrehozva/frissítve, állapot/művelet, AI-agent befejeződött/meghiúsultAz űrlapműveleteket megfigyelhető eseményekké alakítja, amelyek a látogató blokkolása nélkül indíthatnak munkafolyamatokat.
Biztonsági rétegCognito authorizer az adminútvonalakhoz, opcionális IAM/NONE módok, WAF, reCAPTCHA, IP-engedélyezési/-tiltási listák, SSM/KMS a titkokhozEltérő védelmet alkalmaz a nyilvános beküldésekre és a privilegizált kezelési API-kra.
Üzemeltetési rétegCloudWatch-naplócsoportok, SQS dead-letter queue, konfigurálható naplómegőrzés és opcionális GuardDuty kártevővédelemSaját naplókat, újrapróbálkozási/hibafelületet és opcionális adatellenőrzést ad a futtatókörnyezethez.

Frontend API és admin API

A két útvonalcsalád eltérő hívókat szolgál ki, ezért nem örökölhetik ugyanazokat a bizalmi feltételezéseket. A táblázat az űrlapműködés és jogosultságok beállítása előtt láthatóvá teszi a futtatási határt.

ÚtvonalcsaládPéldákJellemző hívóBiztonsági megközelítés
Frontendbeküldés/frontend/forms/{formId}/submitNyilvános vagy védett oldalon megjelenített Flow-űrlapFelhasználói hitelesítés nélkül is futhat, de anonim forgalomnál reCAPTCHA-, WAF- és sebességkorlátozás szükséges.
Frontendvázlatok/frontend/forms/{formId}/drafts, /drafts/load, /drafts/delete, /drafts/{submissionId}/submitHosszú űrlapot mentő, folytató vagy véglegesítő látogatóA vázlathoz tartozó hitelesítő adatok és a végleges validáció különválik, így a vázlatmentés nem indítja el a végleges munkafolyamatot.
Frontend-feltöltés előkészítése/frontend/forms/{formId}/upload-urlNagy melléklet feltöltését előkészítő űrlapkomponensElőre aláírt S3-feltöltési szerződést ad vissza; az adatnak nem kell áthaladnia a WordPressen.
Adminűrlapok és -beküldések/admin/forms, /admin/forms/{formId}/submissionsWP Admin vagy kezelőfelületCognito/IAM és opcionális IP-engedélyezési lista védje.
Adminsablonok, -munkafolyamatok és -webhookok/admin/templates, /admin/workflows, /admin/webhook-endpointsAz üzleti működést konfiguráló adminisztrátorEzek az útvonalak megváltoztatják a futtatási viselkedést, ezért soha nem kezelhetők nyilvános frontend-végpontként.

Adatmodell: miért hasznos több tábla

A backend külön kezeli a definíciókat, az aktuális rekordokat, az eseménytörténetet és az integrációs konfigurációt, mert életciklusuk eltér. Egyetlen általános űrlapsor nem elegendő a tartós munkafolyamatokhoz.

TáblacsaládMit képviselMiért különálló
ŰrlapdefiníciókA frontenden használt űrlapok szerkezete és verzióiAz űrlap módosulhat, miközben a régi beküldéseknek továbbra is értelmezhetőnek kell maradniuk.
BeküldésekAktuális beküldési állapot, vázlat/végleges állapot és alapvető mezőadatokEz az a működési rekord, amelyet az adminnézetek és munkafolyamatlépések lekérdeznek.
Beküldési eseményekBővülő előzmény: létrehozás, frissítés, állapotváltozás, művelethívásAz audit- és újrapróbálkozási működés nem írhatja felül az aktuális beküldési rekordot.
SablonokÚjrafelhasználható e-mail- és sablonmetaadatokAz e-mail-tartalomnak a beküldési rekordoktól függetlenül kezelhetőnek kell lennie.
Munkafolyamat-definíciókSzabályok, műveletek és útválasztási működésA munkafolyamat-logikának saját életciklusa van, ezért explicit verziózás és kezelés szükséges.
Webhook-végpontokKimenő integrációs célok és aláírási beállításokA külső rendszerek működési függőségek, nem egyszerű űrlapmezők.
FolyamattérképekFutásidejű kapcsolat a folyamatok, beküldések és műveletek közöttAz összetett munkafolyamatokhoz egyetlen űrlaprekordon túlmutató korrelációs állapot szükséges.

Biztonsági és visszaélés elleni kontrollok

A nyilvános űrlapútvonalak és a privilegizált kezelési útvonalak nem használhatnak azonos védelmi modellt. A táblázat elhelyezi a botvédelmet, a WAF-ot, az identitást és a titkok tárolását a Flow futtatókörnyezetében.

KontrollAlkalmazási területTervezési indok
reCAPTCHANyilvános frontend-űrlapvégpontokCsökkenti a botbeküldéseket, mielőtt azok tárolt rekordot, e-mailt, webhookot vagy modell-/munkafolyamat-költséget eredményeznének.
WAF-sebességkorlátozásFrontend- és adminútvonal-előtagokEltérően korlátozza a látogatói és adminisztrációs útvonalakkal való visszaélést.
Admin Cognito authorizer/admin/* útvonalakValódi identitási határ mögött tartja az űrlapdefiníciókat, beküldéseket, sablonokat, munkafolyamatokat és webhook-konfigurációt.
SSM/KMS-titkokreCAPTCHA-titkok és webhook-aláírási titkokA megosztott titkokat távol tartja a WordPress-beállításoktól és a sablonforrásoktól.
GuardDuty kártevővédelemAdatbucket, ha engedélyezettOpcionális ellenőrzést ad a feltöltött adatokhoz, mielőtt a további feldolgozás megbízik bennük.

Az architektúrát megváltoztató telepítési paraméterek

Ezek nem pusztán megjelenési beállítások. Megváltoztatják a hitelesítést, a visszaélés elleni védelmet, a tárhely tulajdonlását, a titkokat, a domaineket és az üzemeltetést, ezért architekturális döntésként kell őket felülvizsgálni.

ParaméterterületPéldákArchitekturális hatás
Hitelesítési módokFrontendApiAuthMode, AdminApiAuthMode, AdminCognitoUserPoolId, scope-okMeghatározza, hogy a frontend- és adminfelületek nyilvánosak, IAM- vagy Cognito-védettek.
Visszaélés elleni védelemEnableRecaptcha, reCAPTCHA-mód/webhelykulcs/küszöb, EnableWAF, engedélyezett/tiltott IP-listákMeghatározza, mennyi anonim forgalom érheti el a backendet, és mely útvonalak sebességkorlátozottak vagy engedélyezettek.
Tárhely tulajdonlásaTemplatesBucketName, PayloadBucketName, előtagokLehetővé teszi újonnan létrehozott bucketek vagy meglévő tárolási konvenciók használatát.
TitkokEnableKmsForSecrets, webhook-aláírási titok, reCAPTCHA-titokMeghatározza, hogy a titkok dedikált KMS-kulccsal és SSM-paraméterekkel legyenek-e tárolva.
Domain/DNSApiCustomDomainName, tanúsítvány ARN, Route53-beállításokAz API-t execute-api URL-ről saját domainre helyezi, amikor a DNS- és tanúsítványútvonal elkészült.
ÜzemeltetésAdat- és naplómegőrzés, Lambda-memória/időtúllépés/naplózási szintA WordPress-oldalak módosítása nélkül szabályozza a költséget, megfigyelhetőséget és futtatási tartalékot.

Megvalósítási út

A műveletek összekötése előtt modellezze a folyamatot

Ugyanaz a backend egyszerű űrlapokat és összetettebb folyamatokat is támogathat, ha a vázlat, a beküldés, az ellenőrzés és a művelet állapota egyértelmű marad.

  1. Határozza meg a rekordot és annak életciklusát — Döntse el, mi számít vázlatnak, mi válik beküldött rekorddá, milyen ellenőrzési állapotok léteznek, és mely mezőknek vagy mellékleteknek kell megmaradniuk a munkamenetek között.
  2. Válassza külön a látogatói és ellenőri műveleteket — A nyilvános vagy hitelesített frontendműveleteket tartsa szűk futtatási felületen, az űrlapok, beküldések és munkafolyamatok adminisztratív kezelését pedig külön védje.
  3. A tartós állapotváltozás után bocsásson ki eseményt — E-mailt, webhookot vagy más folyamatműveletet csak a megfelelő rekord- vagy állapotváltozás elfogadása után indítson, hogy a további feldolgozás hibája ne törölje az eredeti beküldést.
  4. Tesztelje az újrapróbálkozásokat és átadásokat — Külön hibafolyamatként ellenőrizze a vázlat folytatását, a végleges beküldést, az ellenőrzési döntéseket, a megbeszélési vagy értékelési módosításokat, a sikertelen értesítéseket és a külső webhookhibákat.

Mikor indokolt az eseményvezérelt Flow-backend különválasztása

Jó választás

Űrlapok, amelyek valójában üzleti folyamatok

  • A felhasználóknak munkamenetek között is el kell tudniuk menteni és folytatni egy hosszú űrlapot.
  • A beküldések az első űrlaplépés után ellenőrzési, jóváhagyási, megbeszélési, értékelési vagy állapotkezelési munkafolyamatba kerülnek.
  • A nyilvános frontend lehet statikus, miközben az állapotnak és a további műveleteknek aktívnak és önállóan üzemeltethetőnek kell maradniuk.

Maradjon egyszerűbb

Hagyományos űrlapmegoldás is elegendő lehet, ha

  • az űrlap rövid, és a folyamat egyetlen beküldéssel és egyszerű értesítéssel véget ér.
  • a webhely teljesen dinamikus, és egy meglévő űrlapbővítmény már működési nehézség nélkül lefedi a munkafolyamatot.
  • nincs szükség tartós vázlatokra, backendbeli ellenőrzési állapotra, eseményelőzményekre vagy külső munkafolyamat-műveletekre.

Problémaútmutatók

Az architektúra által támogatott vásárlói problémák

Hogyan válthatók fel az e-mailes és táblázatos jóváhagyások WordPress-munkafolyamattal?

Kezdje az E-mailes és táblázatos jóváhagyások felváltása WordPress-munkafolyamattal útmutatóval. Ez az üzemeltetési problémát mutatja be; az architektúra azt magyarázza el, hol élnek a rekordok, az ellenőrzési állapot és a munkafolyamat-műveletek.

Hogyan menthetnek el a felhasználók egy hosszú WordPress-űrlapot későbbi folytatáshoz?

Tekintse meg a Hosszú WordPress-űrlap mentése és későbbi folytatása útmutatót. A tartós vázlatállapot helye a böngészős futtatókörnyezet mögött van, nem egyetlen PHP-oldalkérésben.

Hogyan egyesíthetők az űrlapok, megbeszélések és értékelések egy ellenőrzési munkafolyamatban?

Az ellenőrzési esetre tekintse meg a WordPress-ellenőrzési munkafolyamat űrlapokkal, megbeszéléssel és értékelésekkel útmutatót, statikus közzététel után is aktív együttműködéshez pedig a Beszélgetések, válaszok és értékelések statikus WordPress-felületen oldalt.

Működik ez statikusan közzétett WordPress esetén is?

Igen. Az oldal statikus tárhelyről szolgálható ki, miközben a Flow a böngészőből hívja a konfigurált backendet. A WordPress statikussá tétele dinamikus funkciók elvesztése nélkül bemutatja a tágabb statikus oldal és dinamikus futtatókörnyezet modellt.

Induljon ki a munkafolyamat problémájából

A további automatizálás előtt vigye ki a folyamatot a beérkező levelek közül

Először válassza ki a vásárlói problémát – jóváhagyás, mentés és folytatás vagy strukturált ellenőrzés –, majd ezzel az architektúrával határozza meg az állapotmegőrzési, jogosultsági és eseményhatárokat.