AppEngine / Go:使用新版本的Go with the SDK

时间:2016-09-22 11:54:38

标签: google-app-engine go

目前Go版附带的Go SDK版本为1.6.2,但最新版本为1.7.1。我需要一些自1.6.2以来发布的增强/错误修正。但是,当我将包含Go 1.6.2的SDK目录中的 goroot 目录替换为指向1.7.1的符号链接时,我收到的错误与无法找到< em> bin / goapp ,它看起来是特定于AppEngine的,并没有在标准Go版本中提供。

有没有人知道如何升级AppEngine SDK中的Go?这是否意味着Go in production也是1.6.2?

2 个答案:

答案 0 :(得分:8)

不幸的是,您仍然坚持使用最新App Engine Go SDK中捆绑的Go版本。

即使你&#34;切换&#34;它本地使用Go 1.7.1,并且你设法使用Go 1.7.1编译和运行你的应用程序(通过添加来自SDK的Go根目录中缺少的文件),生产环境目前也使用Go 1.6.2,因此,当引用1.6.2中缺少的代码时,您的应用和Go代码将在实时环境中遇到错误。很可能甚至部署都会失败。

另请注意,将应用程序部署到App Engine时,只会上载源文件,并且您的应用程序将在云中进行编译。所以你甚至不能&#34;欺骗&#34;它通过在本地编译并以某种方式&#34;排除&#34;源文件并仅上传二进制文件(甚至没有上传二进制文件)。

除了Go 1.7.1(或更新的版本)之外,你无法做任何其他事情来进入SDK。请注意,SDK中捆绑的Go版本通常落后于几个版本,因为它会成为&#34; live&#34;版本,它通常需要修改/更改App Engine的沙盒环境(必须应用/实施某些限制),并且需要进一步/额外测试/加强安全性。

答案 1 :(得分:2)

此时你应该能够升级 - 自2017年以来App Engine一直支持Go 1.8,最近宣布早期支持1.9。

一般情况下,你几乎完全坚持使用生产中支持的版本 - 没有办法在你自己的Go版本中链接到SDK,而且我认为即使你可以这样做也是非常不明智的。