내가 구글 앱 엔진을 사용하여 데이터 저장소 기능을 테스트하기 위해 노력하고있어 내 코드가 로컬 개발 서버에서 예상 작품으로하십시오 GAE 프로젝트에 배치 된 후,코드가 로컬 개발 서버에서 작동 할 때 왜 GAE가 서버 오류를 반환합니까?
// code based on the following guide: https://cloud.google.com/datastore/docs/reference/libraries#client-libraries-install-go
package datastoretest
import (
"fmt"
"log"
"net/http"
"cloud.google.com/go/datastore"
"google.golang.org/appengine"
)
type Task struct {
Description string
}
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
// Set Google Cloud Platform project ID.
projectID := "myProjectID" //note: actual ID is different
// Creates a client.
client, err := datastore.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Sets the kind for the new entity.
kind := "Task"
// Sets the name/ID for the new entity.
name := "sampletask1"
// Creates a Key instance.
taskKey := datastore.NameKey(kind, name, nil)
// Creates a Task instance.
task := Task{
Description: "Buy milk",
}
// Saves the new entity.
if _, err := client.Put(ctx, taskKey, &task); err != nil {
log.Fatalf("Failed to save task: %v", err)
}
fmt.Fprint(w, "Saved ", taskKey, ":", task.Description)
}
그러나에 다음과 같은 메시지를 반환 있어요 방문자 :
Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.
오류는 애플리케이션이 종료되었음을 알려줍니다. log.Fatalf 호출로 인해 응용 프로그램이 종료되었을 수 있습니다. [appengine logger] (https://cloud.google.com/appengine/docs/standard/go/logs/reference)를 사용하여 log.Fatalf를 호출하는 대신 오류를 기록하고 처리기에서 돌아옵니다. 무엇이 잘못되었을지를 결정하기 위해 콘솔의 오류를보십시오. –
appengine logger를 사용하고 일반 로그 패키지를 제거했지만 log.Fatalf를 제거해도 문제가 해결되지 않았습니다. client.Put 함수가 문제의 원인 인 것처럼 보입니다. 주석을 달아 웹 페이지로드가 잘되지만 왜 그럴까요? – user
Put에서 반환 된 오류는 무엇입니까? –