问题标签 [google-app-engine-go]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
87704 浏览

go - go run:不能运行非主包

这里是简单的 go 应用程序。如果我运行以下代码,我会收到“运行:无法运行非主包”错误。

要修复它,我只需要将包命名为main. 但我不明白为什么我需要这样做。我应该可以随意命名包。

另一个问题,我知道main函数是程序的入口点,你需要它。否则它将无法正常工作。但是我看到一些没有主要功能的代码仍然有效。

点击这个链接,页面底部的示例没有使用包main和main函数,它仍然有效。只是好奇为什么。

https://developers.google.com/appengine/docs/go/gettingstarted/usingdatastore

0 投票
0 回答
173 浏览

google-app-engine - Google App Engine:将远程 API 与本地 GAE 开发服务器结合使用

我有一个使用远程 API 访问数据存储的非 GAE 后端。这样做的唯一方法(没有代理 GAE 服务)是使用 GAE Remote API。

这在将远程上下文连接到 GAE 生产部署时工作正常,但是 GAE 开发服务器呢?

我希望能够在部署任何东西之前在本地测试我的更改。有没有办法将远程 API 连接到本地 GAE 开发服务器数据存储?

相关示例代码:

查看host. 有没有办法将其设置为本地 GAE 开发服务器?

0 投票
2 回答
814 浏览

google-app-engine - 如何在 Golang 中使用 http.FileServer 处理 GAE 上的 404 错误

我正在使用 Google App Engine 来服务我用 Hugo 生成的(半)静态网站。我有一个“公共”目录,所有的 HTML 文件都在其中存储并提供。例如,我还有一些用于处理联系表单的服务器端脚本。该app.yaml文件看起来像这样。

简化的main.go文件看起来像这样

这工作得很好,并为 html 文件提供服务。但是,我正在寻找一种解决方案来处理找不到页面并且响应404 Not Found为例如(或任何其他服务器错误)的情况。

我的想法是创建一个自定义处理程序,它可以传入http.Handle("/", myCustomHandler)并处理服务器响应,并404.html在必要时重定向到自定义等。我是 Go 新手,似乎无法弄清楚应该如何实现。我也看过 Gorilla Mux,但希望(如果可能的话)不使用外部库来保持简单。

基于这篇文章,我尝试了以下

这个解决方案的工作原理是它也为我的 HTML 页面提供服务,但是我仍然不知道如何处理服务器响应代码。

任何帮助将不胜感激。谢谢!

0 投票
2 回答
978 浏览

google-app-engine - golang appengine api测试错误“appengine:NewContext传递了一个未知的http.Request”

我正在使用 appengine 和 golang 开发简单的 RESTful API。当我使用 goapp serve 启动服务时,代码运行良好,并且我开始编写单元测试函数来测试 API 端点,我在这里遇到了恐慌错误appengine: NewContext passed an unknown http.Request。我在运行时收到此错误goapp test

看起来由于某种原因,我无法传递我创建的请求并将其传递给appengine.NewContext()

下面是代码片段..

我创建了一个简单的可重现代码。你能帮我解决这个问题吗?或者是否有人在appengine上有他们的golang API项目,并且有单元测试功能来测试端点,我想看看他们的代码......

这是我发布的gitlab 问题,其中包含问题的所有必需详细信息以及示例和详细的错误消息。感谢您的所有帮助。

0 投票
3 回答
366 浏览

google-app-engine - 是否可以使用 Go Google App Engine Standard 的 Cloud Endpoints?

我在 Go on Google App Engine Standard 中实现了一个简单的 API,仅使用:

没什么特别的。但是,我想将此代码移植到使用 Cloud Endpoints 以获得更好的监控和诊断。

甚至可以使用 STANDARD 实例还是我必须转向 FLEXIBLE?

我找不到任何关于此的文档。也没有回答这个看似简单的问题。目前,我有点希望我选择了 Python,因为它的支持似乎更加成熟。我选择 Go 是因为它似乎更适合类似 API 的代码,因为我的最小研究表明 Go 提供了更好的性能。

如果可能的话,是否有任何指示如何请?

0 投票
2 回答
201 浏览

