HTTP タスクは、BufferTask
メソッド(プレビュー)または CreateTask
メソッドを使用して作成できます。このページでは、HTTP タスクを作成する 2 つの方法の選択方法について説明します。
BufferTask
メソッド(プレビュー)では、HTTP リクエストをキューに送信してタスクを作成できます。CreateTask
メソッドを使用すると、タスク オブジェクトを構築してタスクを作成できます。ほとんどのユースケースでは、タスク オブジェクトを明示的に構築する必要はありません。タスクを作成する最適な方法は、キューにキューレベルのルーティングが存在するかどうかによって異なります。
キューにキューレベルのルーティングがあるかどうかを確認する
ターミナルで、次の gcloud CLI コマンドを実行します。
gcloud beta tasks queues describe QUEUE_NAME
QUEUE_NAME
は、キューの名前に置き換えます。出力で、
httpTarget
フィールドを探し、uriOverride
が設定されているかどうかを確認します。出力に、
host
が指定されたuriOverride
の行が含まれている場合、キューにはキューレベルのルーティングがあります。タスクの作成方法を選択するには、キューレベルのルーティングがあるキューをご覧ください。出力に
uriOverride
の行が含まれていない場合、またはuriOverride
の説明に指定されたhost
が表示されない場合、キューにはキューレベルのルーティングがありません。タスクの作成方法を選択するには、キューレベルのルーティングのないキュー(またはキューレベルのルーティングを構成する)をご覧ください。
キューレベルのルーティングがあるキュー
キューレベルのルーティングがあるキューの場合、タスクの作成方法は、タスクのルーティング要件によって異なります。
- タスクには、キューレベルで指定されたものと同じルーティング要件があります。
BufferTask
(プレビュー)を使用します。BufferTask
メソッドを使用してタスクを作成する方法を学習します。 - タスクのルーティング要件がキューレベルで指定されたものと異なる: キューの UriOverrideEnforceMode を
IF_NOT_EXISTS
に設定して、キューレベルのルーティングが、ルーティングが存在しないものの、独自のルーティング仕様を持つタスクのルーティングを優先するタスク(BufferTask
タスクなど)に適用されるようにします。次に、CreateTask
を使用します。この方法では、タスクに個別のルーティングを指定できます。CreateTask
メソッドを使用してタスクを作成する方法について説明します。
キューレベルのルーティングがないキュー
キューレベルのルーティングがないキューの場合は、CreateTask
メソッドを使用して(または、キューレベルのルーティングを構成して)タスクを作成します。CreateTask
メソッドにはタスクのルーティングの指定が含まれます。これは、キューレベルでのルーティング情報がまだ存在しないキューに必要です。CreateTask
メソッドを使用してタスクを作成する方法について説明します。
キューレベルのルーティングについて
キューレベルのルーティングでは、キューに基づいて、タスクのデフォルトのルーティング情報を指定できます。独自のルーティング情報がないタスクだけにデフォルト ルーティングを適用するか、すべてのタスクにデフォルト ルーティングを適用するかを指定できます。
次の場合はキューレベルのルーティングを選択します。
- タスク オブジェクトを構築するのではなく、標準の HTTP リクエストでタスクを作成する
- ターゲット サービスの前でバッファとしてキューを使用する
ターゲットごとのアプローチ
キューレベルのルーティングは、ターゲット サービスごとに 1 つのキューを使用するアーキテクチャに最適です。このモデルでは次のことができます。
- ターゲットに基づいてタスクを管理する(ターゲット サービスが停止している場合、タスクのグループをリダイレクトするなど)。
- キュー内のすべてのタスクを同じターゲットに送信する
- タスク オブジェクトを明示的に構築せずにタスクを作成する(プレビューの
BufferTask
メソッドを使用)
キューレベルのオーバーライド動作を有効または無効にする
キューレベルのルーティングを構成したら、キューの UriOverrideEnforceMode を設定することで適用されるタイミングを決定できます。
IF_NOT_EXISTS
: キューレベルのルーティングは、タスクに独自のルーティング情報が含まれていない場合にのみ適用されます。キューを異なるターゲットにディスパッチできるようにするには、この設定を使用します。ALWAYS
: タスクに独自のルーティング情報が含まれている場合でも、キューレベルのルーティングは常に適用されます。タスクレベルで設定されたルーティング情報は、キューレベルのルーティングによって上書きされます。特定のキュー内のタスクで同じルーティング情報を使用する必要がある場合は、この設定を使用します。