2015-05-24 13 views
13

Questa è una sorta di domanda approfondita, quindi cercherò di spiegarla nel modo migliore possibile.Vai all'app Web su AWS con Elastic Beanstalk che non mostra l'output nei registri

Ho costruito un piccolo servizio di API in Go che sto cercando di distribuire alla AWS con il relativamente nuovo AWS Elastic Beanstalk Docker support.

Ecco quello che ho fatto (il codice è tutto open source, in modo da poter seguire se vuoi):

$ git clone https://github.com/rdegges/ipify-api.git 
$ cd ipify-api 
$ git fetch origin aws:aws 
$ git checkout aws 
$ eb init 
$ eb create 
$ eb deploy 

Questo userà pianta di fagioli elastico per creare una nuova applicazione (con finestra mobile) e distribuirlo.

Se dunque io corro eb open di aprire il mio web app, vedrò il mio indirizzo IP pubblico visualizzata (questo è il comportamento corretto), quindi so che la mia applicazione è in esecuzione/funzionali.

Ora, nel mio codice sorgente, ho diverse linee di uscita di debug:

fmt.Println("WOOOOOOOOOOOO") 

La dichiarazione di cui sopra stampe solo "WOO ..." per la console. Questo viene eseguito ogni volta che viene effettuata una nuova richiesta.

Sfortunatamente, quando eseguo eb logs per visualizzare i miei registri di istanza, questa riga di debug non viene mai visualizzata e non riesco a capire perché.

Ho provato a stampare su STDERR, stampare su STDOUT, ecc., Ma non sono assolutamente in grado di ottenere alcun output.

Ho setacciato internet alla ricerca di soluzioni, ma non ho ancora trovato nulla.

+0

Puoi pubblicare il tuo 'Dockerfile'? – jcbwlkr

risposta

1

Penso che import "github.com/rdegges/ipify-api/api" sia stato creato dalla copia su Github, non dalla copia locale. Il commit più recente del pacchetto api non ha le istruzioni estensioni fmt. Inoltre, la dichiarazione log in main.go funziona correttamente, così come lo fmt.Fprintf già nel pacchetto api. Prova a verificare che il pacchetto api venga generato dalla sorgente che pensi sia.

EDIT 2015/06/01:

Tutte le prove indicano che questo è un problema derivante dall'avere una subpackage interna, e il servizio remoto problemi con questo. Il pacchetto api non viene generato dalla copia locale. fmt.Print funziona bene da main.go, e si muovono GetIP dal pacchetto api al pacchetto main consente fmt stampa bene a stdout durante le richieste web.

In pratica, tutte le modifiche apportate al pacchetto locale api vengono ignorate.

I registri EB probabilmente dicono qualcosa su quali pacchetti vengono scaricati in remoto; il mio ha fatto.

Non sono un Godep pro, quindi forse un Godep pro può elaborare. Ma FWIW, sembra che potrebbe essere correlato a this issue, tangenzialmente. Potrebbe anche essere un problema con il servizio remoto che non viene creato con godep go build, ma come ho detto, non sono un Godep pro, quindi non sono sicuro.

0

E 'possibile si esegue una versione precedente dell'app, quando provo a costruire il contenitore a livello locale ricevo il seguente errore:

➜ docker build . 
# Executing 3 build triggers 
Trigger 0, COPY . /go/src/app 
Step 0 : COPY . /go/src/app 
Trigger 1, RUN go-wrapper download 
Step 0 : RUN go-wrapper download 
---> Running in c1854666d13c 
+ exec go get -v -d 
github.com/julienschmidt/httprouter (download) 
github.com/rdegges/ipify-api (download) 
github.com/rs/cors (download) 
Trigger 2, RUN go-wrapper install 
Step 0 : RUN go-wrapper install 
---> Running in 0bbdec1b99d7 
+ exec go install -v 
github.com/julienschmidt/httprouter 
github.com/rdegges/ipify-api/models 
github.com/rs/cors 
github.com/rdegges/ipify-api/api 
app 
# app 
./main.go:27: cannot use api.NotFound (type func(http.ResponseWriter, *http.Request)) as type http.Handler in assignment: 
    func(http.ResponseWriter, *http.Request) does not implement http.Handler (missing ServeHTTP method) 
./main.go:28: cannot use api.MethodNotAllowed (type func(http.ResponseWriter, *http.Request)) as type http.Handler in assignment: 
    func(http.ResponseWriter, *http.Request) does not implement http.Handler (missing ServeHTTP method) 
The command '/bin/sh -c go-wrapper install' returned a non-zero code: 2 

ci sono errori nel vostro flusso di eventi dopo che si distribuisce? "Eventi eb", credo.

Problemi correlati