Как запустить JavaScript на периферии с помощью функций AWS CloudFront — CloudSavvy IT

Многие приложения нуждаются в минимально возможной задержке, но все же хотят реализовать некоторую форму логики. Хотя сети доставки контента (CDN) традиционно являются статическими, все чаще запускается код на краю сети, ближайшем к пользователю.

СВЯЗАННЫЕ С: CDN может ускорить ваш сайт. Вот что вам нужно знать!

У AWS больше нет Lambda @ Edge?

Функция CloudFront не существует первого или единственного способа запустить собственный код на границе CDN. AWS имеет Лямбда @ Edge на некоторое время, позволяя запускать любую лямбда-функцию на границе CDN, хотя втрое дороже.

Эта цена не позволяет многим простым функциям преобразования быть очень жизнеспособными для периферийных операций. Во многих случаях вам не нужно делать больше, чем просто манипулировать строками или базовым запросом / ответом. Вместо этого это можно сделать, используя краткосрочные базовые функции.

Следовательно, необходимы функции CloudFront. Они могут запускать только облегченный код JavaScript, но работать на всех пограничных узлах CloudFront CDN за 1/6 стоимости Lambda @ Edge. Фактически, это даже дешевле, чем сама Лямбда.

Поскольку это всего лишь легкий JS, его использование намного уже. Но есть еще несколько операций, для которых он хорош, например:

  • Управление заголовком
  • Перенаправляет или перезаписывает URL
  • Запросить авторизацию
  • Нормализация ключа кеша

У вас есть два варианта запуска функций CloudFront: до или после того, как CloudFront получит ответ от CDN. Если вы редактируете URL-адреса или проверяете токены аутентификации, вы можете выполнить запуск раньше. Если вы в настоящее время редактируете исходящие заголовки, это может не иметь значения.

Одна вещь, которую он не может сделать, — это манипулировать контентом с исходного сервера до его кеширования, то есть при ответе Origin; вы можете запускать функции только по запросу браузера или по ответу браузера. Для всего остального вам нужно будет использовать Lambda @ Edge.

Функции должны работать с максимальным временем выполнения менее 1 миллисекунды. Эта производительность гарантирует, что он будет хорошим, несмотря на миллионы требований. Функции CloudFront используют новую модель процесса изоляции с ограниченным доступом к файловой системе и сети, что должно быть лучше по сравнению с традиционным решением Lambda для виртуальных машин.

В обмен на 1/6 цены вы получаете общий размер пакета 10 КБ и 2 МБ памяти. Использовать его с умом.

Использование функций CloudFront

Конечно, для начала вам потребуется использовать CloudFront CDN. Если вы этого не сделаете и хотите начать с него, вы можете прочитать наше руководство по установке.

СВЯЗАННЫЕ С: Начнем с AWS CloudFront CDN

ИЗ CloudFront Console, нажмите «Возможности» на боковой панели, чтобы создать новую функцию:

Назовите его, и тогда вы попадете на экран, где вы сможете создать, протестировать, опубликовать и развернуть эту функцию.

Конечно, код, который вы пишете, будет сильно различаться в зависимости от ваших целей. В этом руководстве я просто создам совершенно бесполезную функцию, которая изменяет каждый код состояния на 404 и закрывает сайт, потому что это легко проверить.

После написания кода обязательно нажмите «Сохранить», прежде чем переходить к следующему этапу тестирования. Вы получите несколько примеров тестовых событий, основанных на различных типах событий, для которых вы можете выбрать URL-адрес и заголовок запросов, отправляемых клиентом.

Получает ответ от CDN, как если бы он находился в рабочей среде. Это должно упростить тестирование любой функции перед запуском с ней.

Затем на следующей странице нажмите «опубликовать», чтобы сохранить изменения в производственной версии функции. Однако это не относится к CDN автоматически; вам нужно будет связать его с раздачей CloudFront или с несколькими дистрибутивами.

Конечно, вы захотите проверить правильность работы производственной версии. Зайдите в свой CDN, и вы увидите, как эта функция используется. В этом случае эта функция выполняет свою работу, так что мой образец сайта полностью непригоден для использования.

Если это не сработает, возможно, вы захотите добавить его. console.log() выписки, которые будут отправлены непосредственно в AWS CloudWatch. Это единственная доступная форма ведения журнала, помимо основных показателей, потому что функции очень легкие. Для получения дополнительной информации вы можете прочтите руководство AWS по подписке на CloudFront Functions.

[

]

Add a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *