развертывание многоязычного сайта gatsby за cloudfront и s3

#amazon-s3 #gatsby #amazon-cloudfront #multilingual

Вопрос:

Я разработал многоязычный сайт в Гэтсби с помощью gatsby-плагина-react-i18next для i18n.

Я развернул его в s3 и поставил перед ним дистрибутив cloudfront.

Мы настроили s3 как статический хостинг веб-сайтов и сделали все файлы общедоступными.

Мы можем достичь http://our-site.s3-website.eu-central-1.amazonaws.com/en/ и все работает нормально (мы можем переключаться между языками)

Проблема на стороне облачного фронта, я имею в виду, если попытаться получить https://my-distribution.cloudfront.net/en/ Мне отказано в доступе

 <Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>P79H5EABEWW5KH1T</RequestId>
<HostId>OJ1GdIe3iLlj fEJO4EwTNlhAAXjRV7M3bwKUDr4UXjXKWor8Rr K9m9cR7mALxNuuDDPN3uHsA=</HostId>
</Error>
 

Конечно, источником распространения является s3.
Я что-то упускаю…

Комментарии:

1. Решение, которое я нашел, состоит в том, чтобы использовать Lambda@Edge для обслуживания правильной локали. dev.to/danielbayerlein/…

2. Функции CloudFront были запущены после написания этой статьи. Если вы предпочитаете, вы также можете выполнить то же самое с функциями CloudFront в консоли CloudFront. Вот пример реализации: github.com/aws-samples/amazon-cloudfront-functions/tree/main/…