Без сервера функция для обновления одного или нескольких индексов алголии из конечных точек JSON с использованием простой функции WebTask.
Сначала вы должны установить Node & NPM.
После установки запустите:
npm install serverless -g && npm install
Прежде чем вы сможете использовать эту функцию, вам необходимо разрешить провайдеру (WebTask By Auth0). Это очень просто, просто беги:
serverless config credentials --provider webtasks
Вас будет попросить номер телефона или электронную почту. Вы немедленно получите код проверки. Введите код проверки, и ваш профиль будет полностью настроен и готов к использованию.
Эта функция нуждается в настройке следующего:
secrets.yml
с вашим идентификатором приложения Algolia и ключом секретного доступа.indexes.js
со списком ваших индексов и их конечных точек JSON. Чтобы создать свой файл secrets.yml
, запустите:
cp ./config/secrets.yml.stub ./config/secrets.yml
Затем откройте config/secrets.yml
и предоставьте значения для ALGOLIA_APP_ID
и ALGOLIA_ADMIN_KEY
из вашей учетной записи Algolia.
Затем откройте config/indexes.js
и обновите пример индекса с помощью вашей реальной информации об индексе алголии. Например,
[
{
name: "dist",
url: "https://example.com/index.json"
}
]
Чтобы развернуть эту функцию в режиме разработки, запустите:
serverless deploy
Чтобы развернуть эту функцию с помощью производственных секретов, запустите:
serverless deploy --stage prod --ALGOLIA_APP_ID=YOUR_APP_ID --ALGOLIA_ADMIN_KEY=YOUR_ADMIN_KEY
По умолчанию эта функция будет работать каждый час. Вы можете обновить это по желанию, открыв serverless.yml
и изменяя functions.main.events.schedule
.
При развертывании функции Serverless предоставляет вам конечную точку WebTask, которую вы можете использовать для запуска обновления индекса.
Отправляйтесь в репозиторий GitHub, откройте настройки , а затем выберите Webhooks с боковой панели.
Теперь каждый раз, когда в вашем репозитории выдвигается изменение, эта функция будет вызвана для развертывания вашего индекса алголии.
Примечание. В зависимости от того, сколько времени требуется для развертывания ваш сайт, это может привести к преждевременному обновлению индекса. Чтобы исправить это, вы можете установить переменную Debounce в
secrets.yml
, чтобы функция подождала x номер секунды перед запуском.