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

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

DDD
发布: 2024-10-29 12:46:03
原创
1028 人浏览过

 How to Authenticate Private Go Modules on Google App Engine Standard with Go 1.11?

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

当 Go 应用程序升级到 Go 1.11 的模块系统时引擎标准项目,验证私有模块可能会带来挑战。按照迁移文档,您在尝试部署项目时可能会遇到“403 Forbidden”错误。

错误

该错误源于 Google 云构建系统无法访问托管该模块的私有存储库。云构建系统在部署期间需要凭据才能访问存储库,但当前设置中未提供这些凭据。

解决方案

要解决此问题,您可以利用 Go 的模块替换功能。这允许您将云构建系统配置为使用私有模块的本地副本,而不是从存储库中获取它。

目录结构

创建专用目录此方法的结构:

myService/
    src/
        service.go  # contains run() function for routers and other setups
        go.mod      # depends on private and external modules
        ...         # other source files
    build/
        gae/
            src/        # symlink to ../../src
            modules/    # stores cloned or locally modified private modules
            app.go  # contains main() to call service.run() and appEngine.Main()
            go.mod  # includes main() and required modules
            app.yaml
登录后复制

配置

在 myService/gae/go.mod 文件中,添加以下配置:

module myServiceGAE

require (
    bitbucket.org/me/myService v0.0.0
    google.golang.org/appengine v1.4.0
)

replace bitbucket.org/me/myService => ./src

# Optionally replace other private modules
replace bitbucket.org/me/myModule => ./modules/utils
登录后复制

此配置指示云构建系统使用 src 目录中 myService 的本地副本。替换指令的作用类似于伪供应商,确保构建系统使用本地版本而不是从存储库中获取版本。

优点和缺点

优点:

  • 私有模块代码不与 Google Cloud 共享,维护隐私。
  • 项目代码与 App Engine 保持解耦,可以轻松与其他平台集成.

缺点:

  • 如果私有模块依赖于其他私有模块,该方法可能会变得复杂。

结论

通过使用模块替换和修改的目录结构,您可以使用 Go 1.11 在 Google App Engine Standard 上成功验证私有模块。这种方法提供了安全性和灵活性,可以将私有模块无缝集成到您的项目中。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板