参考記事:Waline コメントシステム - デプロイログ | CC のブログ
2023.9.5 更新
以前、Tencent Cloud は CloudBase の有料モードを変更し、最低月額料金が 19.9 になりました。これは私のブログの維持コストの 20 倍近くに近づいているため、自分でサービスを Alibaba Cloud の Function Compute に移行し、現在は安定して稼働しています。
2021.8.10 更新
Waline のバージョンがタイムリーにアップグレードされなかったため、絵文字画像の HTML コードがエスケープされました。
したがって、package.json
の@waline/cloudbase
のバージョンを変更する必要があります。現在のバージョンは 1.0.25 です。
変更後、正常に使用できるようになります。
序文#
ブログを静的ページに移行した後、ネットワークの問題で Gitalk や Discuz をほとんど使用できない状況で、埋め込み可能なサードパーティのコメントシステムを探すことが私の考慮事項となりました。多くの使用と実験の結果、搜狐の畅言はブログにはあまり適していませんでした。Valine は以前に大量のスパムコメントで洗浄されたため、使用することができませんでした。そのため、最終的には Waline に絞り込みました。これはバックエンドを備えた Valine であり、使用できる機能の一連を持っているとのことです。
Waline の紹介については、この記事では省略します。公式ドキュメントを参照してください。公式ドキュメント。また、この記事では Velcel+Leancloud などのインストール方法には触れません。参考記事をご覧ください。この記事ではデプロイプロセスを簡単に説明し、それ以外の手順や機能の使用方法について説明します。
デプロイプロセス#
無料リソースを受け取る#
参考記事に従って、このページをスクロールすると、「0 元」という言葉が見えます。購入後、環境名を入力するだけです。
クラウド関数の設定#
購入した環境の詳細ページで、「クラウド関数 - 新しいクラウド関数」をクリックして必要なクラウド関数を作成します。実行環境、最大メモリなどは以下の画像のように設定します。
次のステップでは、関数コードの一部を以下のコードに変更します:
module.exports.main = async (event, context) => {
context.callbackWaitsForEmptyEventLoop = false;
const entry = (() => {
const result = require('./app.js');
// const app = require('express')();
// result = app.use(result);
return result;
})();
const serverless = require('serverless-http');
let app = entry;
// support for async load app
if (entry && entry.tcbGetApp && typeof entry.tcbGetApp === 'function') {
app = await entry.tcbGetApp();
}
return serverless(app, {
binary: [
'application/javascript',
'application/octet-stream',
'application/xml',
'font/eot',
'font/opentype',
'font/otf',
'image/*',
'video/*',
'audio/*',
'text/comma-separated-values',
'text/css',
'text/javascript',
'text/plain',
'text/text',
'text/xml',
],
})(event, context);
};
その後、このリポジトリのapp.js
、cloudbaserc.json
、package.json
の 3 つのファイルをそのままコピーして移動し、完了したら「保存して依存関係をインストール」をクリックします。
HTTP アクセス#
アプリケーションにアクセスするには、独自のドメインをバインドし、https を有効にすることをお勧めします。以下の画像のように設定します。
設定が完了すると、以下の画像のようになります。
ドメインの設定が完了したら、「セキュリティ設定」でセキュリティドメインを設定します。以下の画像のように設定します。
環境変数#
従量課金環境に直接デプロイするのとは異なり、手動デプロイでは環境変数の設定は「クラウド関数」で行います。以下の画像のように設定します。
右上の「編集」をクリックし、対応する環境変数と値を追加し、保存した後、アプリケーションを使用して対応する機能を取得できます。
メール通知の設定#
ZOHO の SMTP サービスは有料ユーザーのみ利用できるため、メール全体を Tencent 企業メールに移行し、メール通知に使用するためのメールアカウントも設定しました。
公式ドキュメントで提供されているいくつかの環境変数を使用します。以下の画像のように設定します。
SMTP_USER
とSMTP_PASS
はメールアカウントとパスワードです。企業メールの設定の詳細については、この記事を参照してください。同様の手順で進めるか、元のガイドに従って進めることもできます。
設定が完了したら、テストを行い、メールが正常に送信されることを確認します。
まとめ#
Waline を使用して、ブログのコメント問題をスムーズに解決しました。コメントのメール通知の部分でかなり苦労しましたが、SendGrid から SendCloud に、そして最終的に Tencent 企業メールに変更し、この機能を実現することができました。これにより、コメントに返信するのを忘れる心配をする必要はありません。