Aws-lambda-dotnet: Amazon.Lambda.AspNetCoreServer с балансировщиком нагрузки приложений

Созданный на 2 дек. 2018  ·  20Комментарии  ·  Источник: aws/aws-lambda-dotnet

Работает ли Amazon.Lambda.AspNetCoreServer с интеграцией Application Load Balancer, о которой только что было объявлено во время reInvent? Я замечаю какое-то странное поведение, когда пытаюсь это сделать, не уверен, что я делаю что-то не так или это известная проблема.

feature-request

Самый полезный комментарий

Я работаю над поддержкой ALB в ветке поддержки alb . Следующий шаг в этой ветке — работа над Amazon.Lambda.AspNetCoreServer

Все 20 Комментарий

Я просто смотрел на новую интеграцию ALB. Запрос JSON, отправляемый в функцию Lambda, отличается от шлюза API. Не должно быть слишком сложно обнаружить в APIGatewayProxyFunction формат JSON и выполнить другую логику синтаксического анализа на основе источника.

Это было бы прекрасно. Мы, вероятно, будем использовать ALB в качестве предпочтительного метода интеграции, поскольку мы уже активно используем ALB.

В настоящее время мы используем APIGatewayProxyFunction, но шлюз API позволяет завершить транзакцию только через 30 секунд. ELB был бы хорошим решением для наших больших данных, которые нуждаются в обработке. (до предела лямбда-функций 15мин)

Было бы замечательно, если бы мы могли просто использовать LambdaEntryPoint : Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction и не заботиться о том, APIGateway это или ELB.

Я работаю над поддержкой ALB в ветке поддержки alb . Следующий шаг в этой ветке — работа над Amazon.Lambda.AspNetCoreServer

Вау, это было быстро! =) Спасибо!
Не могу дождаться!

Это здорово, спасибо. Мы с нетерпением ждем возможности использовать это для нашего основного веб-приложения dotnet. Спасибо!

Согласен, не могу дождаться этой функции!

Обновление статуса Я отправил ветку alb-support-aspnetcore , которая содержит обновления для Amazon.Lambda.AspNetCoreServer .

Изменения привели к более серьезному рефакторингу, чем я планировал. Когда я изначально писал эту библиотеку, я определенно не ожидал, что для функций Lambda будет несколько HTTP-интерфейсов.

Если кто-то захочет клонировать репо и попробовать, пока я заканчиваю проверку, это было бы здорово. Вам просто нужно клонировать репо, зайти в Amazon.Lambda.ApplicationLoadBalancerEvents и Amazon.Lambda.AspNetCoreServer и сделать dotnet pack . Затем добавьте созданный пакет NuGet в локальный веб-канал.

Для большинства приложений единственное изменение, которое вы должны сделать в LambdaEntryPoint или как вы его назвали, это изменить базовый класс с APIGatewayProxyFunction на ApplicationLoadBalancerFunction .

Забавно то, что я повторно развернулся на имя LAMBDA, используя master, и я смог использовать ELB с LambdaEntryPoint : Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction до вашей ветки, и все заработало. (Просто нужно установить правила для триггера ELB, чтобы использовать путь «api/*»)

(Каким-то образом настройка триггера ELB для новой лямбда-функции работает без ваших ветвей, возможно, потому, что заголовки/ответы близки друг к другу.)

Если у меня будет время, я проверю вашу ветку позже сегодня.

Между шлюзом API и событием ALB существует значительное сходство, которое может позволить вам повезти. Если вы включили заголовки с несколькими значениями или получили двоичные данные из тела запроса, это приведет к сбою.

Филиал выглядит хорошо.

Это выглядит потрясающе! Мне не терпится увидеть, как эта функция работает в действии. Есть ли у нас какое-либо предполагаемое время прибытия, когда это можно будет объединить и упаковать?

Очень жду увидеть это в официальном пакете.
Я думаю, что это лучшее бессерверное предложение, которое у вас есть. Мы бы перенесли на него большинство наших API и даже веб-сайтов, если бы не два основных недостатка: Шлюз API и (лямбда) задержки холодного запуска. Это исправляет одну из них, а проверки работоспособности ALB должны помочь сохранить лямбда-выражения живыми :-)

@normj , просто любопытно, есть ли ETA, когда мы можем ожидать, что это будет доступно в Nuget?

Я с нетерпением жду, когда эта функция будет включена и в Nuget.

Я проверил это на своем уже существующем приложении, и, похоже, оно работает без проблем.

Сегодня была выпущена версия 3.0.0 Amazon.Lambda.AspNetCoreServer с поддержкой ALB. Ознакомьтесь с записью в блоге для получения дополнительной информации. https://aws.amazon.com/blogs/developer/updates-for-serverless-asp-net-core/

@normj Отличный пост и отличная работа! Спасибо за все, что вы делаете для интеграции .NET в экосистему AWS.

@ryanpagel Добро пожаловать 😄

Закрытие по мере выпуска функции.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги