まず、この記事に登場するより重要な概念のいくつかを紹介します。
関数計算(Function Compute):関数計算はイベント駆動型のサービスです。関数計算を使用すると、ユーザーはサーバーの操作やその他の操作を管理する必要がなく、コードを記述してアップロードするだけです。関数計算はコンピューティングリソースを準備し、ユーザーコードを柔軟に実行します。ユーザーは、実際のコード操作によって消費されたリソースに基づいて支払うだけで済みます。詳細関数演算参照。
Fun:Funは、サーバーレスアプリケーションのデプロイメントをサポートするためのツールであり、関数コンピューティング、APIゲートウェイ、ログサービス、その他のリソースを簡単に管理するのに役立ちます。リソース構成ファイル(template.yml)を通じて、開発、構築、およびデプロイメントの操作を支援します。もっと楽しくドキュメントを参照。
注:この記事で説明する手法には、3.6.9以降のFunバージョンが必要です。
Egg.jsとは何ですか?
Egg.jsは、エンタープライズレベルのフレームワークとアプリケーションのために誕生しました。Egg.jsがより上位のフレームワークを生み出し、開発チームと開発者が開発とメンテナンスのコストを削減できるようになることを願っています。
Eggは「慣習は構成よりも優れています」を追求し、統一された一連の合意に従ってアプリケーション開発を行います。この方法により、チーム内の開発者の学習コストを削減できます。開発者はもはや「釘」ではなく、フローできます。
Eggのプラグインメカニズムは非常に拡張性が高く、プラグインが行うことは1つだけです。Eggはフレームワークを通じてこれらのプラグインを集約し、ビジネスシナリオに従って構成をカスタマイズするため、アプリケーションの開発コストは非常に低くなります。
卵の特徴:
- Eggに基づいて上部フレームワークをカスタマイズする機能を提供する
- 高度に拡張可能なプラグインメカニズム
- 組み込みのマルチプロセス管理
- コア開発に基づいて、優れたパフォーマンス
- 安定したフレームワークと高いテストカバレッジ
- 進歩的な開発
サンプル効果プレビュー
この記事に含まれるアプリケーション例をデプロイした後、プレビュー効果をクリックします。
Egg.jsアプリケーションの例:http ://mtime.functioncompute.com/hot
環境の準備
まず、Funのインストールドキュメントに記載されている方法に従って、Funをマシンにインストールします。
PS:この記事で説明する方法では、Dockerをインストールする必要はなく、Funをインストールするだけです。最も簡単な方法は、実行可能バイナリファイルを直接ダウンロードすることです。
インストールが完了したら、fun --versionを実行して、Funが正常にインストールされたかどうかを確認できます。
最初の例:Egg.jsサンプルアプリケーションをすばやく初期化してデプロイする
公式のクイックスタートドキュメントに記載されている手順を次の順序で実行します。
egg.jsの例を初期化します。
mkdir egg-example && cd egg-example
npm init egg --type=simple
npm i
サンプルをローカルで実行してテストします。
npm run dev
次に、ブラウザーでhttp://127.0.0.1:7001にアクセスして効果を確認できます。
ローカル開発が完了したら、次のコマンドを直接使用してワンクリックで配置できます。
fun deploy -y
2番目の例:既存のEgg.jsアプリケーションをすばやく移行する
ここでは、例としてオープンソースのEgg.js Webアプリケーションを取り上げます。https://github.com/OrangeXC/mtime
まず、アプリケーションのクローンを作成する必要があります。
git clone https://github.com/OrangeXC/mtime
mtimeディレクトリに移動し、npmを使用して依存関係をインストールします。
npm install
ローカルでアプリケーションを起動します。
npm run dev
ローカル、アプリケーションを起動する使用config/config.default.js
この設定を、あなたは、アプリケーションが起動する前に、正しい値にmysqlのユーザ名、パスワード、およびその他のプロパティの設定を設定する必要があります。
起動が完了したら、ブラウザでURL http://127.0.0.1:7001を開いて効果をプレビューします。
ローカルテストが完了したら、オンラインでの展開方法を検討する必要があります。ラインに配備され、Egg.jsのデフォルトの優先順位は、config/config.prod.js
我々はあなたが別のデータベースを使用して、ローカル開発とオンライン展開の目的を達成できるように、このファイルへのオンライン・データベースを構成することができ、構成されました。
もちろん、あなたはまた、ローカル設定で確認できます正しい直接使用は、npm run start
実行アップを生成するために適用することができ、使用がnpm run stop
停止に適用することができます。
最後に、我々はまた、Egg.jsキャッシュとログディレクトリの下に修正する必要があり、我々は次のように追加しますconfig/config.prod.js
:
config.rundir = '/tmp/run',
config.logger = {
dir: '/tmp/log',
}
上記の構成は、Egg.jsキャッシュとログが関数計算の書き込み可能なディレクトリに書き込まれることを意味します(コンソールへのログ出力も可能です)。
最後に、Funワンクリックデプロイメントを使用します。
fun deploy -y
デプロイが完了すると、ターミナルの出力に一時的なドメイン名13500180-1986114430573743.test.functioncompute.comが表示されます。ブラウザから一時的なドメイン名を開いて、ローカルランタイムと同じ効果を確認します。
まとめ
この記事では、主にEgg.jsアプリケーションを関数計算にデプロイする方法を紹介します。従来の展開方法と比較して、複雑さが増すだけでなく、マシンの購入、ノード、Npmのインストールおよび構成の手順も省略されます。従来のEgg.jsアプリケーションがローカルで開発された後、リモートサイトに展開してワンクリックで直接生産でき、柔軟なスケーリング、従量課金制、無料の操作とメンテナンスの特性を備えています。
アプリケーションの移行中に問題が発生した場合は、フィードバックのためにding213グループに参加してください。
「Alibaba Cloud Nativeは、マイクロサービス、サーバーレス、コンテナ、Service Meshなどの技術分野に焦点を当て、クラウドネイティブの人気のあるテクノロジートレンド、クラウドネイティブの大規模なランディングプラクティス、およびクラウドネイティブの開発者を最もよく理解するテクノロジーサークルになることに焦点を当てています。」