自今天早上以来,我遇到以下错误,但是我的代码没有任何变化(只是添加了log.println()...即使回到已部署的先前版本也无法解决问题)
trigger.go (进入点)
// The function that runs with the cloud function itself
func HandleUserCreateEvent(ctx context.Context, e my_project.FirestoreEvent) error {
log.Println("-------------------- oldValue --------------------")
log.Printf("Name: %s\n", e.OldValue.Name)
log.Printf("CreateTime: %v\n", e.OldValue.CreateTime)
log.Printf("Fields: %v\n", e.OldValue.Fields)
log.Printf("UpdateTime: %v\n", e.OldValue.UpdateTime)
log.Println("-------------------- newValue --------------------")
log.Printf("Name: %s\n", e.Value.Name)
log.Printf("CreateTime: %v\n", e.Value.CreateTime)
log.Printf("Fields: %v\n", e.Value.Fields)
log.Printf("UpdateTime: %v\n", e.Value.UpdateTime)
log.Println("-------------------- jsonValue -------------------")
jsonB, _ := json.Marshal(e.Value)
log.Printf("Json: %v\n", string(jsonB))
log.Println("---------------------- DONE ----------------------")
// My code
return nil
deploy.sh (还有一个deploy.bat和下面的sh脚本一样可以正常工作)
#!/usr/bin/env bash
# Deployment automation
name="HandleUserCreateEvent"
projectId="my_project"
collection="UsersCollection"
# Must call go vendor as go modules are ignored
go mod vendor
yes Y | gcloud functions deploy ${name} \
--trigger-event providers/cloud.firestore/eventTypes/document.create \
--trigger-resource "projects/${projectId}/databases/(default)/documents/${collection}/{pushId}" \
--region europe-west1 \
--runtime go113 \
--allow-unauthenticated \
--memory 128
由于它运行良好,现在不再可用(如上所述,我只是在上面看到的代码中添加了jsonValue部分)
MacBook-Pro-de-Emixam23:my-project-elasticsearch-creater emixam23$ ./deploy.sh
Deploying function (may take a while - up to 2 minutes)...
....................................................failed.
ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Build failed: # serverless_function_app/main
src/serverless_function_app/main/main.go:24:38: cannot use my_project_elasticsearch_creater.HandleUserCreateEvent (type func(context.Context, my_project_elasticsearch.FirestoreEvent) error) as type func(http.ResponseWriter, *http.Request) in argument to funcframework.RegisterHTTPFunction; Error ID: 6191efcd
有什么主意吗?我真的认为gcloud存在一些问题...
我只是重新部署了一个空函数,它只有一个简单的结构体作为包,没有依赖项(模块为空)
type FirestoreEvent struct {
OldValue interface{} `json:"oldValue"`
Value interface{} `json:"value"`
UpdateMask struct {
FieldPaths []string `json:"fieldPaths"`
} `json:"updateMask"`
}
还是同样的问题
C:\Workspace\go\src\gitlab-group\my-project-elasticsearch-creater>gcloud --version
Google Cloud SDK 298.0.0
app-engine-go
app-engine-python 1.9.91
bq 2.0.58
cloud-datastore-emulator 2.1.0
core 2020.06.19
gsutil 4.51
答案 0 :(得分:0)
我在同一天结束时尝试了完全相同的方法,并且有效...
我认为这与Google Cloud Platform问题有关,不知道为什么我们不能在几个小时内部署它。