このトピックでは、Node.jsコード、パッケージコードのサードパーティ依存関係をインストールし、Function Computeにコードをデプロイする方法について説明します。 このトピックでは、例としてサードパーティの絵文字依存関係ライブラリを使用します。
準備
テスト用のコードディレクトリを作成し、ディレクトリの名前を指定します。 この例では、
mycode
が使用されています。LinuxとmacOS
mkdir -p /tmp/mycode
コマンドを実行し、ディレクトリを作成します。Windows
フォルダを作成し、
mycode
という名前を付けます。
では、
mycode
ディレクトリを作成し、index.js
またはindex.mjsファイルを作成します。サンプルコード:
ECMAScriptモジュール
説明この例では、Node.js 18以降のみをサポートします。
// index.mjs 'use strict'; import * as emoji from 'node-emoji' export const handler = async (event, context) => { console.log('hello world'); return emoji.get(':unicorn:'); }
CommonJSモジュール
// index.js 'use strict'; var emoji = require('node-emoji') exports.handler = (event, context, callback) => { console.log('hello world'); callback(null, emoji.get(':unicorn:');); }
npmを使用した依存関係のインストールとコードのデプロイ
前提条件
npmがオンプレミスマシンにインストールされ、npmコマンドを実行するための権限が取得されます。
Node.js関数はFunction Computeコンソールで作成されます。 詳細については、「関数の作成」をご参照ください。
手順
を実行します。Run the
npmインストールノード-絵文字
コマンドのmycode
現在のディレクトリに絵文字依存関係ライブラリをインストールします。パッケージファイルを
mycode
ディレクトリに移動します。LinuxとmacOS
mycode
ディレクトリに移動し、zip code.zip -r ./*
を実行します。説明ディレクトリの読み取りおよび書き込み権限があることを確認してください。
Windows
mycode
ディレクトリに移動し、すべてのファイルを選択し、ファイルを右クリックして、ファイルをZIPパッケージに圧縮します。
説明作成した
index.js
ファイルがパッケージのルートディレクトリにあることを確認します。Function Computeコンソールで、目的の関数を見つけます。 機能の詳細ページの右上隅にあるコードのアップロードをクリックして、ZIPパッケージをアップロードします。
Function ComputeのランタイムはLinux OSを使用します。 WindowsまたはmacOS OSに絵文字依存関係ライブラリをインストールし、ライブラリにバイナリファイルが含まれている場合、Function Computeにアップロードした後、コードの実行に失敗します。 したがって、WebIDEを使用してサードパーティの依存関係をパッケージ化するか、Serverless devsを使用して依存関係をインストールし、プロジェクトをデプロイすることを推奨します。 詳細については、「WebIDEを使用して関数のサードパーティの依存関係をパッケージ化する」および「Serverless Devsを使用して依存関係をインストールし、プロジェクトをデプロイする」をご参照ください。
Serverless Devsを使用して依存関係をインストールし、プロジェクトをデプロイする
あなたが始める前に
手順
を実行します。Run the
cd /tmp/mycode
コマンドを実行して、mycode
ディレクトリに移動します。作成します。Create the
s.yaml
ファイルを作成します。次のサンプルコードは、ファイルの例を示しています。
edition: 1.0.0 # The version of the YAML specification. The version complies with semantic versioning. name: fcDeployApp # The name of the project. access: "default" # The alias of the key. services: fc-deploy-test: # The name of the service. component: fc # The name of the component. props: # The attribute value of the component. region: cn-shanghai service: name: fctest description: 'test' internetAccess: true function: name: emoji description: this is a emoji runtime: nodejs14 codeUri: ./ handler: index.handler memorySize: 128 timeout: 6
を追加します。
パッケージ. json
ファイルを作成します。次のサンプルコードは、ファイルの例を示しています。
{ "dependencies": { "node-emoji": "^1.11.0" } }
実行
sudo s build -- use-docker
依存関係をインストールします。実行が完了すると、
. s
ディレクトリは、mycode
ディレクトリに依存関係がインストールされ、. s/build/artifacts/{serviceName}/{functionName}
ディレクトリに移動します。実行
sudoのデプロイ
プロジェクトをデプロイします。実行後、関数をFunction Computeにデプロイできます。
詳細情報
Function Computeのレイヤーを使用して依存関係をインストールすることもできます。 公式の共通レイヤーを使用するか、オンラインで依存レイヤーを構築することを推奨します。 詳細については、以下のトピックをご参照ください。