问题标签 [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 投票
1 回答
254 浏览

google-app-engine - 将 Google AppEngine 从 Go 1.9 迁移到 Go 1.11 的 app.yaml api_version 问题

我们正在$DAYJOB使用基于 Go 1.9 的 AppEngine 应用程序。现在 Google 正在弃用 1.9 版,我正在尝试使用迁移指南迁移到 1.11 。它说我应该设置runtime: go111和删除 的api_version: go1.9app.yaml,但是这样做时,我收到一条错误消息部署:

如果我尝试将其添加回来,无论我输入什么值,我都会收到一条错误消息:

我在这里有点茫然,我做错了什么?

在本地运行dev_appserver.py工作正常。

0 投票
1 回答
355 浏览

google-app-engine - 无法使用使用外部库的运行时 1.12 部署 AppEngine Go 应用

我正在尝试将用 Go 编写的旧 Google App Engine(标准环境)项目迁移到运行时 1.12。自 2017 年底以来我没​​有碰过它,从那以后似乎发生了很多变化。我已经能够解决一些问题,但是由于我有一些外部依赖项,所以我无法部署代码。

尝试部署时控制台输出的相关部分

如上面的片段所示,我的 GOPATH 设置为d:\src\go,我的应用程序位于d:\src\go\src\data-axe并且我正在使用的 Bluemonday 位于其中,d:\src\go\src\github.com\microcosm-cc\bluemonday因此据我所知,所有这些都在我的 GOPATH 中。

指定依赖项的 App Engine 文档说

如果您的应用程序位于 GOPATH 上的目录中,App Engine 会分析、复制和上传您从 GOPATH 导入的内容。这种方法支持供应商目录。

这里一定有什么我不明白的地方。我的 GOPATH 中有我的代码和我使用的库,但是当我尝试部署时,App Engine 似乎没有接收并上传我的导入。

我的 main.go 中的导入使用的是绝对路径,正如文档所说的那样:

我究竟做错了什么?


编辑

的完整输出go env

0 投票
2 回答
65 浏览

google-app-engine - 指向“自动”的包罗万象的处理程序是一个坏主意吗?

我的实例几乎没有流量,但我将最小空闲实例设置为 1。我注意到,每当访问不存在的随机 url(通过某个机器人)时,它被视为动态请求,因为我的全部处理程序是自动的。这很好,除了我看到这些 404 错误(404 是因为没有与这些 url 模式关联的 http 处理程序,即使 yaml 定义了 catch all 模式)导致实例重新启动。实例遇到 404 错误为什么要重启?

我的所有动态处理程序都遵循“/api”模式,然后一些不遵循。因此,我可以显式列出所有有效模式并将它们映射到自动处理程序。那么,是否会将这些随机链接视为静态但不存在并抛出 404 错误(我可以接受)?我想确保实例不会仅仅因为一些 rouge 请求而继续运行。

0 投票
2 回答
385 浏览

go - Stackdriver 错误报告报告不适用于 go appengine 应用

我正在尝试将我的错误日志写入来自 golang appengine 应用程序的堆栈驱动程序错误报告

在 goroutine 中,我执行以下操作

我在堆栈驱动程序日志记录中看到错误

但我在堆栈驱动程序错误报告中没有任何警报,来自谷歌文档

写入 stderr 的错误日志由 Error Reporting 自动处理,无需直接使用 Go 的 Error Reporting 包。

你知道为什么我的错误没有显示在错误报告中吗?

0 投票
1 回答
313 浏览

go - 将 Go 应用程序部署到 Google App Engine 时出现问题

我开发了我的第一个 Go 应用程序并决定将其部署到 Google Cloud(App Engine)。它在本地运行得非常好,但我在部署过程中遇到了一些问题(我使用的是 Cloud SDK)。

我最终达到了能够成功将其部署到 GCP 的地步,但我不断得到

500 错误

尝试访问该应用程序时。

我也无法进行任何本地开发,因为每次运行go run main.gogo get -ugo build我都会得到:

我的go.mod文件如下所示:

这是我的应用程序的结构(main.go、、modelsrouter是 3 个不同的包):

结构体

我是 Go 开发的新手,从未将 Go 应用程序部署到 GCP,所以感觉很迷茫,非常感谢任何帮助。

0 投票
1 回答
125 浏览

angular - 如何部署“适用于 COVID-19 的 Verily Pathfinder 虚拟代理模板”

我想尝试“适用于 COVID-19 的 Verily Pathfinder 虚拟代理模板”(https://github.com/GoogleCloudPlatform/covid19-rapid-response-demo

我试过了,但遇到了一些困难。请问你能帮帮我吗?

我使用 Windows 10、适用于 Linux 的 Windows 子系统、Debian 10 和 [Google Cloud SDK 296.0.1、alpha 2020.06.10、app-engine-go app-engine-python 1.9.91、app-engine-python-extras 1.9.91 ,测试版 2020.06.10,bq 2.0.57,核心 2020.06.10,gsutil 4.51,kubectl 2020.06.10]

我遵循了 github 的 README。 https://github.com/GoogleCloudPlatform/covid19-rapid-response-demo


[要求]

一个 GCP 项目,在项目中设置了现有的 Dialogflow 代理,我们将其称为 PROJECTDIALOGFLOW 第二个 GCP 项目将使用 AppEngine 托管此应用程序,我们将其称为 PROJECTAPPENGINE 您必须以有权访问这两个项目的用户身份登录 gcloud . 安装 gcloud SDK 安装 node.js 安装 make

【开发要求】

运行 npm install -g @angular/cli

[设置]

在 /Makefile 中设置 PROJECTDIALOGFLOW 和 PROJECTAPPENGINE 在 /server/app.yaml 中设置 PROJECTDIALOGFLOW 运行 make init

[发展]

运行 export GOOGLE_APPLICATION_CREDENTIALS=[替换为此应用的路径]/creds/creds.json 运行 make dev


我通过了这些说明并且没有问题。但是,当我部署时,我收到一条错误消息。


[部署]

运行 make 部署


这就是我在终端中得到的。

我访问了这个 URL(https://console.cloud.google.com/cloud-build/builds/2d33eb05-376c-4fbb-a67b-470bbf635e22?project=822303710513),这是完整的构建日志。


0 投票
1 回答
208 浏览

google-app-engine - GCloud AppEngine 任务执行返回 403

backend在 Google AppEngine 上使用推送队列和灵活环境时,执行使用服务创建的任务(要在服务上执行)时出现 403(禁止)错误default。任务已成功推送到队列,并在本地确认,但任务执行失败并显示日志:

这同样发生在本地和生产中。但是,如果使用 cron 作业创建任务,则执行工作正常。我正在使用dev_appserver.py具有以下.yaml定义的 Go 1.11:

初始 API 请求到达/api端点,然后使用以下命令成功推送队列消息:

我的queue.yaml定义(实际上我还有更多):

如果不是通过 cron 作业创建任务,为什么我会在任务执行中获得 403(禁止)状态?关于这个问题的文档和现有资源没有多大帮助:/

0 投票
1 回答
63 浏览

go - 在本地测试依赖于环境变量的应用程序

Google 的 App Engine 提供了预定义环境变量的列表,并且可以在app.yaml中定义其他环境变量。同时,测试和部署应用程序的说明只是说用于go run在本地测试应用程序。如果我在cloud-sdk Docker 容器中本地测试我的应用程序,是否有一个gcloud命令(或其他工具)可以在我的本地容器中创建与 App Engine 中相同的环境变量?现在我只是在本地使用 bash 脚本设置环境变量,但这意味着我需要在多个位置维护变量。

0 投票
1 回答
61 浏览

go - 无法在 Go 中设置 AppEngine 的 Memcache

我一直在尝试使用 AppEngine 的 Memcache。请注意,我指的是 AppEngine 中包含的那个;我试图避免 MemoryStore 因为它的成本:在 AppEngine 中有免费的替代品,我更喜欢尝试使用那个替代品。

在此处输入图像描述

问题是,虽然我可以从 Web 添加值,但我无法设法在 Go 中获取一些工作代码。

我首先尝试遵循此代码,但得到了error adding item: not an App Engine context.

我读到因为 Memcache 来自 appengine 包而不是 Google Cloud 包("google.golang.org/appengine/memcache"而不是"cloud.google.com/go/xxx"),所以必须在 main: 中添加这个appengine.Main()

这样,应用程序就会失败:

有谁知道我可以得到这个工作?任何帮助,将不胜感激。提前致谢!

0 投票
1 回答
203 浏览

google-app-engine - 用日志级别替换 Go App Engine“google.golang.org/appengine/log”包?

我注意到这个包已被弃用,根据这里的文档:https ://cloud.google.com/appengine/docs/standard/go/go-differences

在不丢失日志级别的情况下通过简单的打印登录Go 1.12+ 的正确方法是什么?(调试/信息/警告/错误/关键/等)