小编典典

AppEngine / Go:通过SDK使用新版本的Go

go

Go版本当前随附的Go
SDK为1.6.2,但最新版本为1.7.1。我需要自1.6.2以来发布的一些增强功能/错误修正。但是,当我用指向1.7.1的符号链接替换包含Go
1.6.2的SDK目录中的 goroot 目录时,出现一个错误,该错误与无法找到 bin / goapp有关
,该错误看起来像是特定于AppEngine,但未在标准Go版本中提供。

有谁知道在AppEngine SDK中升级Go的方法吗?这是否意味着Go正式版也为1.6.2?


阅读 209

收藏
2020-07-02

共1个答案

小编典典

不幸的是,您对最新的App Engine Go SDK附带的Go版本感到困惑。

即使您使用Go 1.7.1在本地“切换”它,并且以某种方式设法通过Go
1.7.1编译并运行您的应用程序(通过添加SDK的Go根目录中缺少的文件),生产环境当前也使用Go 1.6。
2,因此当引用1.6.2中缺少的代码时,您的app和Go代码将在实时环境中遇到错误。最有可能甚至部署失败。

另请注意,将您的应用程序部署到App
Engine时,只会上传源文件,并且您的应用程序会在云中编译。因此,您甚至无法通过本地编译和以某种方式“排除”源文件并仅上传二进制文件(甚至不上传二进制文件)来“欺骗”它。

除了等待Go
1.7.1(或更高版本)将其添加到SDK之外,您无法执行其他任何操作。请注意,SDK中捆绑的Go版本通常落后几个版本,因为要使其成为“实时”版本,通常需要对App
Engine的沙盒环境进行修改/更改(必须应用/实施某些限制),并且需要进一步/额外的测试/加强安全性。

2020-07-02