banner
月落星河Tsukistar

月落星河Tsukistar

浩瀚中的伟大,孤独间的渺小
github
twitter
youtube
bilibili
email

腾讯クラウドのCloudBaseクラウド開発を使用して、無料のリソースでWalineコメントシステムをデプロイします。

参考記事: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.jscloudbaserc.jsonpackage.jsonの 3 つのファイルをそのまま持ってきて、完了したら「保存して依存関係をインストール」をクリックします。以下の画像のようになります。

移植

HTTP アクセス#

アプリにアクセスする場合は、独自のドメインをバインドし、https を有効にすることをお勧めします。以下の画像のように設定します。

カスタムドメインの設定

設定が完了すると、以下の画像のようになります。

設定完了

ドメインの設定が完了したら、「セキュリティ設定」でセキュリティドメインを設定します。以下の画像のようになります。

セキュリティドメイン

環境変数#

従量課金環境に直接デプロイするのとは異なり、手動デプロイでは環境変数の設定は「クラウド関数」で行います。以下の画像のようになります。

環境変数

右上の「編集」をクリックし、対応する環境変数と値を追加し、保存した後、アプリを使用して対応する機能を取得できます。

メール通知の設定#

ZOHO の SMTP サービスは有料ユーザーのみ利用できるため、メール全体を Tencent 企業メールに移行し、メール通知に使用するためのメールアカウントも設定しました。

公式ドキュメントで提供されているいくつかの環境変数を使用します。以下の画像のようになります。

メールの環境変数

SMTP_USERSMTP_PASSはメールアカウントとパスワードです。企業メールの設定の詳細については、この記事を参照してください。同様に、指示に従うか、元の指示に従って簡単に設定できます。

設定が完了したら、テストを行い、メールが正常に送信されることを確認します。

メール送信成功

まとめ#

Waline を使用して、ブログのコメント問題をスムーズに解決しました。コメントのメール通知の部分でかなり苦労しましたが、SendGrid から SendCloud に、そして最終的に Tencent 企業メールに変更し、この機能を実現することができました。これで、コメントに返信するのを忘れる心配をする必要はありません。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。