TencentCloud関数を使用してnestjsバックエンドプロジェクトを開発する

1.クラウド機能の紹介

Tencent Cloud Cloud Function(Serverless Cloud Function、SCF)は、Tencent Cloudが企業や開発者向けに提供するサーバーレス実行環境であり、サーバーを購入および管理せずにコードを実行するのに役立ちます。リアルタイムのファイル処理およびデータ処理のシナリオにあります。理想的です。コンピューティングプラットフォーム。SCFプラットフォームでサポートされている言語を使用するだけで、コアコードを記述し、コードを実行するための条件を設定できます。また、TencentCloudインフラストラクチャでコードを柔軟かつ安全に実行できます。

簡単な概要は次のとおりです

  • サーバーを個別に購入する必要がないため、コストを節約できます
  • 専任の運用および保守担当者が不要で、企業のコストを節約できます
  • 自動拡張、必要はありませんが、多数の訪問があるサーバーが十分ではありません
  • エンタープライズサーバーのコストを削減するために、訪問数に基づいて課金します
  • 開発者はビジネスコードの記述に集中し、運用と保守の知識を学ぶために多くの時間を費やす必要はありません

2. TencentCloudでのアカウント登録および作成環境

  • 1. Tencent Cloudは独自のアカウントを登録し、クラウド開発製品を選択します

ここに画像の説明を挿入します

  • 2.新しいnestjsアプリケーションを選択します
    ここに画像の説明を挿入します
    ここに画像の説明を挿入します

第三に、クライアントは足場を使用してプロジェクトを作成します

  • 1.インストール cloudbase/cli

    npm i -g @cloudbase/cli
    
  • 2.インストールが成功したかどうかをテストします

    cloudbase -v
    
  • 3、登录云开发

    cloudbase login
    
  • 4.ローカルでプロジェクトを作成します

    tcb new <appName> [template] 
    # 比如
    tcb new nest_test nest-starter
    
  • 5.地区に応じて作成します
    ここに画像の説明を挿入します

    作成した環境を選択します。そうでない場合は、新しい環境を作成すると、ブラウザが開きます。
    ここに画像の説明を挿入します

  • 6.nestjs-cli構築したプロジェクトと自分で構築したプロジェクトに違いはありませんnestjs。開発できれば、障害なくクラウド機能開発に移行できます。

第四に、nestjsメタ関数でデータベース接続し、データを操作します

  • 1.nestjs基本的な使い方は、私のgithubでプロジェクトを参照できますこのrbac許可システムは管理されています。良い研究がnestjsプロジェクト開発につながると思いますnestjsここでは、開発の使用方法を紹介しません

  • 2. TencentCloud機能でのデータベースの使用に関する注意

    現在、さまざまなベンダーのクラウド関数型プログラミングがサポートNoSqlデータベースです。ドキュメントデータベースと呼ぶことができます。ほとんどのベンダーがデータベースを使用していmongodbます。従来の(SQL)リレーショナルデータベースのサポートMySQLはあまり友好的ではなく、個別に構成する必要があります。のために支払われた。

    Tencent Cloud関数型プログラミングでMySQLデータベースを使用するには、データベース自分で購入する必要があります
    ここに画像の説明を挿入します

  • 3. TencentCloudコントロールパネルでデータベースを作成します

    上記の領域と現在のメタ開発環境に注意してください。Tencentメタ関数を開発および使用する現在の方法は(領域+環境=データベース)を使用することです。新しいコレクションを作成することは、新しいテーブルを作成することと同じです。

    ここに画像の説明を挿入します

  • 4.プロジェクトに接続データベースをインストールしますSDK

    npm install @cloudbase/node-sdk
    
  • 5.dnestjsサービスレイヤーデータベースに接続するだけです

    import cloudbase from '@cloudbase/node-sdk';
    
    // 注意以下几个参数是必填的,文档上说的是非必填
    const app = cloudbase.init({
          
          
      secretId: 'xx',
      secretKey: 'yy',
      env: 'xx',
      // 根据你创建的区域来写,目前只有上海(ap-shanghai)、广州(ap-guangzhou)
      region: 'ap-shanghai'
    })
    
    // 1. 获取数据库引用
    const db = app.database();
    
    • 初期化関数のパラメータ参照アドレスについて

    • secretId合計secretKeyを取得する方法

      サブユーザーを作成する必要があります

      ここに画像の説明を挿入します
      ここに画像の説明を挿入します

    • env現在使用している環境を指しますID

      ここに画像の説明を挿入します

  • 6.基本的なデータベース操作のリファレンスドキュメント

    // 简单的举例
    async updateUser(data:any) {
          
          
      const {
          
          id, age, books} = data;
      return await db.collection('nest-collection')
        .doc(id)
        .update({
          
          
        age: _.inc(2),
        books: _.push(...books)
      })
    }
    

