- Google Cloud Storage en Cloud Run gebruiken voor CDN-implementatie - 2
- Dit is het tweede artikel over het opzetten van een CDN met behulp van Google Cloud Storage en Cloud Run. We behandelen hoe u afbeeldingen en tekstbestanden kunt optimaliseren voor verzending en hoe u resources kunt distribueren over 8 regio's wereldwijd
Dit is een door AI vertaalde tekst.
Google Cloud Storage en Cloud Run gebruiken voor beeldoptimalisatie en synchronisatie - 3
Samenvatting van de tekst door durumis AI
- We laten zien hoe je afbeeldingen die zijn geüpload naar Google Cloud Storage kunt optimaliseren en converteren naar verschillende formaten met behulp van Cloud Run.
- We gebruiken de gebeurtenissen voor het uploaden en verwijderen van bestanden in Cloud Storage om afbeeldingsbestanden te converteren naar AVIF en WebP, en tekstbestanden te comprimeren en te repliceren naar andere regio's, evenals het synchroniseren van verwijderacties.
- Op deze manier kunnen we de beeldoptimalisatie en bestandsynchronisatie in een CDN-omgeving efficiënt beheren. We kondigen ook de vervolgafhandeling aan met Google Cloud Load Balancer.
In mijn vorige artikel heb ik het gehad over het verzenden van afbeeldingen die zijn gesynchroniseerd met GCS met behulp van Cloud Run.
Laten we in het laatste artikel van de CDN-serie het hebben over de synchronisatie en optimalisatie van afbeeldingen in GCS.
Cloud Run werkt standaard via HTTP Hook, maar dit is niet de enige event trigger.
Cloud Run
Als je Cloud Run configureert, zie je een gedeelte genaamd 'Trigger'. Als je daar naar de lijst kijkt, zie je Pub/Sub, Cloud Storage, Filestore en Overige. Naast de standaard HTTP zijn de rest van de items de meest gebruikte producten, en de meeste andere denkbare events vallen onder 'Overige'. Laten we eens kijken naar het Cloud Storage-event dat we willen gebruiken. Je ziet dan event types zoals 'Bestandswijziging', 'Bestand verwijderd', 'Bestand aangemaakt' en 'Bestandsmetadata gewijzigd'.
Cloud Run Eventarc
Als we Cloud Run met de twee events 'deleted' en 'finalized' maken, maken we een event aan voor wanneer een bestand naar GCS wordt geüpload of wanneer een geüpload bestand wordt verwijderd.
In Cloud Run moeten we grofweg de volgende dingen doen:
- Wanneer een bestand wordt geüpload, controleren we het bestandstype en voeren we de volgende processen uit.
- Als het een tekstbestand is (css, js), comprimeren we het met br en gzip en maken we een nieuw bestand aan.
- Als het een afbeeldingsbestand is, gebruiken we sharp npm om de bestandsindeling om te zetten naar avif en webp.
- Het nieuw gemaakte bestand wordt gerepliceerd naar verschillende andere 'regio's'.
- Als een bestand wordt verwijderd, wordt het corresponderende bestand in andere regio's ook verwijderd.
In principe is het synchroniseren van bestanden, zelfs als er meerdere regio's zijn, niet moeilijk zolang je deze drie dingen (converteren, kopiëren, verwijderen) goed afhandelt. In de code is het ook eenvoudig te implementeren, omdat je alleen maar verbinding hoeft te maken met GCS en sharp npm hoeft te gebruiken.
Dit was de laatste post in de serie over de basisprincipes van CDN.
Vanaf de volgende post ga ik het hebben over GCLB (Google Cloud Loadbalancer).
Hoewel het onderwerp CDN natuurlijk ook load balancers (LB) omvat, zijn er inhoudelijk een aantal dingen weggelaten. Ik zal ze in de volgende serie posts behandelen.
Bedankt.