Мне интересно, можно ли развернуть wordpress в виде серии лямбда-функций на шлюзе AWS API. Любые указатели на технико-экономическое обоснование/gotchas были бы высоко оценены!Развертывание wordpress как функции AWS лямбда?
Спасибо заранее,
РПК
Мне интересно, можно ли развернуть wordpress в виде серии лямбда-функций на шлюзе AWS API. Любые указатели на технико-экономическое обоснование/gotchas были бы высоко оценены!Развертывание wordpress как функции AWS лямбда?
Спасибо заранее,
РПК
Вы будете иметь много вещей, чтобы рассмотреть с сохранением и даже до того, что лямбда не поддерживает PHP. Вероятно, я бы посмотрел на функции Microsoft Azure, которые поддерживают PHP и имеют постоянное хранилище.
В то время как другие языки (такие как Go, Rust, Swift и т. Д.) Могут быть «завернуты» для работы в AWS Lambda с относительной легкостью, компиляция PHP с таргетингом на ту же платформу и запуск его немного отличается (и, конечно, более кропотливым). Подумайте обо всех различных PHP-модулях, которые вам понадобятся для начинающих. Более того, я не могу представить, что производительность будет такой же хорошей, как нечто вроде двоичного кода Go.
Если вы можете сделать что-то умное с помощью платформы Phalcon и придумать простой процесс сборки и развертывания, то maayyyybee.
Хотя вам, вероятно, понадобится действительно переделать что-то вроде WordPress, который не был разработан для этого вообще. Он по-прежнему использует некоторые довольно старые соглашения из-за возраста проекта, и, хотя это хорошо и хорошо для вашего типичного PHP-сервера, это другая игра с мячом в смысле этой «переносной» установки PHP.
Имейте в виду, что на PHP-сессии также полагаются, и поэтому вам придется перемещать их в другом месте из-за отсутствия настойчивости с AWS Lambda. Возможно, вы можете найти какой-то плагин для WordPress, который работает с Redis? Я должен представить, что что-то подобное уже построено ... Но будет много осложнений.
Я бы серьезно подумал об использовании функций Azure для начала или с использованием Docker и отказа от модели ценообразования, предлагаемой облачными функциями. Вы все еще можете найти довольно дешевый и масштабируемый хостинг.
Что я делал ранее, было использование AWS ECS (Docker) с EFS (сетевое хранилище) для сохранения и RDS для базы данных. Хотя это не соответствует той же модели ценообразования, что и Lambda, она по-прежнему экономически эффективна. Вы можете настроить службу ECS для автоматического увеличения вверх и вниз. Таким образом, вы используете минимальный минимум, пока вам не понадобится больше.
Я написал более подробную статью об этом здесь: https://serifandsemaphore.io/how-to-host-wordpress-like-a-boss-b5993fcfbd8e#.n6fbnf8ii ... но в основном это идея запуска WordPress в Docker и использование EFS для выгрузки постоянных проблем с хранилищем. Вы можете поменять многие части головоломки, если хотите. Используйте базу данных, размещенную в какой-либо другой службе Docker, или Compose или где-либо еще. Эта часть не обязательно должна быть RDS. Даже ваше хранилище можно обрабатывать по-другому, хотя EFS работает очень хорошо! Единственное, что следует отметить в EFS, это скорость записи. Однако большинство сайтов WordPress читаются тяжело. Ваш пробег будет зависеть от ваших потребностей.
Честно говоря, ваши самые большие затраты на WordPress, скорее всего, будут вашей базой данных, которую вы в любом случае не решаете с AWS Lambda. – Tom
Duh! Спасибо, Марк Б. – PKK
Нет ли теперь API NodeJS для WP? И услуги RDBS в тандеме? Это определенно можно сделать, но это огромные усилия. – ilrein
@PKK. Один из способов сделать это - использовать «WordPress XML-RPC API». Имеется хороший пакет узлов, который вы можете использовать [scottgonzalez/node-wordpress] (https://github.com/scottgonzalez/node-wordpress) пример : 'var wordpress = require (" wordpress "); var client = wordpress.createClient ({ url: "my-site.com", имя пользователя: "admin", пароль: "secret" }); клиентов.getPosts (функция (ошибка, сообщения) { response.setHeader («Content-Type», «text/json»); response.setHeader («Access-Control-Allow-Origin», «*»); ответ. end (posts.length); }); ' – eMM