PyPI パッケージのインストールに関するトラブルシューティング

このページでは、カスタム PyPI パッケージをインストールする際に依存関係の競合をトラブルシューティングする方法について説明します。

Cloud Composer において直面する可能性のある PyPI パッケージの問題で最もよく見られるのは、依存関係の競合です。

新しいカスタム PyPI パッケージを指定してインストールする場合、このパッケージまたはそのバージョンが、環境内の他のカスタム PyPI パッケージやプリインストール パッケージと依存関係が競合する可能性があります。この場合、環境更新オペレーションはエラーが発生して失敗します。

Cloud Build とクラスタ内 build のエラー

パッケージで問題が発生した場合、環境のデプロイ方法に応じて次の 2 つの方法でエラー メッセージが表示されます。

  • Cloud Build。エラー メッセージと Cloud Build ログへのリンク。例:

    UPDATE operation on this environment failed 25 minutes ago with the
    following error message:
    Failed to install PyPI packages.  Check the Cloud Build log at ...
    
  • クラスタ内 build。エラー メッセージとビルドログの場所。次に例を示します。

    UPDATE operation on this environment failed 17 minutes ago with the
    following error message:
    Failed to install PyPI packages.  Check the in-cluster build logs for
    details. They can be found in the Environment logs under the build-log-*
    log name.
    

詳細なエラー メッセージを確認する

パッケージのインストールが失敗すると、pip が詳細なエラー メッセージを報告します。このエラー メッセージはビルドログで確認できます。

Cloud Build ログで pip エラーを見つける

Cloud Build のエラー メッセージのリンクを参照するか、ビルドログを見つけます。

  1. ビルドログを見つけます。

    1. Google Cloud Console で [ビルド履歴] ページに移動します。

      [ビルド履歴] に移動

    2. 失敗したビルドを選択してログを表示します。

  2. ビルドログで、pip からエラー メッセージを探します。例:

    ERROR: apache-airflow-backport-providers-google 2021.2.5 has requirement
    google-cloud-logging<3.0.0,>=2.1.1, but you'll have google-cloud-logging
    1.15.0 which is incompatible.
    

クラスタ内 build のログで pip エラーを見つける

  1. ビルドログを見つけます。

    1. Google Cloud Console で [環境] ページに移動します。

      [環境] に移動

    2. 環境を選択します。

    3. [ログ] タブを開きます。

    4. [すべてのログ] > [Composer ログ] > [ビルド] を選択します。

      ワーカーとスケジューラのイメージ

    5. [重要度] プルダウン リストで [情報] を選択します。

  2. 次のログが表示されます。

    1. installer.sh エラー メッセージを見つけます。次に例を示します。

      The command '/bin/sh -c bash installer.sh $COMPOSER_PYTHON_VERSION
      fail' returned a non-zero code: 1
      
    2. 上記の情報メッセージには、詳細な pip エラーがあります。次に例を示します。

      apache-airflow-backport-providers-google 2021.2.5 has requirement
      google-cloud-logging<3.0.0,>=2.1.1, but you have
      google-cloud-logging 1.15.0.
      

プリインストールされた PyPI パッケージとの競合

インストールするカスタム PyPI パッケージとプリインストールされたパッケージの間で、パッケージの競合が発生する場合があります。

使用している Cloud Composer のバージョンに対応するプリインストール パッケージの完全なリストは、Cloud Composer のバージョンのページでご覧いただけます。

この問題を解決するには、次の操作を行います。

  • 別のバージョンのカスタム PyPI パッケージをインストールします。
  • 別のバージョンのプリインストールされたパッケージをインストールします。インストールするには、プリインストールされたパッケージの名前を使用してカスタム PyPI パッケージをインストールし、必要なバージョンを指定します。プリインストールされているパッケージはダウングレードしないことをおすすめします。
  • 後で Cloud Composer のバージョンでプリインストールされているパッケージのバージョンが異なるかどうかを確認します。この場合、環境をアップグレードすると依存関係の競合を解決できます。

次のステップ