単純なWeBtask関数を使用して、JSONエンドポイントから1つ以上のアルゴリアインデックスを更新するためのサーバーレス関数。
最初にノードとNPMをインストールする必要があります。
インストールしたら、実行します。
npm install serverless -g && npm install
この関数を使用する前に、プロバイダー(webtask by auth0)で承認する必要があります。これは非常に簡単です、ただ実行するだけです:
serverless config credentials --provider webtasks
電話番号または電子メールが求められます。すぐに確認コードを受け取ります。検証コードを入力すると、プロファイルが完全にセットアップされ、使用可能になります。
この関数は、構成する必要があります。
secrets.yml
ファイル。indexes.js
ファイル。 secrets.yml
ファイルを作成するには、実行してください。
cp ./config/secrets.yml.stub ./config/secrets.yml
次に、 config/secrets.yml
を開き、algoliaアカウントからALGOLIA_APP_ID
とALGOLIA_ADMIN_KEY
の値を提供します。
次に、 config/indexes.js
を開き、実際のAlgoliaインデックス情報を使用してインデックスの例を更新します。例えば、
[
{
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
デフォルトでは、この関数は1時間ごとに実行されます。 serverless.yml
開き、 functions.main.events.schedule
変更することで、これを更新できます。
関数を展開するとき、ServerLessは、インデックスアップデートをトリガーするために使用できるWeBtaskエンドポイントを提供します。
GitHubリポジトリに移動し、設定を開き、サイドバーからWebhooksを選択します。
これで、変更がリポジトリにプッシュされるたびに、この関数はアルゴリアインデックスを展開するようにトリガーされます。
注:サイトの展開にかかる時間に応じて、これによりインデックスが時期尚早に更新される可能性があります。これを修正するために、debounce変数を
secrets.yml
で設定して、実行前にx秒数x xを待機させることができます。