#python #html #css #amazon-web-services #amazon-s3
#python #HTML #css #amazon-веб-сервисы #amazon-s3
Вопрос:
У меня есть пример кода с использованием AWS lambda function (python) для отображения HTML-страницы в браузере, подключения к API Gateway.
Я хочу использовать файл css из корзины S3 в этой лямбда-функции в качестве примера кода.
Когда я пытаюсь вот так, но это не удается. Как я могу использовать?
Комментарии:
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.