我在appengine flexible环境(Java / Spring Boot)中创建了一个POST端点。它与PubSub订阅位于同一Google项目中。 我检查过,这个POST端点可以从外面访问。我可以使用本地PC上的Postman将数据发布到此端点。 但是我的控制器没有从推送订阅中获得请求。
我尝试了像/ push这样的简单端点网址以及推荐的网址,例如/ _ah / push-handlers / push,但结果是一样的。
我可以在Stackdriver日志中看到很多消息:
{
metadata: {
projectId: "myproject"
serviceName: "appengine.googleapis.com"
zone: "us-central1-b"
labels: {…}
timestamp: "2016-12-06T19:17:51.922Z"
}
insertId: "1u1o1hqf77guah"
log: "appengine.googleapis.com/nginx.request"
structPayload: {
method: "POST"
latencySeconds: "0.000"
referer: "-"
host: "-"
user: "-"
code: "307"
remote: "130.211.3.227"
agent: "-"
path: "/push"
size: "180"
}
}
但我的推送控制器从未被调用过。
当我从Postman发布到此URL时,我得到类似307重定向(代理中的唯一区别),然后在我的控制器响应之后我可以看到200响应:
{
metadata: {
projectId: "myproject"
serviceName: "appengine.googleapis.com"
zone: "us-central1-b"
labels: {…}
timestamp: "2016-12-06T19:10:14.226Z"
}
insertId: "1acos4zf74fb5r"
log: "appengine.googleapis.com/nginx.request"
structPayload: {
method: "POST"
latencySeconds: "0.035"
referer: "-"
host: "-"
user: "-"
code: "200"
remote: "130.211.0.196"
agent: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
path: "/push"
size: "727"
}
}
这是我的app.yaml
# [START appyaml]
runtime: java
env: flex
runtime_config:
jdk: openjdk8
manual_scaling:
instances: 1
handlers:
- url: /.*
script: this field is required, but ignored
secure: optional
# [END appyaml]
有什么不对?
答案 0 :(得分:1)
我也遇到过同样的问题。 我在GAE flex上有一个scala akka-http应用程序。 我认为这是flex的一个错误,因为当我在GAE Standard(golang)上编辑推送端点时我获得了成功。
答案 1 :(得分:1)
有一个错误,但......
截至今天,该问题已得到解决。感谢您的耐心等待。
来源:https://code.google.com/p/cloud-pubsub/issues/detail?id=49#makechanges