5、プロジェクトの展開

現在、クラウド機能をデプロイする方法は2つあります

  • 1.コマンドによるローカル展開

    package.jsonファイルを表示するコマンドがあります

    ...
    "scripts": {
          
          
        ...
        "deploy": "cloudbase framework deploy",
    }
    ...
    

    コマンドを直接実行して、プロジェクトをデプロイします

    npm run deploy
    
  • 2. TencentCloudコントロールパネルにデプロイします

    ここに画像の説明を挿入します

  • 3.2つの展開方法の比較

    • コマンドデプロイメントを使用する利点は、便利なことです。1つのコマンドでデプロイメント操作を実行でき、コードを変更した直後にデプロイできます。もちろん、テンプレートは多数あり、記述せずにdockfile直接デプロイできます。
    • コントロールパネルを使用して展開します。一般の人は操作できますが、比較的愚かです。

プロジェクトコードホスティングについて

ここに画像の説明を挿入します

いくつかのメモ

  • 現在、パブリックウェアハウスのコードのみをサポートし、プライベートウェアハウスはサポートしていません。また、将来の展開のためにプライベートウェアハウスをサポートする可能性があります。
  • リモートブランチは手動で変更する必要があり、リモートウェアハウスブランチを自動的に取得することはできません
  • 現在、クラウド関数は環境変数をサポートしていません。これは、データベース情報が公開されることも意味します。

6、ドメイン名を変更します

  • 1.前提は、あなたがあなた自身の有効なドメイン名を持っていることです、あなたはサブドメイン名を作成することができます、あなたは私の前の記事を参照することができます

  • 2.アプリケーションが作成されると、システムはデフォルトで訪問するurlアドレスを生成しますurlこの巨大なアドレスは気に入らないと思います。

  • 3. TencentCloudコントロールパネルで独自のドメイン名を構成します

    ここに画像の説明を挿入します

  • 4.サブドメインを解決する方法は、上記のブログとは少し異なることに注意してください。独自に入力する代わりに、IPTencentCloudのデフォルトのドメイン名をコピーしてください
    ここに画像の説明を挿入します

  • 5.独自のドメイン名を使用してプロジェクトにアクセスします

セブン、クラウド機能の現在の開発についての私の考察について

  • 現在、技術は十分に成熟しておらず、自分で理解して遊ぶのに適しています。実際のエンタープライズプロジェクトは少し不適切です。主に次の点があります。
    • メーカーの依存度が高すぎます。現在TencentCloudを選択した場合、将来的にAlibabaCloudとHuaweiCloudに切り替えるのは不便です。この会社のプロジェクトを一生選択するのは少し不便です。
    • 施設は完璧ではありません、例えば、あなたはMySQLあなた自身をサービスに開放したい、料金を請求したい、redisそしてrabbitmq他のそのような製品は交通料金に応じて行われていません、それはあなたが対応するサービスを購入するために所有しなければならないことを意味します、それは費用がかかりますクラウドサーバーを1ECS年間購入するのに3,000元以上。中小企業の場合1年間のクラウドサーバーのコストはこの価格程度です。
    • 環境アプリケーションテンプレートの限られた選択
    • データベースのアカウント番号とパスワード、支払いキーなど、プロジェクト内の機密情報を環境に追加することはできません。.envそれを使用するために導入されたドキュメントは、クラウドホスティング時にも使用されます
    • コードウェアハウスはパブリックであり、プライベートウェアハウスは使用できません。プライベートウェアハウスは現在クラウドホスティングでサポートされています
  • 欠点はたくさんありますが、使ってみることができます。エンタープライズレベルでないプロジェクトの場合は、プレイできるかどうかは関係ありません。公開されているものはリセットできます。特に学生パーティーの場合は、これを選択することをお勧めします。自分で宿題をします。または卒業プロジェクトの場合、クラウド機能を直接使用してインターフェースを提供するためにサーバーを購入する必要はありません。静的ページを使用して静的ファイルをホストすることもできます。
  • 将来的には、クラウド機能がますます充実し、周辺のサポート施設も充実していくと思います。開発者は事業展開のみを担当し、展開方法はなく、企業は専門の運用・保守要員を必要としません。

おすすめ

転載: blog.csdn.net/kuangshp128/article/details/114017805