Google Cloud で使用可能な Python 2

Python コミュニティは 2020 年 1 月 1 日に Python 2 のサポートを終了することを発表しました。Python で開発をしている場合は、できるだけ早く Python 3 にアップグレードすることをおすすめします。Python 2 から Python 3 への移行には想定より時間がかかる可能性があるため、Google Cloud のお客様は 2020 年 1 月 1 日以降も Python 2 アプリを実行し、既存の Python 2 クライアント ライブラリを使用できます。

App Engine などのマネージド コンピューティング サービスでは、2020 年 1 月 1 日以降も Python 2 ランタイムを引き続き提供します。Python 2 クライアント ライブラリは引き続きダウンロードできますが、今後のメジャー リリースでは Python 3 のみを対象とします。

このページでは、Google Cloud 全体における Python 2 および 3 のサポートの概要と、Python 3 への移行の際に有用なリソースを紹介します。このページには、常に最新のリソースと情報を掲載します。

Python 2 のサポート状況

Google Cloud Python クライアント ライブラリ

2020 年 1 月 1 日以降にリリースされた新しいメジャー バージョンの Python クライアント ライブラリでは、Python 2.7 はサポートされていません。以前のメジャー バージョンは引き続きダウンロードでき、既存のサービス エンドポイントにもアクセスできます。また、現在 Python 2.7 用の開発を行っているユーザーをサポートします。

古いライブラリ バージョンまたは古いライブラリ バージョンのライブラリ依存関係で脆弱性が見つかった場合は、パッチをリリースする予定はありません。

App Engine Python 2.7 ランタイム

Google では、App Engine Python 2.7 ランタイムの長期的サポートを提供し、お客様がご自身のペースで移行できるように、10 年以上にわたってアプリの移行をサポートしてきました。

Python 2.7 ランタイムを長期的にサポートするために、次の点を時間をかけて変更します。

  • ランタイムをできる限り最初のオープンソースの状態に戻します。 データセンターでアプリを安全に実行するには、一部のランタイムを厳しく制限して修正する必要がありました。Google のデータセンターでのランタイムの運用方法を変更することで、こうしたランタイムのために安全でスケーラブルな環境を長期にわたって提供できます。

  • サポート パッケージ リポジトリ、ネイティブ コンポーネント ビルド、アセット リポジトリをサポートする完全なビルドシステムを追加します。

App Engine Python 2.7 ランタイムの長期サポートについて詳しくは、App Engine の長期サポートプランをご覧ください)。Python 3 標準ランタイムに移行するための詳細も用意してあります。

Cloud SDK

Cloud SDK バージョン 274.0.0 では、Python 3 のサポートが導入されています。旧バージョンの Cloud SDK はダウンロード可能になりますが、できるだけ早くバージョン 274.0.0 以降を使用して Python 3 に移行することをおすすめします。

Python 3 を使用できるように Cloud SDK を構成する方法の手順については、Python 3 の使用をご覧ください。

Cloud SDK に付属している gcloud コマンドライン ツール以外の Python ツールの中には、引き続き Python 2.7 インタープリタを必要とするものがあります。詳しくは、gcloud topic startup を実行してください。

Deployment Manager のテンプレート

ほとんどの Deployment Manager テンプレートは Python 3 で引き続き機能します。追加の Python コード(ヘルパー スクリプトやテンプレート モジュールなど)をテンプレートで使用する場合は、Python 3 と互換性があることを確認してください。

Python 2.7 から 3.x への移行中に予想される動作の詳細については、Deployment Manager のドキュメントをご覧ください。

Dataflow

2020 年 10 月 7 日以降、Dataflow は Python 2 を使用するパイプラインのサポートを終了しました。業界シフトと Apache Beam での Python 2 サポートの終了により、Dataflow は Python 2 の長期機能サポートやメンテナンスを保証できません。

最新の Apache Beam SDK を使用して、Python 3 で既存の Python バッチ パイプラインとストリーミング パイプラインを実行できます。Python 2 コードから Python 3 のドキュメントへの移行に従って、パイプライン コードが Python 3 と互換性があることを確認することをおすすめします。

Apache Beam Python 3 の移行に関連する既知の問題については、BEAM-1251 トラッカーに関するよくある質問をご覧ください。Apache Beam 2.x SDK のサポート状況について詳しくは、SDK バージョンのサポート状況のページをご覧ください。