ホームページ >ウェブフロントエンド >CSSチュートリアル >サーバーレス機能を備えたQRコードジェネレーターを作成してください!
QRコードは楽しいですよね?私たちは彼らを愛し、それから彼らを憎み、それから彼らを愛します。とにかく、彼らは最近再び人気を博しているので、それらがどのように作られているかを考えさせます。市場には無数のQRコードジェネレーターがありますが、独自のWebサイトでQRコードを生成する必要があると仮定します。一部のパッケージはこれを行うことができますが、通常は巨大で(たとえば180kb)、QRコードを生成するために必要なすべてを含んでいます。ウェブサイト上の他のスクリプトでサービスを提供することは理想的ではありません。
クラウド関数の概念は、この問題に対するエレガントなソリューションを提供します。クラウド関数はサーバー上にあり、小さなAPIと同様に、必要な場合にのみ呼び出されます。
一部のホストはクラウド機能関数を提供し、DigitalOceanもその1つです!液滴のように、機能の展開も非常に簡単です。
DigitalOceanは、私たちのためにプロジェクトフレームワークを構築できるCLIコマンドを提供します。プロジェクトを設定して実行するディレクトリに移動します。
<code>doctl serverless init --language js qr-generator</code>
言語は明示的に宣言されていることに注意してください。 DigitalOcean関数は、PHPとPythonもサポートしています。
プロジェクトのすべての機能を含むA /Packagesフォルダーを使用して、QR-Generatorと呼ばれるクリーンプロジェクトを取得します。サンプル関数がありますが、これを無視して、その横にQRフォルダーを作成できます。
このフォルダーは、QRCodeパッケージとQR.JS機能を保存します。それでは、パッケージ/サンプル/QRディレクトリにアクセスして、パッケージをインストールしましょう。
<code>npm install --save qrcode</code>
これで、新しいqr.jsファイルに関数を書き込むことができます。
const qrcode = require( 'qrcode') exports.main =(args)=> { return qrcode.todataurl(args.text).then(res =>({{ ヘッダー:{'content-type': 'text/html; ボディ:args.img == res: ` <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/" class="lazy" alt="サーバーレス機能を備えたQRコードジェネレーターを作成してください!"> ` })) } if(process.env.test)exports.main({text: "hello"})。then(console.log)
このコードの目的は、QRcodeパッケージを導入し、基本的にBase64 PNGを生成する関数をエクスポートすることです。<img alt="サーバーレス機能を備えたQRコードジェネレーターを作成してください!" >
ソースとしてのタグ。ターミナルでテストすることもできます。
<code>doctl serverless functions invoke sample/qr -p "text:css-tricks.com"</code>
ここには余分なステップがあります。プロジェクトが構築された後、いくつかの情報を使用して関数を構成するproject.ymlファイルを取得します。デフォルトでは、ファイルの内容は次のとおりです。
TargetNamesPace: '' パラメーター:{} パッケージ: - 名前:サンプル 環境: {} パラメーター:{} 注釈:{} 行動: - 名前:こんにちは バイナリ:FALSE 主要: '' ランタイム: 'nodejs:デフォルト' Web:True パラメーター:{} 環境: {} 注釈:{} 制限:{}
それらの強調表示されたものを見たことがありますか? packages: name
属性は、パッケージフォルダーの関数の位置を指定します。この場合、サンプルという名前のフォルダーです。 actions/ name
属性は、関数自体、つまりファイル名の名前です。プロジェクトを開始すると、デフォルト名はhelloですが、qr.jsという名前であるため、継続する前にハローからQRにラインを変更する必要があります。
コマンドラインから直接展開できます!まず、DigitalOcean Sandbox環境に接続して、テスト用のリアルタイムURLを取得します。
## do apiキーdoctl sandbox connectが必要です
これで、関数を展開できます。
Doctl SandboxはQR-Generatorを展開します
展開が完了すると、URLを介して関数にアクセスできます。 URLとは何ですか?それを取得するコマンドがあります:
doctl sbx fn get sample/qr -url https://faas-nyc1-2ef2e6cc.doserverless.co/api/v1/web/fn-10a937cb-1f12-427b-aadd-f43d08d64a/sample/qr
素晴らしい!パッケージ全体を他のスクリプトで公開する必要はもうありません!そのURLにアクセスして、そこからQRコードを生成できます。
APIを取得します、それだけです!
以上がサーバーレス機能を備えたQRコードジェネレーターを作成してください!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。