依存関係の指定

Python アプリケーションの依存関係は標準 requirements.txt ファイルで宣言されています。次に例を示します。

Flask==MAJOR.MINOR.PATCH
google-cloud-storage

MAJORMINORPATCH は、目的の Flask バージョン番号に置き換えます。

App Engine にデプロイすると、デプロイしたアプリと合わせて、requirements.txt ファイルで指定した依存関係が自動的にインストールされます。Linux 対応の任意の Python パッケージを利用できます。これにはネイティブの C 拡張機能を必要とするパッケージも含まれます。

デフォルトでは、App Engine は取得した依存関係をキャッシュに保存し、ビルド時間を短縮します。キャッシュに保存されていないバージョンの依存関係をインストールするには、次のコマンドを使用します。

gcloud app deploy --no-cache

Artifact Registry によるプライベート依存関係

Python アプリのプライベート依存関係をホストする必要がある場合は、Artifact Registry Python リポジトリを使用できます。アプリのデプロイ時に、ビルドプロセスにより Cloud Build サービス アカウントの Artifact Registry 認証情報が自動的に生成されるため、追加の認証情報を生成する必要はありません。プライベート依存関係を含めるには、Artifact Registry URL と関連パッケージを requirements.txt ファイルに追加します。

複数のリポジトリを指定するには、Artifact Registry 仮想リポジトリを使用して、pip がリポジトリを検索する順序を安全に制御します。次に例を示します。

--index-url REPOSITORY_URL
sampleproject
Flask==MAJOR.MINOR.PATCH
google-cloud-storage

REPOSITORY_URL は、次のようなレジストリ アドレスに置き換えます。

https://REGION_ID-python.pkg.dev/PROJECT_ID/REPOSITORY_NAME/simple

他のリポジトリによるプライベート依存関係

依存関係は、SSH キーにはアクセスできない Cloud Build 環境にインストールされます。SSH ベースの認証を必要とするリポジトリでホストされているパッケージは、プロジェクト ディレクトリにコピーし、pip パッケージ マネージャーを使用してプロジェクト コードと一緒にアップロードする必要があります。

プライベート依存関係を使用するには:

  1. pip install -t lib my_module を実行して、lib という名前のローカル フォルダに依存関係をコピーします。

  2. 空の __init__.py ファイルを lib ディレクトリに追加して、モジュールに変換します。

  3. モジュールをアプリにインポートします。たとえば次のようにします。

    import lib.my_module
    

依存関係をローカルにインストールする

アプリケーションをローカルで開発してテストする場合は、venv を使用してアプリケーションの依存関係をシステム パッケージから分離することをおすすめします。これにより、依存関係がローカルマシンとデプロイしたアプリケーションで確実に同じバージョンが使用されるようにすることもできます。

venv を使用して依存関係をインストールする手順は次のとおりです。

Mac OS / Linux

  1. 分離された Python 環境を作成します。
    python3 -m venv env
    source env/bin/activate
  2. 現在のディレクトリにサンプルコードが含まれていない場合は、hello_world サンプルコードが含まれるディレクトリに移動します。その後、依存関係をインストールします。
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

Windows

PowerShell を使用して Python パッケージを実行します。

  1. インストールされた PowerShell を探します。
  2. PowerShell へのショートカットを右クリックし、管理者として PowerShell を起動します。
  3. 分離された Python 環境を作成します。
    python -m venv env
    .\env\Scripts\activate
  4. プロジェクト ディレクトリに移動し、依存関係をインストールします。現在のディレクトリにサンプルコードが含まれていない場合は、hello_world サンプルコードが含まれるディレクトリに移動します。その後、依存関係をインストールします。
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

これにより、アプリをローカルで実行するときに、requirements.txt ファイルで宣言されている依存関係のみが使用できるようになります。デプロイ中に App Engine によってインストールされる依存関係は、env/ ディレクトリの内容ではなく、requirements.txt ファイルの内容に基づいています。

ウェブ フレームワークのインストール

アプリでウェブ リクエストに対応できるようにするには、ウェブ フレームワークを使用する必要があります。以下を含む任意の Python ウェブ フレームワークを使用できます。

特定のウェブ フレームワークを使用するには、次の requirements.txt に追加します。

Flask==MAJOR.MINOR.PATCH

WSGI サーバーをインストールする

組み込み WSGI サーバーが搭載されたウェブ フレームワークがありますが、本番環境のトラフィックの処理に適しているのは少数です。大部分のウェブ アプリケーションは、GunicornuWSGIWaitress などのスタンドアロン WSGI サーバーを使用します。WSGI サーバーのインストール、構成、使用方法については、アプリケーションの起動をご覧ください。

Cloud クライアント ライブラリのインストール

Python 用 Cloud クライアント ライブラリは、Google Cloud サービスへのアクセス用クライアント ライブラリで、記述する必要があるボイラープレート コードを著しく減らします。ライブラリは、高いレベルの API 抽象化を提供するため、理解しやすくなります。Python 固有のスタイルに従っているので、標準 Python ライブラリとうまく連携し、コードベースとの統合も向上します。

たとえば、DatastoreCloud Storage に対応する Python クライアント ライブラリをインストールして、それらのサービスをアプリと統合できます。

Cloud Datastore 用の Python クライアント ライブラリをインストールするには:

  1. クライアント ライブラリをローカルにインストールするには、次のように pip を使用します。

    pip install google-cloud-datastore

  2. 認証をセットアップします。Python 用 Cloud クライアント ライブラリを構成して、自動で認証を処理できます。クライアント ライブラリも Google Cloud CLI を使用して自動的に認証を処理できます。

    gcloud auth login
    
  3. Datastore クライアント ライブラリのリファレンスを使用して、Cloud Datastore サービスのサポートをアプリに実装します。

サポートされている Google Cloud サービスに対する Python 用 Cloud クライアント ライブラリすべての一覧については、API と Python ライブラリをご覧ください。