2015-05-24 32 views
13

Đây là một câu hỏi chuyên sâu, vì vậy tôi sẽ cố gắng giải thích nó tốt nhất có thể.Truy cập ứng dụng Web trên AWS với Cây đậu mềm không hiển thị đầu ra trong nhật ký

Tôi đã xây dựng một dịch vụ API nhỏ trong Go mà tôi đang cố gắng triển khai lên AWS bằng cách sử dụng Docker Beanstalk đậu tương AWS mới support.

Đây là những gì tôi đã thực hiện (mã được tất cả mã nguồn mở, vì vậy bạn có thể làm theo cùng nếu bạn muốn):

$ 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 

này sẽ sử dụng cây đậu đàn hồi để tạo ra một ứng dụng mới (với Docker) và triển khai nó.

Nếu sau đó tôi chạy eb open để mở ứng dụng web của mình, tôi sẽ thấy địa chỉ IP công cộng của tôi được hiển thị (đây là hành vi đúng), vì vậy tôi biết rằng ứng dụng của tôi đang chạy/chức năng.

Bây giờ, trong mã nguồn của tôi, tôi đã có một vài dòng đầu ra gỡ lỗi:

fmt.Println("WOOOOOOOOOOOO") 

Những tuyên bố trên chỉ in "WOO ..." để giao diện điều khiển. Điều này được thực hiện mỗi khi có yêu cầu mới.

Thật không may, khi tôi chạy eb logs để xem nhật ký thể hiện của mình, dòng gỡ lỗi này không bao giờ xuất hiện - và tôi không thể hiểu tại sao.

Tôi đã thử in tới STDERR, in tới STDOUT, v.v. - nhưng tôi hoàn toàn không thể nhận được bất kỳ đầu ra nào.

Tôi đã xóa Internet tìm kiếm giải pháp nhưng chưa tìm thấy giải pháp nào.

+0

Bạn có thể đăng 'Dockerfile' của mình không? – jcbwlkr

Trả lời

1

Tôi nghĩ rằng import "github.com/rdegges/ipify-api/api" đang được tạo từ bản sao trên Github chứ không phải từ bản sao cục bộ. Cam kết gần đây nhất của gói api không có tuyên bố fmt không liên quan. Ngoài ra, tuyên bố log trong main.go hoạt động tốt, cũng như fmt.Fprintf đã có trong gói api. Hãy thử xác minh gói api đang được xây dựng từ nguồn mà bạn nghĩ.

EDIT 2015/06/01:

Tất cả các thử nghiệm của tôi cho thấy đây là một vấn đề bắt nguồn từ việc có một gói con nội bộ, và các dịch vụ từ xa gặp khó khăn với điều đó. Gói api không được xây dựng từ bản sao cục bộ. fmt.Print hoạt động tốt từ main.go và di chuyển GetIP từ gói api sang gói main cho phép fmt in tốt để stdout trong khi yêu cầu web.

Về cơ bản, tất cả các thay đổi được thực hiện cho gói phụ api cục bộ sẽ bị bỏ qua.

Nhật ký EB có thể nói điều gì đó về những gói nào đang được tải xuống từ xa; tôi đã làm.

Tôi không phải là một Godep chuyên nghiệp, vì vậy có thể một Godep chuyên nghiệp có thể xây dựng. Nhưng FWIW, có vẻ như nó có thể liên quan đến this issue, tiếp tuyến. Nó cũng có thể là một vấn đề với các dịch vụ từ xa không xây dựng với godep go build, nhưng như tôi đã nói, tôi không phải là một Godep pro, vì vậy tôi không chắc chắn.

0

Có thể bạn đang chạy một phiên bản cũ của ứng dụng, khi tôi cố gắng xây dựng container tại địa phương tôi nhận được lỗi sau:

➜ 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 

Có bất kỳ sai sót trong dòng sự kiện của bạn sau khi bạn triển khai? "sự kiện eb" tôi tin.

Các vấn đề liên quan