404 на appengine работает go_app

Я создал небольшое приложение Go, которое я запускаю локально, используя следующие

// +build !appengine

package main

import (
    "fmt"
    "net/http"

    "github.com/Test/test/server"
)

func main() {
    r := server.Router()

    fmt.Println("Started Server")

    http.ListenAndServe("localhost:8182", r)
}

Я развернул это несколько лет назад в Google AppEngine, и вышеописанное не работает, поэтому я создал это для Google AppEngine:

// +build appengine

package main

import (
    "net/http"

    "github.com/Test/test/server"
    "google.golang.org/appengine"
)

func init() {
    r := server.Router()

    appengine.Main()

    http.Handle("/", r)
}

Я использую следующее в app.yaml

handlers:
- url: /.*
  script: _go_app
  secure: always
  redirect_http_response_code: 301

Приложение разворачивается нормально, Google Cloud Console говорит, что оно запущено, но все, что я получаю, это "404 страница не найдена", что не относится ни к одному из созданных мной обработчиков. AppEngine не сообщает об ошибках, я вижу только 404 в журналах, копаясь глубже в журналах и обнаруживаю, что некоторые вещи упоминают приложение go: urlMapEntry: "_go_app",

Я использую роутер go-chi:

func Router() *chi.Mux {
    r := chi.NewRouter()

    // home
    r.Get("/", handlers.RootHandler)

    // api
    r.Route("/api", func(r chi.Router) {
        r.Get("/*", handlers.NotSupportedAPIHandler)
    })

    r.Get("/*", handlers.RootHandler)


    })
    return r
}

Но не важно, какой URL я вхожу, я не вижу, что RootHandler привыкает, потому что он вернет файл HTML. Когда я пытаюсь получить доступ к / API, я также не вижу NotSupportedAPIHandler поднимая его, так как это вернет статус 404 с ответом JSON.

Странно то, что некоторое время назад код работал, я получил файл HTML, используя go_app, используя роутер go-chi. Теперь все, что я получаю, это 404 страница не найдена.

Приложение работает нормально локально.

Как я могу отладить это? Есть ли место, где я могу увидеть, что идет не так или как app.yaml направляет это таким образом, что считает необходимым вернуть 404. Любой ответ от моего go_app будет выглядеть иначе, чем то, что я получаю сейчас, поэтому я думаю, что ошибка произошла раньше, в app.yaml,

0 ответов

Другие вопросы по тегам