ホームページ > ウェブフロントエンド > CSSチュートリアル > サーバーレス機能を備えたQRコードジェネレーターを作成してください!

サーバーレス機能を備えたQRコードジェネレーターを作成してください!

Lisa Kudrow
リリース: 2025-03-13 12:23:08
オリジナル
870 人が閲覧しました

サーバーレス機能を備えた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/imghw/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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート