このトピックでは、Pythonコードの依存関係をインストールし、コードをパッケージ化し、コードパッケージをFunction Computeにデプロイする方法について説明します。 このトピックでは、サードパーティの依存関係の絵文字を例として使用します。
準備
テスト用のコードディレクトリを作成します。 この例では、
mycodeが使用されています。LinuxまたはmacOS
mkdir -p /tmp/mycodeコマンドを実行し、ディレクトリを作成します。Windows
フォルダを作成し、
mycodeという名前を付けます。
mycodeディレクトリで、index.pyファイルを作成します。このファイルは、次のコンテンツで構成されています。
from emoji import emojize def handler(event, context): return emojize(":thumbs_up:")
pipを使用した依存関係のインストールとコードのデプロイ
前提条件
Python 3はオンプレミスデバイスにインストールされており、pip3に必要な権限があります。
Python関数はFunction Computeコンソールで作成されます。 詳細については、「関数の作成」をご参照ください。
手順
mycodeディレクトリでpip3 install emoji -tコマンドを実行し、現在のディレクトリに絵文字依存関係ライブラリをインストールします。mycodeディレクトリ内のすべてのファイルを圧縮します。LinuxまたはmacOS
mycodeディレクトリに移動し、zip code.zip -r ./*コマンドを実行します。説明ディレクトリの読み取りおよび書き込み権限があることを確認してください。
Windows
mycodeディレクトリに移動し、すべてのファイルを選択し、ファイルを右クリックして、ファイルをZIPパッケージに圧縮します。
Function Computeコンソールで、目的の関数を見つけます。 機能の詳細ページの右上隅にあるコードのアップロードをクリックして、前の手順で取得したZIPパッケージをアップロードします。
Function ComputeはLinuxで実行されます。 WindowsまたはmacOSを実行するオンプレミスマシンに絵文字依存関係ライブラリをインストールするときにバイナリファイルが含まれている場合、コードパッケージをfunction Computeにアップロードした後に関数が実行されません。 WebIDEまたはServerless Devsを使用して絵文字依存ライブラリをインストールすることを推奨します。 詳細については、「WebIDEを使用して関数のサードパーティの依存関係をパッケージ化する」および「Serverless Devsを使用して依存関係をインストールし、プロジェクトをデプロイする」をご参照ください。
Serverless Devsを使用した依存関係のインストールとプロジェクトのデプロイ
前提条件
手順
cd /tmp/mycodeコマンドを実行し、mycodeディレクトリに移動します。s.yamlファイルを追加します。次のサンプルコードは、ファイルの編集方法の例を示しています。
edition: 1.0.0 # The version of the YAML specification. The version complies with the semantic versioning specification. 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 property value of the component. region: cn-shanghai service: name: fctest description: 'test' internetAccess: true function: name: emoji description: this is a emoji runtime: python3 codeUri: ./ handler: index.handler memorySize: 128 timeout: 6requirements.txtファイルを追加します。次のコンテンツに従ってファイルを編集します。
emoji==2.0.0sudo s build -- use-dockerコマンドを実行して、依存関係をインストールします。実行後、
. sディレクトリは、mycodeディレクトリに依存関係がインストールされ、. s/build/artifacts/{serviceName}/{functionName}ディレクトリに移動します。sudo s deployコマンドを実行して、プロジェクトをデプロイします。コマンドを実行した後、function Computeに関数をデプロイできます。
関連ドキュメント
Function Computeのレイヤー機能を使用して依存関係をインストールすることもできます。 公式の共通レイヤーを使用するか、オンラインで依存レイヤーを構築することを推奨します。 詳細については、以下のトピックをご参照ください。