Как получить доступ к файлу css / js из S3 в функции AWS lambda

#python #html #css #amazon-web-services #amazon-s3

#python #HTML #css #amazon-веб-сервисы #amazon-s3

Вопрос:

У меня есть пример кода с использованием AWS lambda function (python) для отображения HTML-страницы в браузере, подключения к API Gateway.

Я хочу использовать файл css из корзины S3 в этой лямбда-функции в качестве примера кода.

Когда я пытаюсь вот так, но это не удается. Как я могу использовать?

sample_cod

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

1. доступ к этому файлу css / js будет осуществляться из браузера, а не с помощью лямбда-функции. просто сделайте это общедоступным.

2. Я не могу хорошо понять # BugHunter, как я могу это сделать?

3. когда вы открываете вставленную вами ссылку href в браузере, вы видите свой css-код или получаете сообщение об ошибке «отказано в доступе»?

4. Нет, я не вижу css-кода и не показываю ошибку «Не удалось загрузить ресурс: сервер ответил со статусом 403 (запрещено)». Ошибка.

Ответ №1:

Вам нужно сделать / test-bucket / test.css общедоступным.

Поймите, что Lambda даже не обращается к этому файлу во время выполнения, а только ссылается на него внутри объекта String, поэтому ни Lambda, ни API Gateway вообще не знают о существовании файла .css.

Когда ваша функция выполняется через API Gateway, ваш Lambda будет возвращать строку, содержащую ваш HTML-код внутри нее. Затем браузер попытается отобразить этот HTML-код, что означает, что сам браузер пытается загрузить файл, который является закрытым внутри одного из ваших сегментов. Это точно то же самое, что и создание нового index.html файл на вашем компьютере и попробуйте загрузить этот test.css. Это просто не сработает из-за отсутствия разрешений.

Перейдите в test-bucket / test.css и сделайте объект общедоступным, чтобы браузер мог его успешно загрузить.

Если вы не знаете, как сделать объект общедоступным, я предлагаю вам ознакомиться с этой статьей о Центре знаний AWS.