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.d
nestjs
サービスレイヤーでデータベースに接続するだけです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
直接デプロイできます。 - コントロールパネルを使用して展開します。一般の人は操作できますが、比較的愚かです。
- コマンドデプロイメントを使用する利点は、便利なことです。1つのコマンドでデプロイメント操作を実行でき、コードを変更した直後にデプロイできます。もちろん、テンプレートは多数あり、記述せずに
プロジェクトコードホスティングについて
いくつかのメモ
- 現在、パブリックウェアハウスのコードのみをサポートし、プライベートウェアハウスはサポートしていません。また、将来の展開のためにプライベートウェアハウスをサポートする可能性があります。
- リモートブランチは手動で変更する必要があり、リモートウェアハウスブランチを自動的に取得することはできません
- 現在、クラウド関数は環境変数をサポートしていません。これは、データベース情報が公開されることも意味します。
6、ドメイン名を変更します
-
1.前提は、あなたがあなた自身の有効なドメイン名を持っていることです、あなたはサブドメイン名を作成することができます、あなたは私の前の記事を参照することができます
-
2.アプリケーションが作成されると、システムはデフォルトで訪問する
url
アドレスを生成しますurl
。この巨大なアドレスは気に入らないと思います。 -
3. TencentCloudコントロールパネルで独自のドメイン名を構成します
-
4.サブドメインを解決する方法は、上記のブログとは少し異なることに注意してください。独自に入力する代わりに、
IP
TencentCloudのデフォルトのドメイン名をコピーしてください。
-
5.独自のドメイン名を使用してプロジェクトにアクセスします
セブン、クラウド機能の現在の開発についての私の考察について
- 現在、技術は十分に成熟しておらず、自分で理解して遊ぶのに適しています。実際のエンタープライズプロジェクトは少し不適切です。主に次の点があります。
- メーカーの依存度が高すぎます。現在TencentCloudを選択した場合、将来的にAlibabaCloudとHuaweiCloudに切り替えるのは不便です。この会社のプロジェクトを一生選択するのは少し不便です。
- 施設は完璧ではありません、例えば、あなたは
MySQL
あなた自身をサービスに開放したい、料金を請求したい、redis
そしてrabbitmq
他のそのような製品は交通料金に応じて行われていません、それはあなたが対応するサービスを購入するために所有しなければならないことを意味します、それは費用がかかりますクラウドサーバーを1ECS
年間購入するのに3,000元以上。中小企業の場合、1年間のクラウドサーバーのコストはこの価格程度です。 - 環境アプリケーションテンプレートの限られた選択
- データベースのアカウント番号とパスワード、支払いキーなど、プロジェクト内の機密情報を環境に追加することはできません。
.env
それを使用するために導入されたドキュメントは、クラウドホスティング時にも使用されます - コードウェアハウスはパブリックであり、プライベートウェアハウスは使用できません。プライベートウェアハウスは現在クラウドホスティングでサポートされています
- 欠点はたくさんありますが、使ってみることができます。エンタープライズレベルでないプロジェクトの場合は、プレイできるかどうかは関係ありません。公開されているものはリセットできます。特に学生パーティーの場合は、これを選択することをお勧めします。自分で宿題をします。または卒業プロジェクトの場合、クラウド機能を直接使用してインターフェースを提供するためにサーバーを購入する必要はありません。静的ページを使用して静的ファイルをホストすることもできます。
- 将来的には、クラウド機能がますます充実し、周辺のサポート施設も充実していくと思います。開発者は事業展開のみを担当し、展開方法はなく、企業は専門の運用・保守要員を必要としません。