Cloud Tasks 在 \"specified\" 区域不可用
Cloud Tasks is not available in the \"specified\" region
我在 App Engine 上有一个应用程序 运行。有 2 个组件,一个在 App 引擎上执行,另一个在计算引擎上执行。他们通过任务队列进行通信。升级到版本 2 后出现以下错误:
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Cloud Tasks is not available in the \"us-central1-f\" region.",
"reason" : "badRequest"
} ],
"message" : "Cloud Tasks is not available in the \"us-central1-f\" region.",
"status" : "INVALID_ARGUMENT"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.interceptResponse(AbstractGoogleClientRequest.java:321)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.ytg.infra.messaging.taskqueue_api.Quickstart.pullTask(Quickstart.java:147)
at com.ytg.infra.messaging.taskqueue_api.Quickstart.main(Quickstart.java:119)
注意:我已经传递了正确的参数。
经过一番研究我自己解决了这个问题,下面我提供它的解决方案。
String queueNames = String.format("projects/%s/locations/%s/queues/%s", _projectName,_location, queueName);
// Create the PullTasksRequest
LeaseTasksRequest request = new LeaseTasksRequest().setMaxTasks(tasksBulkSize).setLeaseDuration(String.valueOf(leaseTimeInSecs)+"s").setResponseView("FULL");
//Execute the request and return the pulled task
LeaseTasksResponse response = _cloudTasksClient
.projects()
.locations()
.queues()
.tasks()
.lease(queueNames, request)
.execute();
return response.getTasks();
这解决了我的问题。对不起 post.
我在 App Engine 上有一个应用程序 运行。有 2 个组件,一个在 App 引擎上执行,另一个在计算引擎上执行。他们通过任务队列进行通信。升级到版本 2 后出现以下错误:
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Cloud Tasks is not available in the \"us-central1-f\" region.",
"reason" : "badRequest"
} ],
"message" : "Cloud Tasks is not available in the \"us-central1-f\" region.",
"status" : "INVALID_ARGUMENT"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.interceptResponse(AbstractGoogleClientRequest.java:321)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.ytg.infra.messaging.taskqueue_api.Quickstart.pullTask(Quickstart.java:147)
at com.ytg.infra.messaging.taskqueue_api.Quickstart.main(Quickstart.java:119)
注意:我已经传递了正确的参数。
经过一番研究我自己解决了这个问题,下面我提供它的解决方案。
String queueNames = String.format("projects/%s/locations/%s/queues/%s", _projectName,_location, queueName);
// Create the PullTasksRequest
LeaseTasksRequest request = new LeaseTasksRequest().setMaxTasks(tasksBulkSize).setLeaseDuration(String.valueOf(leaseTimeInSecs)+"s").setResponseView("FULL");
//Execute the request and return the pulled task
LeaseTasksResponse response = _cloudTasksClient
.projects()
.locations()
.queues()
.tasks()
.lease(queueNames, request)
.execute();
return response.getTasks();
这解决了我的问题。对不起 post.