Лямбда-функция пользовательский домен - PullRequest
0 голосов
/ 25 августа 2018

Я сегодня возился с лямбдой AWS, пробуя кое-что попробовать. В настоящее время я пытаюсь вызвать функцию из URL-адреса в браузере.

URL выглядит примерно так: https://abcdef.execute -api.eu-west-2.amazonaws.com / default / test

Насколько я понимаю, я могу назначить пользовательский домен для моей конечной точки, но могу ли я также избавиться от части пути в URL, например:

GET: https://example.com/

GET: https://example.com/somefile.txt

POST: https://example.com/ ['some_post_field' => 'some data']

Все ли будет передано моей функции, или мне нужно настроить экземпляр EC2 с NGINX, чтобы прокси-сервер передавал запросы в lambda?

Любые мысли были бы полезны.

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Вместо того, чтобы напрямую показывать функцию Lambda через URL, выставьте ее через AWS API Gateway, где вы можете определить свои собственные пути и отобразить в домен.

0 голосов
/ 25 августа 2018

В AWS теперь есть несколько разных способов сделать это:

  1. Самое новое ( возможно самое крутое! ) - это использование Cloudfront для запуска вашего кода с использованием их Лямбда @ Край сервис.Вы можете полностью настроить свой URL-путь и использовать его в качестве переменных, как и любую другую конечную точку REST.Вы присоединяете свой Lambda FN к конечным точкам «поведения», которые дают вам полный контроль над URL.Это довольно глубоко и выходит за рамки вашего вопроса, чтобы объяснить все это здесь, но прочитайте документы по предоставленной ссылке, и вы, вероятно, увидите много вещей, которые вам нравятся.
  2. Еще один старый, более дорогой, но болеедокументированный метод - использовать AWS API Gateway , как вы указали в тегах вашего вопроса.Он имеет отличную внешнюю консоль и легко подключает конечные точки API к логике Lambda, подключая их к методам REST.Консоль поможет вам «изменить размер» вашего URL с данными поля формы.Этот сервис помогает вам больше всего с пользовательскими доменами для запуска.Настройка пользовательских доменов очень проста в API Gateway.Обязательно используйте AWS Диспетчер сертификатов SSL для бесплатных сертификатов SSL и в своем пользовательском домене!

Способ настройки конечных точек зависит от того, какую службу вы выберете.Лично, учитывая ваше желание обслуживать различные типы контента, я бы склонялся к CloudFront и определил URL-адрес «поведения» для вашего динамического лямбда-контента.Если запрос URL-адреса не соответствует одному из определенных вами вариантов поведения, по умолчанию используется кэш / источник Cloudfront для обслуживания ваших статических активов (somefile.txt).Только совпадения отправляются на ваш привязанный лямбда-фн с данными формы. Очень гладко!

Множество примеров Lambda @ Edge fn's доступны здесь .

Я использовал оба и у меня есть клиенты на обоих.Lambda @ Edge смехотворно быстрее и дешевле, НО менее документирован, имеет более крутой курс обучения и консоль не так полезна.Я бы честно попробовал и то, и другое, чтобы понять, какая из них лучше всего подходит для вашей ситуации и уровня опыта.Оба выполнят свою работу.EC2 наиболее определенно НЕ необходим (, и, возможно, ).Надеюсь, это поможет - удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...