Я фронтендер, реакт. И тут мне неделю назад сказали, переводим тебя на другой проект, чуток сложнее...слово "чуток" меня напрягло... А потом говорят, там проект на aws lambda, serverless, dynamoBD, бекенд на ноде, ещё китайский Ант дизайн извращенский, все приправлено тайпскриптом. Думаю вы осознаёте мое ауение...
Response открывается как JSON потому, что Response приходит с HTTP Header: "Content-Type: application/json" - можно открыть в Brouser консоль и посмотреть Headers in Response. Правильно было бы Content-Type: text/html. Можно это менять либо в самой функции либо в API Gateway Method Response. А вместо curl можешь взять Postman или Insomnia. Крутые клиенты, помогают тестить APIs Спасибо за видео!
Денис, спасибо за урок, оч круто объясняешь, слушаю с удовольствием! Микрозаметка от себя: курл при открытии url моего гейтвэя ругался на "проверку отзыва для сертификата" - помогла подстановка в конце параметра --ssl-no-revoke
На 7 минуте и 30 секунде вывод демонстрируется в виде неотренедернного HTML, потому что LAMBDA возвращает ответ в формате JSON. Задача программиста получить эти данные себе в страницу и обработать их например с помощью JS, затем выдать их на экран. В этом то и прелесть S3 статических веб сайтов. Динамической обработки кода аля PHP/ASP нет, но ее перенимает на себя LAMBDA, а вывод на экран отрабатывает клиентский JavaScript.
@@ADV-IT а можно вывод вообще не делать и возвращать на сайт, с которого пришли? Например, у меня кнопка, которая по нажатию переходит на URL, который стопает бакет. Мне не нужно оставаться на этой странице с выводом, мне вообще не хотелось бы его видеть, просто нажал кнопку-она отправила запрос на ссылку, а сама страница осталась той же
Нужно было тело return обернуть в html тэги (html, head, body...) И тогда бы браузер открыл красивый html, а так, браузер не может понять что это за документ. А так, все круто, спасибо за труды!
Блин они там UI поменяли, сразу авторедирект срабатывает, вобщем если хотите что бы как на уроке было то нужна ссылка console.aws.amazon.com/apigateway/home?region=us-west-1#/welcome + терь есть выбор работать через Rest у которого в питоне например некислые такие траблы с декодеровкой русского текста или веб сокетом ( про него вообще хз даже что сказать).
curl крут, в оcноном его использую.. Но, для такого рода (мелких реквестов) хорошо postman подойдет. Что по post|put|patch что по get можно передавать параметры, только в первом случае это передается как тело, а во втором зашито в url (который имеет ограниченную дину, ну и да, сложнее передать хедер, если не использовать curl || postman )))
конец февраля 2022, Server Migration Service я полагаю теперь особенно актуален update. походу он не поддерживается уже, теперь Application Migration Service
Спасибо за уроки. Всегда очень качественные,доступные и понятные. Вопрос, если возможность при использовании Lambda в Cloudformations, что бы функция Lambda возвращала полученное значение куда либо, чтоб это значение можно было использовать в Cloudformations?. Полученное значение типа: строка, например значение которое содержит ип адрес или ИнстансИД. Что бы можно было использовать в Cloudformations как Sub!, то есть вставлять в ресурсы значение полученное из Lambda методом !Sub или методом !Ref, либо как то иначе.
Спасибо за урок, всё очень хорошо объясняешь! Вопрос: когда используеться ec2 сервер или elastic beantalk, то можно сделать конфигурацию на случай если один из серверов упал, то запрос будет послан на другой. Как быть в случае ламба сервиса? Поддерживает ли такую функицональность амазон автоматически (тоесть если запрос не сработает на каком-то сервере, который амазон выделяет для этого, то он автоматически будет отослан в другой сервер и так пока процедура не будет выполнена успешно). Если нет, то хотелось бы узнать как настроить такой функционал. И еще, можно ли использовать в продакшене такой сервис или же это больше для тестов? Спасибо! Очень жду урок по DynamoDB и GameLift service!
Денис, есть вопрос. Сторонний сервис, на мой url отправляет POST запрос, с телом в формате json. Возможно ли с помощью API Gateway или Lambda, получить этот POST запрос и обработать? То есть с помощью API Gateway получаем url, и на этот url принять POST запрос от стороннего сервиса. А с помощью Lambda распарсить его, для дальнейшей обработки. Или как то по другому решить эту задачу. Если возможно такое, то подскажи пожалуйста алгоритм действий, как получить и обработать POST запрос? Или всё таки нужно поднимать EC2, и на нём запускать скрипт HTTP сервера, и на этот сервер уже принимать POST запрос ? Просто приходящие POST уведомления не частые, и держать EC2 с HTTP сервером не комильфо. Как раз удобно было бы использовать API Gateway + Lambda, но не могу понять, может ли эта связка работать как серверная сторона и принимать POST запросы.
@@ADV-IT Спасибо за ответ, вроде понял схему сторон ApiGW. Ссылка это клиент, aws это сервер. Затупил не много )) В 79 уроке вы показали как передать параметры GET запроса в Lambda. А через что в Lambda получить содержимое, хедера и тела POST запроса? Через параметр функции context ? Или как? Подскажи куда копать? p.s. В этом уроке вы говорите что не разбирались, что такое Proxy в Lambda. Читая справку, я как раз об этом узнал. Дополню этот момент для понимания. Если выбираем чекбокс Proxy, тогда Lambda будет возвращать ответ, который будет прописан в самой Lambda. И в Method Execution, квадрат Integration Response будет недоступен для настройки, и отображаться серым цветом. А если не выбирать Proxy, тогда становиться доступен квадрат настройки Integration Response, и ответ от Lambda можно настроить средствами Integration Response.
@@ADV-IT То что с помощью Lambda можно полностью избавится от серверов, да, это понятно, в этом то и классная фишка :)) Как я понял IDE для Lambda поддерживает стандартный пакет библиотек Py. А подгружать или устанавливать свои Py библиотеки возможно? Как это делается? Ведь в коде зачастую используются библиотеки не входящие в стандартный пакет Py.
Денис, очень нравятся ваши уроки. Видела, что у вас есть еще курсы на udemy. Скажите, они отличаются от курсов на ютюбе? Имеет ли смысл их дополнительно проходить к этому курсу?
Спасибо за урок! Погуглил чтобы вывести в html в API Gateway надо было отредактировать Method Response раскрыв 200 в HTTP Status: добавить Response Header под названием Content-Type и удалить application/json . Затем отредактировать Integration Response: hfcrhsnm 200? в Header Mappings Response Header Content-Type в Mapping Value вписать 'text/html', удалить application/json в Content-Type под Mapping Templates и доавить Content-Type text/html (теперь без ковычек), в Mapping Template поле написать $input.path('$') и сохранить.
Денис, здравствуйте. Может вы ответите на мой вопрос, а то информации я как-то по этому поводу не нашел. У меня есть lambda созданная на Java. Можно ли в моем коде lambda включить поддержку CORS, чтобы была возможность посылать OPTIONS запрос? Что это можно сделать через API Gateway, я знаю, но хотелось бы знать, можно ли это реализовать в коде?
Здравствуйте, ADV-IT! Спасибо за ваши уроки, все отлично! Мне нужна подсказка... Суть: Есть веб-сайт. Пользователи веб-сайта загружают видео. После загрузки, видео обрабатывается утилитой ffmpeg. Все выполняются на одном и том же instance. К этому instance прилинкован только 1 volume. Как мне организовать, чтобы обработкой видео занимался другой instance? Подскажите, пожалуйста. Может у вас есть видеоурок, в котором вы подобное взаимодействие раскрываете?
не знаю, как вы реализуете это на фронтенд. но через tamper data, я могу перехватить ваш запрос и ключ вместе с ним. выглядит не очень секьюрно. какой смысл добавлять ключ, который не одноразовый? можно подключить short-lived ключи?
Подскажите пожалуйста, с помощью API Gateway я получаю URL, который со временем не меняется, то есть я могу его захардкодить у себя и обращаться к лямбде, не опасаясь что он изменится и станет невалидным? Спасибо.
Спасибо! Подскажите пожалуйста, наверное не я один задаюсь таким вопросом, а можно ли сделать этот урл более "человекочитаемым", потому что больно он уж некрасив. Есть какой-то вариант в бесплатном пакете AWS для этого, в Route53 может...
Конечно можно, можешь привязять свой домен www.vasya.ru например к этому страшному URL от API Gateway. Route53 самое простое как это сделать, создай просто RecordSet и сделай Record A Alias от твоего домена к твоему URL от API Gateway. На других DNS серверах это делается создавая CNAME record.
@@ADV-IT спасибо, так и сделал, но помимо доменного имени, www.vasya.ru, у меня есть еще stage, созданный в API Gateway -- "feed", и лямбда/ресурс "test", то есть полный путь такой "www.vasya.ru/feed/test". Есть способ сделать "www.vasya.ru/feed"? Спасибо большое заранее!
ВОПРОС : Сейчас при создании API, AWS предлагает выбор - Choose an API type: 1) HTTP API 2) WebSocket API 3) REST API 4) REST API(only accessible from within a VPC.) Объясните в кратце в чем разница и какой из вариантов используется в данном уроке, а то я чето никак не пойму по документации зачем какой нужен.
Привет! Возможно ли одновременно использовать API Key и Resource Policy с whitelist IP адресов! Доки дают эти два инструмента, но нету инфы, могут ли они работать одновременно и выполнять свои функции по ограничению: API Key работает а whitelist IP адресов не не обрабатывается, который в Rsource policy указан. Может подскажите, если вдруг сталкивались или есть какая-либо инфа?
Без "API key" whitelist в Resouce policy отрабатывает как и должен, а если еще применять и API key, то скорее всего реквесты с нужным ключем не фильтруються на уровне Resource Policy по white списку IP.
Допустим я написал код в ламбе, и теперь с ним работает моё приложение через РЭСТ отправляет запросы. Если вдруг я решил изменить код - значит ли это, что в тот момент когда я буду делать новому коду деплой существует вероятность окна в котором РЭСТ запросы с моего приложения не будут проходить? Если да то как это решить? Спасибо
Я всё никак не пойму. Если я работаю с классическим сервером, то я выбираю мощность его. И в зависимости от этого приложение работает шустрее или медленнее. А как с Serverless? Система сама определяет сколько мне нужно для максимально быстрого взаимодействия, и, если да, то это как на цене сказывается? Просто боюсь, что выйдет всё тупым и медленным) И второе. Миллион функций бесплатно. Это только сами вызовы функций бесплатно, а мощности задействованные как то тарифицируется?
Мне тут понадобился Cloud9, я создал среду, но у меня видятся мои lambda в ней, но не импортятся в среду, не могу понять почему. Если знаком с этим сервисом, подскажи пожалуйста
Подскажите, уловил ли я суть Lambda? По-большому счету, все тоже что может Lambda я могу сделать и с помощью Jenkins если на той же машине будет стоять нужный мне енв и aws cli?
Бред какой-то пишешь ! Чтобы сдать AWS Architect Associate сертификат, как раз и нужно этого парня послушать, для начала по крайней мере ! Мне его словарного запаса почему-то хватает с лихвой ! Нет лишней болтовни и все по делу. Болтунов про теорию и отсутствием практики и так полно.