首页  >  文章  >  后端开发  >  如何使用 Go 1.11 验证 Google App Engine 标准上的私有 Go 模块?

如何使用 Go 1.11 验证 Google App Engine 标准上的私有 Go 模块?

Linda Hamilton
Linda Hamilton原创
2024-10-26 01:03:27677浏览

How to Authenticate a Private Go Module on Google App Engine Standard Using Go 1.11?

使用 Go 1.11 在 Google App Engine Standard 上验证私有 Go 模块

在 Go 1.11 中,模块的引入提供了一种更有效的方法管理依赖关系。但是,在 Google App Engine Standard 上使用私有模块时,可能会出现身份验证问题。当尝试部署 gcloud 应用程序并遇到 403 Forbidden 错误时,此问题变得很明显。

为了解决此问题,已采用供应商或使用第三方依赖项管理工具(例如 DEP)等传统方法。然而,对于新的模块系统,这些解决方案可能并不理想。

使用模块替换的解决方案

除了处理凭证之外,一个可行的解决方案是使用 Go 的模块替换功能可指示 GAE 使用本地代码。此方法涉及:

  1. 设置目录结构:

    使用以下目录结构组织您的项目:

    myService/
    |__ src/
    |    |__ service.go
    |    |__ go.mod
    |__ build/
       |__ gae/
           |__ src/  // Symlink to ../../src
           |__ modules/  // Git ignored
           |__ app.go
           |__ go.mod
           |__ app.yaml
  2. 修改GAE go.mod:

    在gae目录中创建一个go.mod文件并指定依赖项,包括使用replace的私有模块的本地路径:

    module myServiceGAE
    
    require (
        bitbucket.org/me/myService v0.0.0
        google.golang.org/appengine v1.4.0
    )
    
    replace bitbucket.org/me/myService => ./src
  3. 克隆或复制私有模块:

    在gae目录下的modules文件夹中,克隆或复制您的私有模块构建项目。

这种方法允许您将私有模块代码与主项目分开,同时确保 GAE 在部署期间使用正确的版本。

优点:

  • 将私有模块与 GAE 解耦,可以更轻松地部署到其他平台。
  • 避免需要额外的依赖管理工具。

缺点:

  • 处理依赖于其他私有模块的私有模块时变得更加复杂。

以上是如何使用 Go 1.11 验证 Google App Engine 标准上的私有 Go 模块?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn