Cloud Tasks を使用して、タスクと呼ばれる非同期作業アイテムを作成できます。このドキュメントでは、HTTP ターゲット タスクと App Engine タスクを作成する方法について説明します。
HTTP ターゲット タスクは、Cloud Run、Google Kubernetes Engine、Compute Engine、オンプレミス ウェブサーバーなどの外部 IP アドレスを持つ汎用 HTTP エンドポイントにあるワーカーに転送されるリクエストです。
App Engine ターゲットの場合、Cloud Tasks はタスク リクエストを App Engine 内のハンドラに転送します。App Engine ハンドラを対象とするすべてのキューには、App Engine アプリが必要です。ハンドラは、App Engine アプリが動作しているリージョンで動作する必要があります。このリージョンは、Cloud Tasks リクエストの REGION パラメータとしても機能します。
HTTP ターゲット タスクは次の方法で作成できます。
- Google Cloud コンソールで
- ターミナルまたは Cloud Shell で Google Cloud CLI を使用する
- Cloud Tasks API に直接リクエストを送信する
HTTP ターゲット タスクを Cloud Tasks キューにプログラムで追加する方法については、HTTP ターゲット タスクをプログラムで作成するをご覧ください。
App Engine タスクは次の方法で作成できます。
- ターミナルまたは Cloud Shell で Google Cloud CLI を使用する
- Cloud Tasks API に直接リクエストを送信する
App Engine タスクを Cloud Tasks キューにプログラムで追加する方法については、App Engine タスクをプログラムで作成するをご覧ください。
始める前に
Cloud Tasks キューが作成されていることを確認します。詳細については、Cloud Tasks キューを作成するをご覧ください。
HTTP ターゲット タスクを作成する
タスクを作成するときに、タスク名を指定できます。名前が既存のタスク、または最近削除または完了したタスクの名前と同じ場合、呼び出しは失敗します。タスク名を指定しない場合、ランダムな一意のタスク ID が生成されます。
重複するタスク名を特定するための追加のルックアップ コストが発生するため、ユーザー指定の ID で作成されたタスクのレイテンシは大幅に増加します。タスク ID またはタスク ID の接頭辞にハッシュ文字列を使用することをおすすめします。詳細については、タスクの重複除去をご覧ください。
コンソール
Google Cloud コンソールで、[Cloud Tasks] > [キュー] ページに移動します。
タスクを追加するキューの名前をクリックします。
[HTTP タスクを作成] をクリックします。
必要に応じて、タスク名を指定します。
[URL] に、リクエストの送信先となる完全修飾 URL を指定します。パスは
http://またはhttps://で始まる必要があります(例:https://www.example.com)。必要に応じて、リクエストに使用する HTTP メソッドを指定します。デフォルトは
POSTです。必要に応じて、[リクエスト本文] に、タスクを処理するワーカーに送信する HTTP 本文データを指定します。
必要に応じて、[ ヘッダーを追加] をクリックして、1 つ以上の HTTP リクエスト ヘッダーを指定します。
[認証ヘッダー] で、次のいずれかの認証オプションを選択して、タスクの実行時にターゲットに送信されるリクエストを認証する方法を指定します。
- なし - ヘッダーなし。認可なしの一般公開エンドポイント向け
- OAuth トークンを追加 - 通常は
*.googleapis.comでホストされている Google API に使用されます。 - OIDC トークンを追加 -
*.googleapis.comでホストされている Google API を除く、 Google Cloud とサードパーティのエンドポイント呼び出しに使用されます。
該当する場合は、[サービス アカウント] に、タスクの実行時にターゲットに送信されるリクエストに含まれる認可トークンの生成に使用されるサービス アカウントのメールアドレスを指定します。サービス アカウントは、キューと同じプロジェクトに存在する必要があります。呼び出し元には、サービス アカウントに対する
iam.serviceAccounts.actAs権限が必要です。必要に応じて、該当する場合は、オーディエンスを指定して、認可トークンのアクションまたは受信者のタイプを制限します。
[作成] をクリックします。
タスクは [キューの詳細] ページに表示されます。
gcloud
HTTP ターゲット タスクを作成して既存のキューに追加するには、gcloud tasks create-http-task コマンドを使用します。
gcloud tasks create-http-task \
--queue=QUEUE_ID \
--url=URL \
--location=REGION \
--project=PROJECT_ID \
--oidc-service-account-email=SERVICE_ACCOUNT_EMAIL
次のように置き換えます。
QUEUE_ID: タスクを追加するキューの名前。URL: リクエストの送信先となる完全修飾 URL。パスはhttp://またはhttps://で始まる必要があります(例:https://www.example.com)。REGION: 省略可。キューがデプロイされているリージョン(例:us-central1)。PROJECT_ID: 省略可。タスクが作成されるGoogle Cloud プロジェクトのプロジェクト ID。SERVICE_ACCOUNT_EMAIL: 省略可。タスクの実行時にターゲットに送信されるリクエストに含まれる認可トークンの生成に使用されるサービス アカウントのメールアドレス。サービス アカウントは、キューと同じプロジェクトに存在する必要があります。呼び出し元には、サービス アカウントに対するiam.serviceAccounts.actAs権限が必要です。OpenID Connect トークンの代わりに OAuth2 アクセス トークンを生成するには、
--oidc-service-account-emailフラグを--oauth-service-account-emailに置き換えて、サービス アカウントのメールアドレスを指定します。
タスクを作成すると、作成されたタスクの完全なリソース名を含む確認メッセージが表示されます。
REST
HTTP ターゲット タスクを作成して既存のキューに追加するには、projects.locations.queues.tasks.create メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 必須。タスクが作成される Google Cloud プロジェクトのプロジェクト ID。REGION: 必須。キューがデプロイされているリージョン(例:us-central1)。QUEUE_ID: 必須。タスクが追加されるキューの ID。URL: 必須。リクエストの送信先となる完全修飾された URL。この文字列は、http://またはhttps://のいずれかで始まる必要があります(例:https://www.example.com)。SERVICE_ACCOUNT_EMAIL: 省略可。タスクの実行時にターゲットに送信されるリクエストに含まれる認証トークンの生成に使用されるサービス アカウントのメールアドレス。サービス アカウントは、キューと同じプロジェクトに存在する必要があります。呼び出し元には、サービス アカウントに対するiam.serviceAccounts.actAs権限が必要です。OpenID Connect トークンの代わりに OAuth2 アクセス トークンを生成するには、
oidcTokenフィールドをoauthTokenに置き換えて、サービス アカウントのメールアドレスを指定します。SCHEDULE_TIME: 省略可。 タスクが試行されるようにスケジュールされている時間(RFC 3339 形式)。例:2026-10-02T15:01:23Z。時間が設定されていない場合や過去の時間が設定されている場合、Cloud Tasks は現在の時刻に設定します。
リクエストの本文(JSON):
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には、新しく作成された Task リソースのインスタンスが含まれます。
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"headers": {
"User-Agent": "Google-Cloud-Tasks"
},
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
"audience": "URL"
}
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}
App Engine タスクを作成する
タスクを作成するときに、タスク名を指定できます。名前が既存のタスク、または最近削除または完了したタスクの名前と同じ場合、呼び出しは失敗します。タスク名を指定しない場合、ランダムな一意のタスク ID が生成されます。
重複するタスク名を特定するための追加のルックアップ コストが発生するため、ユーザー指定の ID で作成されたタスクのレイテンシは大幅に増加します。タスク ID またはタスク ID の接頭辞にハッシュ文字列を使用することをおすすめします。詳細については、タスクの重複除去をご覧ください。
gcloud
App Engine タスクを作成して既存のキューに追加するには、gcloud tasks create-app-engine-task コマンドを使用します。
gcloud tasks create-app-engine-task \
--queue=QUEUE_ID \
--relative-uri=RELATIVE_URI \
--location=REGION \
--project=PROJECT_ID \
--routing=KEY:VALUE
次のように置き換えます。
QUEUE_ID: タスクを追加するキューの名前。RELATIVE_URI: リクエストの相対 URI。パスはスラッシュ(/)で始める必要があります。指定しない場合は、ルートパス(/)が使用されます。REGION: 省略可。キューがデプロイされているリージョン。指定しない場合、現在のプロジェクトの App Engine アプリの場所が使用されます。PROJECT_ID: 省略可。タスクが作成されるGoogle Cloud プロジェクトのプロジェクト ID。KEY:VALUE: 省略可。このタスクに使用するルート。KEYは、service、version、instanceのうち少なくとも 1 つです。欠落しているキーは、デフォルトのルーティングを使用します。
タスクを作成すると、作成されたタスクの完全なリソース名を含む確認メッセージが表示されます。
REST
App Engine タスクを作成して既存のキューに追加するには、projects.locations.queues.tasks.create メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 必須。タスクが作成される Google Cloud プロジェクトのプロジェクト ID。REGION: 必須。キューがデプロイされているリージョン。QUEUE_ID: 必須。タスクが追加されるキューの ID。RELATIVE_URI: 必須。リクエストの相対 URI。パスはスラッシュ(/)で始まる必要があります。指定しない場合は、ルートパス(/)が使用されます。SERVICE: 省略可。タスクを処理する App Engine サービス。デフォルトでは、タスクはタスクが試行されたときにデフォルト サービスであるサービスに送信されます。VERSION: 省略可。タスクを処理する App Engine バージョン。デフォルトでは、タスクは、タスクが試行されたときにデフォルト バージョンであるバージョンに送信されます。SCHEDULE_TIME: 省略可。 タスクが試行されるようにスケジュールされている時間(RFC 3339 形式)。例:2026-10-02T15:01:23Z。時間が設定されていない場合や過去の時間が設定されている場合、Cloud Tasks は現在の時刻に設定します。
リクエストの本文(JSON):
{
"task": {
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には、新しく作成された Task リソースのインスタンスが含まれます。
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION",
"host": "VERSION.SERVICE.PROJECT_ID.appspot.com"
}
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}
タスクのバッチを作成する
projects.locations.queues.tasks.batchCreate メソッドを使用してリクエストのリストを作成し、ターゲット タスクのバッチを作成して、そのバッチを既存のキューに追加できます。
次の点にご注意ください。
すべてのタスクを同じキューに追加する必要があります。
1 つのバッチで作成できるタスクの数には上限があります。詳細については、割り当てと上限をご覧ください。
個々のオペレーションを 1 つのリクエストに集約するバッチ リクエストは、バッチ内の一部のオペレーションが成功し、他のオペレーションが失敗する可能性があるため、アトミックではありません。
タスクのバッチを削除することもできます。詳細については、キューからタスクのバッチを削除するをご覧ください。
HTTP タスク
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 必須。タスクが作成される Google Cloud プロジェクトのプロジェクト ID。REGION: 必須。キューがデプロイされているリージョン(例:us-central1)。QUEUE_ID: 必須。タスクが追加されるキューの ID。URL: 必須。リクエストの送信先となる完全修飾された URL。この文字列は、http://またはhttps://のいずれかで始まる必要があります(例:https://www.example.com)。SERVICE_ACCOUNT_EMAIL: 省略可。タスクの実行時にターゲットに送信されるリクエストに含まれる認証トークンの生成に使用されるサービス アカウントのメールアドレス。サービス アカウントは、キューと同じプロジェクトに存在する必要があります。呼び出し元には、サービス アカウントに対するiam.serviceAccounts.actAs権限が必要です。OpenID Connect トークンの代わりに OAuth2 アクセス トークンを生成するには、
oidcTokenフィールドをoauthTokenに置き換えて、サービス アカウントのメールアドレスを指定します。
リクエストの本文にはリクエストのリストが含まれます。
リクエストの本文(JSON):
{
"requests": [
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
]
}
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には Operation リソースのインスタンスが含まれます。
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
},
"done": false
}
App Engine タスク
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 必須。タスクが作成される Google Cloud プロジェクトのプロジェクト ID。REGION: 必須。キューがデプロイされているリージョン。QUEUE_ID: 必須。タスクが追加されるキューの ID。RELATIVE_URI: 必須。リクエストの相対 URI。パスはスラッシュ(/)で始まる必要があります。指定しない場合は、ルートパス(/)が使用されます。SERVICE: 省略可。タスクを処理する App Engine サービス。デフォルトでは、タスクはタスクが試行されたときにデフォルト サービスであるサービスに送信されます。VERSION: 省略可。タスクを処理する App Engine バージョン。デフォルトでは、タスクは、タスクが試行されたときにデフォルト バージョンであるバージョンに送信されます。SCHEDULE_TIME: 省略可。 タスクが試行されるようにスケジュールされている時間(RFC 3339 形式)。例:2026-10-02T15:01:23Z。時間が設定されていない場合や過去の時間が設定されている場合、Cloud Tasks は現在の時刻に設定します。
リクエストの本文にはリクエストのリストが含まれます。
リクエストの本文(JSON):
{
"requests": [
{
"task": {
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
]
}
リクエストを送信するには、次のいずれかのオプションを展開します。
成功した場合、レスポンスの本文には Operation リソースのインスタンスが含まれます。
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
},
"done": false
}