このトピックでは、Node.jsコード、パッケージコードのサードパーティ依存関係をインストールし、Function Computeにコードをデプロイする方法について説明します。 このトピックでは、例としてサードパーティの絵文字依存関係ライブラリを使用します。
準備
テスト用のコードディレクトリを作成し、ディレクトリの名前を指定します。 この例では、
mycode
が使用されています。LinuxとmacOS
mkdir -p /tmp/mycode
コマンドを実行し、ディレクトリを作成します。Windows
フォルダを作成し、
mycode
という名前を付けます。
mycodeディレクトリに
index.mjs
またはindex.js
ファイルを作成します。次のコードは例を示しています。
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コンソールで作成されます。 詳細については、「イベント関数の作成」をご参照ください。
手順
mycode
ディレクトリで
コマンドを実行し、npm install node-emoji
現在のディレクトリに絵文字依存関係ライブラリをインストールします。
mycode
ディレクトリですべてのファイルをパッケージ化します。LinuxとmacOS
mycode
ディレクトリに移動し、zip code.zip -r ./*
を実行します。説明ディレクトリの読み取りおよび書き込み権限があることを確認してください。
Windows
mycode
ディレクトリに移動し、すべてのファイルを選択し、ファイルを右クリックして、ファイルを zipファイル。
説明作成した
index.js
ファイルがパッケージのルートディレクトリにあることを確認します。Function Computeコンソールで、管理する関数を見つけます。 機能の詳細ページの右上隅にある [コードのアップロード] をクリックし、準備したZIPパッケージをアップロードします。
コードがアップロードされた後、[コード] タブの [テスト機能] をクリックして、コードが正しいかどうかを確認できます。
Function ComputeはLinux環境で実行されます。 WindowsまたはmacOSデバイスに絵文字依存関係ライブラリをインストールするときにバイナリファイルが含まれている場合、コードパッケージの実行に失敗します。Function Computeしたがって、WebIDEを使用してサードパーティの依存関係をパッケージ化するか、Serverless Devsを使用して依存関係をインストールし、プロジェクトをデプロイすることを推奨します。 詳細については、「」および「Serverless Devsを使用して依存関係をインストールし、プロジェクトをデプロイする」をご参照ください。
Serverless Devsを使用して依存関係をインストールし、コードをデプロイする
前提条件
サーバーレスDevsが設定されています。 詳細については、「Serverless Devsの設定」をご参照ください。
手順
mycode
ディレクトリでcd /tmp/mycode
を実行します。s.yaml
ファイルを作成します。次のサンプルコードは、ファイルを編集する方法の例を示しています。
edition: 3.0.0 name: fcDeployApp access: "default" vars: # The global variables. region: "cn-hangzhou" resources: hello_world: component: fc3 # The name of the component. props: region: ${vars.region} # For information about how to use variables, visit: https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC. functionName: "emoji" description: 'this is emoji' runtime: "nodejs18" code: ./ handler: index.handler memorySize: 128 timeout: 30
パッケージ. json
ファイルを追加します。次のサンプルコードは、ファイルを編集する方法の例を示しています。
{ "dependencies": { "node-emoji": "^ 1.11.0" } }
sudo s build -- use-docker
を実行して依存関係をインストールします。実行が完了すると、
. s
ディレクトリは、mycode
ディレクトリに依存関係がインストールされ、. s/build/artifacts/{functionName}
ディレクトリに移動します。sudoのデプロイ
を実行してプロジェクトをデプロイします。実行後、関数をFunction Computeにデプロイできます。
詳細情報
コードパッケージが大きすぎる場合は、依存関係を分離し、レイヤーを構築し、ビジネスコードのみをアップロードできます。 詳細については、以下のトピックをご参照ください。