Lambda functies
Overzicht van de verschillende Lambda functies die binnen AWS draaien voor Maglr.
Alle functies
- Pro editor redirect
- Stats redirect
Pro editor redirect (Pro-editor)
De Pro editor draait binnen het dashboard vanaf een aparte S3 bucket (de url dashboard.maglr.io/pro/issue_id/spread_id redirect dus eigenlijk onder water naar een S3).
Hierbij worden zowel de assets als de index.html vanaf de S3 gestart. Dit stuk loopt of start op productie of staging niet meer via PHP (in local development nog wel) Hiervoor zijn de volgende stappen ingesteld:
- Het domein dashboard.maglr.io en dashboard.stagingmag.nl zijn vanuit Cloudflare doorgestuurd naar AWS
- Dit domein komt eerst binnen op Cloudfront
- Hier is een rule ingesteld (op beide domeinen) dat op basis van /pro/* in de URL een redirect wordt uitgevoerd
- Deze redirect komt uit in een S3 bucket (system.maglr.com/pro-editor) of system.stagingmag.nl/pro-editor
- Binnen de redirect is er tevens een Lambda function gekoppeld. Deze Lambda function (ProEditor, let op us-east-1) pakt uit de gekoppelde S3 bucket de index.html op en returned deze in het resultaat.
Stats redirect call (Stats-prod-hit / event)
Vanuit de frontend worden pageviews (hits) en interactie kliks (events) doorgestuurd naar stats.maglr.com. Deze statistieken sturen we niet direct door naar Pirsch, maar laten we i.v.m. adblockers via een Proxy verlopen (stats.maglr.com).
Deze proxy loopt via een Lambda functie i.c.m. een API-Gateway.
stats.maglr.com/hit (get)
stats.maglr.com/event (post)
stats.maglr.com/dev/hit (get)
stats.maglr.com/dev/event (post)
API-Gateway Binnen de API-gateway zijn de bovenstaande routes aangemaakt waarbij (binnen deze module) ook het custom domein is gekoppeld.
Dit onderdeel loopt NIET via Cloudfront, daar komt stats.maglr.com niet voor.
In de API-gateway kan een custom domain worden aangemaakt.
Na het aanmaken wordt er eigenlijk onder water een cloudfront domein aangemaakt.
Via de instellingen binnen de API-Gateway zie je het API-Gateway domain staan dj7bvni9rz1j4.cloudfront.net.
Vanuit Cloudflare is hier een CNAME verwijzing voor stats.maglr.com naartoe gemaakt.
Lambda functie De ingestelde gateway routes komen vervolgen uit bij een Lambda functie. Voor de statistieken worden de doorgestuurde variabelen verzameld en als POST naar api.pirsch.io verzonden. Belangrijk hierbij is het Single Acces Token wat per client in Pirsch is aangemaakt. Deze dient als Authorize header meegestuurd te worden naar Pirsch.
- Stats-prod-hit
- Stats-prod-event
- Stats-dev-event
- Stats-dev-hit
Deploy
Bovenstaande functies kunnen via serverless worden ge-update. Hiervoor kan onderstaande actie worden uitgevoerd. Om dit te doen dient er eerst binnen AWS IAM onder de serverless user een access token aangemaakt te worden.
serverless deploy --stage dev voor een development build (stats.maglr.com/dev/hit||event||action)
serverless deploy --stage prod voor een production build (stats.maglr.com/hit||event||action)
Op mercury in eigen map eventueel 'npx' command voor serverless draaien