Python で記述された Cloud Functions の依存関係を指定するには、2 つの方法があります。1 つは pip パッケージ マネージャーの requirements.txt
ファイルを使用する方法、もう 1 つは関数と一緒にローカル依存関係をパッケージ化する方法です。
Pipfile / Pipfile.lock 標準を使用した依存関係の仕様はサポートされていません。プロジェクトにこれらのファイルが含まれないようにする必要があります。
pip を使用した依存関係の指定
Python における依存関係は pip で管理され、requirements.txt
というメタデータ ファイルで表現されます。このファイルは、関数のコードを含む main.py
ファイルと同じディレクトリに置く必要があります。
関数をデプロイすると、Cloud Functions は pip を使用して、requirements.txt
ファイル内で宣言されている依存関係をダウンロードしてインストールします。
requirements.txt
ファイルには、パッケージごとに 1 行が含まれています。各行にはパッケージ名が含まれます。パッケージ名以外に、リクエストされたバージョンが含まれている場合もあります。詳細については、requirements.txt
のリファレンスをご覧ください。
requirements.txt
ファイルの例を次に示します。
requests==2.20.0 numpy
ローカル依存関係をパッケージ化する
依存関係を関数とまとめてパッケージ化してデプロイすることもできます。この方法は、pip パッケージ マネージャーを使用して依存関係を利用できない場合や、Cloud Functions 環境のインターネット アクセスが制限されている場合に便利です。
たとえば、次のようなディレクトリ構造を使用するとします。
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
この場合、次の import
ステートメントを使用して、通常どおり localpackage
からコードをインポートできます。
# Code in main.py from localpackage import script
このアプローチでは、いずれの setup.py
ファイルも実行されません。このようなファイルを含むパッケージもバンドルできますが、Cloud Functions で正しく実行されない場合があります。