我在appengine靈活環境(Java/Spring Boot)中創建了POST端點。它與PubSub訂閱位於同一Google項目中。 我檢查了這個POST端點可以從外部訪問。我可以使用本地PC上的Postman將數據發佈到此端點。 但我的控制器沒有得到推送訂閱的請求。在appengine靈活環境中無法接收PubSub推送消息
我嘗試了簡單的終端網址/推,也推薦的網址/ _ah/push-handlers /推,但結果是相同的。
我可以在爲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"
}
}
但我推控制器永遠不會被調用。
當我發佈從郵差這個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"
}
}
這裏是我的應用程序.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]
什麼可能是錯誤的?