google-app-engine - Html Form POST 值在 localhost:8080 时提取良好,但在 AppSpot Golang 部署时为空字符串

周五 2016.12.09

这个简单的 POST 处理程序将在 localhost:8080 运行时提取表单值。[ 1 ]

但是,当部署到 AppSpot 时,这些值为空字符串。将表单操作更改为“GET”在 localhost:8080 和在 AppSpot 部署时都有效。

尝试了 r.PostFormValue("myValue") 和 r.FormValue("myValue") 但都返回 "" r.Method 返回 "POST"

甚至尝试添加: enctype="multipart/form-data" 到表单元素

谢谢你调查这个,罗宾

Golang 源码

周六 2016.12.10

续:来自上面的GAEfan

试试: r.ParseForm() myVal = r.Form["myValue"]

尽管当前表单 Html 确实验证了 ttps://validator.w3.org/,但我确实花时间变得更正式,并按照建议添加了“类型”属性。

问题似乎在响应中。r.Body 在 AppSpot 部署时始终为 Nil。即使在表单值提取之前使用“ defer r.Body.Close() ”,AppSpot 始终返回“http: invalid Read on closed Body” 由于表单值是主体响应的一部分,这可以解释为什么这些值总是“”

ref: ttp://www.w3schools.com/tags/ref_httpmethods.asp “请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息正文中发送的:”

甚至尝试过:ttps://cloud.google.com/appengine/docs/go/getting-started/handling-user-input-in-forms 但对于他们的一行表单处理内容来说太复杂了:r.FormValue("内容”)

感谢您对属性的敏锐观察。AppSpot 的 AppEngine 处理问题的方式显然与 localhost 不同,而且我还没有找到合适的教程。

0 投票
2 回答
203 浏览

google-app-engine - 如何 fmt.Println() go 程序未分配的内存?

我想将当前程序的虚拟内存内容打印0x100000x50000 (我的系统上包含系统调用蹦床的区域)

但是,当我尝试编译时,出现了该错误:

在我的情况下,cgo被禁用import "C"在编译时失败)
也确实syscall.Syscall(SYS_WRITE是唯一的方法吗?

0 投票
1 回答
97 浏览

macos - 将 Go AppEngine 应用程序从 Ubuntu 迁移到 macOS 时出现 404

我有一个使用 go-endpoints 设置后端的应用程序。在 Ubuntu 中本地运行时,我可以向后端发送请求并在 localhost:8080/_ah/api/explorer 中查看 API 资源管理器。我尝试将代码移动到运行 macOS Sierra 10.12.3 的新 Macbook Pro 上,现在在尝试向本地服务器发送请求时得到 404。

我可以从我的 Macbook 部署应用程序,并且后端按预期工作,因此它只是本地服务器出现问题。

我已经尝试过Google关于在本地访问 API 资源管理器的建议。

我尝试在本地服务器的一般 Sierra 问题上遵循此建议。

我的 yaml 文件非常简单:

我尝试搜索 appengine、localhost、go、endpoints、sierra、404 的所有组合,但没有一个解决方案有效。

0 投票
1 回答
707 浏览

google-app-engine - 为什么 GAE 标准环境中没有适用于 Golang 的 Cloud Endpoints?

嘿,有人知道为什么Google Cloud Endpoints for Go-lang 不在 Google App Engine 的标准环境中吗?它似乎只被 Python / Java 官方支持/记录。

是不是因为

A) Cloud Endpoints 很快/有一天会来到 Golang。

B) Cloud Endpoints 不是很好,所以它不会在 Golang 中实现。

C) 别的东西。

有这个“非标准”库https://github.com/GoogleCloudPlatform/go-endpoints但它在 9 个月内没有更新。

对于 GAE 项目,我正在尝试在 Python 和 Golang 之间进行选择,而对 Cloud Endpoints 的这种缺乏支持让我犹豫不决。

提前致谢。

0 投票
0 回答
138 浏览

git - Google App Engine 是否允许在使用 Go 时导入外部 Github 存储库?

例如,如果我使用 Go 创建了一个 Web 应用程序,我是否能够导入下面我的 Go 代码中列出的以下 Git 存储库: