App Engine Task Queue API による、App Engine スタンダード環境のキューサービス(タスクキュー)を使用することから、新しい RPC/REST API の Cloud Tasks を使用して同じサービスにアクセスすることに移行できます。Cloud Tasks は、第 1 世代の App Engine ランタイム以外にも、特にすべての App Engine フレキシブル環境や、第 2 世代の App Engine スタンダード環境ランタイムからでも使用できます。
Cloud Tasks と現在の App Engine スタンダード環境タスクキュー サービスは 1 つのユニバースに存在します。いずれかの API を使用して同じキューに追加できます。App Engine SDK か新しい Cloud Tasks API のいずれを使用しても、アプリ内のキューでは、ハンドラ URL にタスクが転送され、非同期処理が行われます。
新機能
Cloud Tasks には、App Engine SDK では利用できない次のような機能があります。
API によるキュー管理:
API、Console、または
gcloud
コマンドを使用して、他のキュー管理タスクを作成、削除、一時停止、実行できます。List Queues コマンド:
プロジェクトで設定したすべてのキューを一覧表示できます。
List Tasks コマンド:
任意のキュー内のすべてのタスクを一覧表示できます。
Identity and Access Management(IAM)の統合:
IAM を使用すると、キューやタスクへのアクセスをきめ細かく保護することができます。
HTTP ターゲット
パブリック IP アドレスを持つ任意の HTTP エンドポイントのハンドラをターゲットにできます。
Cloud Tasks API でまだ利用できない Task Queues の機能:
-
Cloud Pub/Sub という一般提供プロダクトを使用して、pull キューと同じユースケースの多くを実装できます。
-
Cloud Tasks では、Cloud Datastore トランザクションの一部としてタスクにキューを追加し、トランザクションが正常に commit された場合にのみタスクがキューに追加される(かつ、キューへの追加が保証される)機能はサポートされていません。
-
多種多様で小さな一連のタスクを非同期に処理する必要があるものの、個別のハンドラを設定したくない場合、App Engine SDK を使用すると、ランタイムに固有のライブラリを使用して、こうしたタスクを管理するシンプルな関数を作成できます。この機能は Cloud Tasks では使用できません。ただし、今後は Cloud Tasks を使用して通常のタスクのスケジュールを設定できるようになります。
-
App Engine SDK を使用するランタイムの一部には、名前空間を使用してタスクのマルチテナンシーをサポートする API があります。この機能は Cloud Tasks では使用できません。
-
gcloud CLI または App Engine SDK によって提供されるローカル開発用サーバーでは、Cloud Tasks API の呼び出しのエンドポイント シミュレーションがサポートされません。
-
App Engine SDK のユーザーは、非同期でタスクをキューに追加できます。 この機能は Cloud Tasks では使用できません。
詳細情報
コードの移行に関する詳細なガイドについては、App Engine タスクキューのドキュメント セットをご覧ください。
- Python 2.7 pull キューから Pub/Sub への移行
- Python 2.7 push キューから Cloud Tasks への移行
- Java 8 pull キューから Pub/Sub への移行
- Java 8 push キューから Cloud Tasks への移行