appengine フレキシブル環境 (Java/Spring Boot) で POST エンドポイントを作成しました。これは、PubSub サブスクリプションと同じ Google プロジェクトにあります。確認したところ、この POST エンドポイントは外部からアクセスできます。ローカル PC から Postman を使用して、このエンドポイントにデータを投稿できます。しかし、コントローラーはプッシュ サブスクリプションからの要求を取得しません。
/push のような単純なエンドポイント URL と /_ah/push-handlers/push のような推奨される URL を試しましたが、結果は同じです。
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]
何が間違っている可能性がありますか?