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 と Python 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 の長期サポートプランをご覧ください。

Cloud SDK

Cloud SDK バージョン 272.0.0 では、Python 3.5 以降に対するベータ版のサポートが導入されました。旧バージョンの Cloud SDK はダウンロード可能になりますが、できるだけ早くバージョン 272.0.0 以降を使用して 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

Dataflow は、2020 年 10 月 7 日に Python 2 を使用するパイプラインのサポートを終了する予定です。業界の移行と、2020 年の Python 2 サポート終了のApache Beam コミュニティの約束により、Dataflow は Python 2 サービスの長期的な機能サポートやメンテナンスを保証できません。

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

BEAM-1251トラッカーをモニタリングして、Apache Beam での Python 3 のサポートに関する更新、改善、既知の問題を確認できます。Apache Beam 2.x SDK のサポート状況の詳細については、SDK バージョンのサポート状況のページをご覧ください。