タスクキューから Cloud Tasks への移行

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 の機能:

  • pull キュー:

    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 タスクキューのドキュメント セットをご覧ください。