【问题标题】:AppEngine/Go: Using a new version of Go with the SDKAppEngine/Go:在 SDK 中使用新版本的 Go
【发布时间】:2016-09-22 11:54:38
【问题描述】:

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

有人知道升级 AppEngine SDK 中可用的 Go 的方法吗?这是否意味着生产中的 Go 也是 1.6.2?

【问题讨论】:

    标签: google-app-engine go


    【解决方案1】:

    此时您应该可以升级了 - App Engine 自 2017 年以来一直支持 Go 1.8,最近宣布提前支持 1.9。

    不过,一般来说,您几乎无法使用生产中支持的版本 - 无法将您自己的 Go 版本链接到 SDK,我认为这样做是非常不明智的即使可以,也要这样做。

    【讨论】:

      【解决方案2】:

      很遗憾,您无法使用捆绑在最新 App Engine Go SDK 中的 Go 版本。

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

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

      您只能等待 Go 1.7.1(或更新版本)将其加入 SDK。请注意,SDK 中捆绑的 Go 版本通常落后几个版本,因为要成为“实时”版本,通常需要对 App Engine 的沙盒环境进行修改/更改(必须应用/实施某些限制),它需要进一步/额外的测试/加强安全性。

      【讨论】:

      • 这是更重要的问题(关于生产)。谢谢。
      • 有没有办法在一种虚拟环境中开发这个 .. 而不是用另一个版本搞乱本地机器?
      猜你喜欢
      • 2018-02-12
      • 1970-01-01
      • 2022-11-13
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      相关资源
      最近更新 更多