问题标签 [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.
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.9
值app.yaml
,但是这样做时,我收到一条错误消息部署:
如果我尝试将其添加回来,无论我输入什么值,我都会收到一条错误消息:
我在这里有点茫然,我做错了什么?
在本地运行dev_appserver.py
工作正常。
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
:
google-app-engine - 指向“自动”的包罗万象的处理程序是一个坏主意吗?
我的实例几乎没有流量,但我将最小空闲实例设置为 1。我注意到,每当访问不存在的随机 url(通过某个机器人)时,它被视为动态请求,因为我的全部处理程序是自动的。这很好,除了我看到这些 404 错误(404 是因为没有与这些 url 模式关联的 http 处理程序,即使 yaml 定义了 catch all 模式)导致实例重新启动。实例遇到 404 错误为什么要重启?
我的所有动态处理程序都遵循“/api”模式,然后一些不遵循。因此,我可以显式列出所有有效模式并将它们映射到自动处理程序。那么,是否会将这些随机链接视为静态但不存在并抛出 404 错误(我可以接受)?我想确保实例不会仅仅因为一些 rouge 请求而继续运行。
go - Stackdriver 错误报告报告不适用于 go appengine 应用
我正在尝试将我的错误日志写入来自 golang appengine 应用程序的堆栈驱动程序错误报告
在 goroutine 中,我执行以下操作
我在堆栈驱动程序日志记录中看到错误
但我在堆栈驱动程序错误报告中没有任何警报,来自谷歌文档
写入 stderr 的错误日志由 Error Reporting 自动处理,无需直接使用 Go 的 Error Reporting 包。
你知道为什么我的错误没有显示在错误报告中吗?
go - 将 Go 应用程序部署到 Google App Engine 时出现问题
我开发了我的第一个 Go 应用程序并决定将其部署到 Google Cloud(App Engine)。它在本地运行得非常好,但我在部署过程中遇到了一些问题(我使用的是 Cloud SDK)。
我最终达到了能够成功将其部署到 GCP 的地步,但我不断得到
尝试访问该应用程序时。
我也无法进行任何本地开发,因为每次运行go run main.go
时go get -u
,go build
我都会得到:
我的go.mod
文件如下所示:
这是我的应用程序的结构(main.go
、、models
和router
是 3 个不同的包):
我是 Go 开发的新手,从未将 Go 应用程序部署到 GCP,所以感觉很迷茫,非常感谢任何帮助。
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),这是完整的构建日志。
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(禁止)状态?关于这个问题的文档和现有资源没有多大帮助:/
go - 在本地测试依赖于环境变量的应用程序
Google 的 App Engine 提供了预定义环境变量的列表,并且可以在app.yaml中定义其他环境变量。同时,测试和部署应用程序的说明只是说用于go run
在本地测试应用程序。如果我在cloud-sdk Docker 容器中本地测试我的应用程序,是否有一个gcloud
命令(或其他工具)可以在我的本地容器中创建与 App Engine 中相同的环境变量?现在我只是在本地使用 bash 脚本设置环境变量,但这意味着我需要在多个位置维护变量。
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()
。
这样,应用程序就会失败:
有谁知道我可以得到这个工作?任何帮助,将不胜感激。提前致谢!
google-app-engine - 用日志级别替换 Go App Engine“google.golang.org/appengine/log”包?
我注意到这个包已被弃用,根据这里的文档:https ://cloud.google.com/appengine/docs/standard/go/go-differences
在不丢失日志级别的情况下通过简单的打印登录Go 1.12+ 的正确方法是什么?(调试/信息/警告/错误/关键/等)