#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/…