Een ontwikkelaar host een statische website in een S3-bucket die wordt aangeboden via CloudFront met behulp van origin access control (OAC), zodat de bucket niet openbaar is. Gebruikers hebben toegang tot expliciete bestand-URL's (bijvoorbeeld /products/index.html), maar ontvangen een foutmelding bij het opvragen van directory-URL's (bijvoorbeeld /products/). Hoe kunnen directory-aanvragen worden afgehandeld, zodat ze het standaard indexbestand retourneren, zonder de S3-bucket openbaar te maken?
Kies een antwoord
Tik op een optie om je antwoord te controleren.
Correct antwoord: Maak een CloudFront viewer-request functie die directory-achtige aanvragen detecteert en index.html toevoegt aan de aanvraag-URL, en koppel deze aan het distributiegedrag..
Waarom dit het antwoord is
De juiste oplossing is het maken van een CloudFront viewer-request functie. Deze functie kan de aanvraag-URL inspecteren en, als het een directory-aanvraag is (bijvoorbeeld eindigend op '/'), automatisch 'index.html' toevoegen aan het pad voordat de aanvraag naar de origin wordt gestuurd. Dit zorgt ervoor dat de S3-bucket niet openbaar hoeft te zijn en dat de OAC-configuratie intact blijft, terwijl de gewenste functionaliteit wordt geboden. Het wijzigen van het standaard root-object van de CloudFront-distributie werkt alleen voor de root van de distributie, niet voor submappen. S3 static website hosting inschakelen zou de bucket openbaar maken via het website-eindpunt, wat in strijd is met de vereiste om de bucket niet openbaar te maken en OAC te gebruiken. Een custom error response voor 404 lost het probleem niet op, omdat de initiële aanvraag voor de directory nog steeds geen specifiek bestand aanvraagt en dus niet direct een 404 genereert die op deze manier kan worden opgevangen.
Slaag voor je examen — zonder eindeloos zoeken naar antwoorden
Krijg elke geverifieerde vraag en uitleg voor dit examen op één plek, en bespaar uren voorbereiding. Meer dan 1.000 certificeringen · Meer dan 20 talen · gratis om te beginnen.
Slaag sneller voor je examen → Geen kaart nodig