このページでは、プログラムにより App Engine タスクを作成して Cloud Tasks キューに入れる方法について説明します。
このプロセスを使用すると、タスクを処理するサービスとハンドラを明示的に指定し、必要に応じてタスク固有のデータをハンドラに渡すこともできます。Cloud Tasks サービスはタスク リクエストをハンドラに転送しますが、このワーカーは App Engine 内にあります。したがって、App Engine ハンドラを対象とするすべてのキューには、
App Engine アプリが必要です。
このハンドラは、App Engine アプリが動作しているリージョンで動作する必要があります。このリージョンは、Cloud Tasks リクエストの LOCATION_ID
パラメータとしても機能します。詳細については、
App Engine ターゲットの Cloud Tasks キューをご覧ください。
タスクが実行されるタイミングのスケジューリングや、タスクが失敗した場合の再試行回数の制限など、タスクの 構成 を微調整することもできます。タスクの名前を指定した場合、Cloud Tasks はその名前を使用してタスクの重複排除を行いますが、必要な処理によってレイテンシが増加する場合があります。
Google Cloud CLI を使用するか、Cloud Tasks API に直接リクエストを送信して、App Engine タスクを作成することもできます。詳細については、 タスクを作成するをご覧ください。
App Engine ファイアウォール ルール
App Engine スタンダード環境では、App Engine ファイアウォールを使用して、特定の内部トラフィックがファイアウォールをバイパスするように設定できます。つまり、default ルールを deny に設定した場合、App Engine スタンダード環境向けの特定のサービスからのリクエストはブロックされなくなります。これらは、アプリ独自の構成でリクエストされるか、同じアプリから送信される、すべてのタイプのトラフィックです。このようにファイアウォール ルールをバイパスするリクエストには、Cloud Tasks の App Engine タスク(App Engine タスクキューを含む)も含まれます。
受信リクエストを許可する Cloud Tasks の App Engine タスク(App Engine タスクキューを含む)の IP 範囲は、次のとおりです。
App Engine スタンダード環境に送信されるリクエストの IP 範囲:
0.1.0.2/32(拒否に設定している場合、デフォルトのファイアウォール ルールがバイパスされます)App Engine フレキシブル環境に送信されるリクエストの IP 範囲:
0.1.0.2/32
クライアント ライブラリを使用してタスクを作成する
タスクは、HTTP リクエストの形式で作成します。必要に応じて自由に作成できますが。次のサンプルのようにクライアント ライブラリを使用すると、サーバーとの低水準の通信の詳細(Google での認証など)を管理しやすくなります。キューにタスクを追加するには、 Cloud Tasks キューにタスクを追加するをご覧ください。