ฟังก์ชั่น Serverless สำหรับการอัปเดตดัชนี Algolia หนึ่งดัชนีจากจุดสิ้นสุด JSON โดยใช้ฟังก์ชั่น WebTask แบบง่าย
คุณต้องติดตั้ง Node & NPM ก่อน
เมื่อติดตั้งแล้วรัน:
npm install serverless -g && npm install
ก่อนที่คุณจะสามารถใช้ฟังก์ชั่นนี้คุณต้องอนุญาตกับผู้ให้บริการ (WebTask โดย Auth0) มันง่ายมากเพียงแค่วิ่ง:
serverless config credentials --provider webtasks
คุณจะถูกขอหมายเลขโทรศัพท์หรืออีเมล คุณจะได้รับรหัสการยืนยันทันที ป้อนรหัสการยืนยันและโปรไฟล์ของคุณจะถูกตั้งค่าทั้งหมดและพร้อมใช้งาน
ฟังก์ชั่นนี้ต้องการการกำหนดค่าต่อไปนี้:
secrets.yml
พร้อมรหัสแอปพลิเคชัน Algolia และรหัสการเข้าถึงลับของคุณindexes.js
พร้อมรายการดัชนีของคุณและจุดสิ้นสุด JSON ของพวกเขา ในการสร้างไฟล์ secrets.yml
ของคุณ Run:
cp ./config/secrets.yml.stub ./config/secrets.yml
จากนั้นเปิด config/secrets.yml
และให้ค่าสำหรับ ALGOLIA_APP_ID
และ ALGOLIA_ADMIN_KEY
จากบัญชี Algolia ของคุณ
ถัดไปเปิด config/indexes.js
และอัปเดตดัชนีตัวอย่างด้วยข้อมูลดัชนี Algolia จริงของคุณ เช่น
[
{
name: "dist",
url: "https://example.com/index.json"
}
]
ในการปรับใช้ฟังก์ชั่นนี้ในโหมดการพัฒนาให้เรียกใช้:
serverless deploy
ในการปรับใช้ฟังก์ชั่นนี้ด้วยความลับในการผลิต Run:
serverless deploy --stage prod --ALGOLIA_APP_ID=YOUR_APP_ID --ALGOLIA_ADMIN_KEY=YOUR_ADMIN_KEY
โดยค่าเริ่มต้นฟังก์ชั่นนี้จะทำงานทุกชั่วโมง คุณสามารถอัปเดตสิ่งนี้ได้ตามที่ต้องการโดยการเปิด serverless.yml
และการเปลี่ยน functions.main.events.schedule
main.events.schedule
เมื่อปรับใช้ฟังก์ชั่น Serverless จะให้จุดสิ้นสุดของ WebTask ที่คุณสามารถใช้เพื่อทริกเกอร์การอัปเดตดัชนี
ตรงไปที่พื้นที่เก็บข้อมูล GitHub ของคุณเปิด การตั้งค่า แล้วเลือก webhooks จากแถบด้านข้าง
ตอนนี้ทุกครั้งที่มีการเปลี่ยนแปลงการเปลี่ยนแปลงไปยังที่เก็บข้อมูลของคุณฟังก์ชั่นนี้จะถูกกระตุ้นให้ปรับใช้ดัชนี Algolia ของคุณ
หมายเหตุ: ขึ้นอยู่กับระยะเวลาที่ไซต์ของคุณใช้ในการปรับใช้สิ่งนี้อาจทำให้ดัชนีได้รับการปรับปรุงก่อนกำหนด ในการแก้ไขปัญหานี้คุณสามารถตั้งค่าตัวแปร debounce เป็น
secrets.yml
เพื่อให้ฟังก์ชั่นรอ x จำนวนวินาทีก่อนที่จะทำงาน