如何在 Azure 或 AWS 中托管私有 python 包管理器

Posted

技术标签:

【中文标题】如何在 Azure 或 AWS 中托管私有 python 包管理器【英文标题】:How to host a private python package manager in Azure or AWS 【发布时间】:2018-02-23 18:33:47 【问题描述】:

我在一个 Python 开发人员小团队中工作,我们的目标是创建一个私有包管理器来存储我们的包。我遇到了pypicloud 并跟随它的tutorial 我已经成功地能够上传和安装存储在 AWS-S3 中的包。太棒了。

但是,私有包管理器已启动并在本地托管,在终端中键入 pserve server.ini。然后可以通过http://0.0.0.0:6543/#/ 访问包管理器。理想情况下,我希望这台服务器是:

托管在云中(可能是 Azure,但 AWS 很好) 24/7 正常运行 安全。用户必须进行身份验证才能查看包管理器和包。 不是托管在操作系统中,而是托管在更高级别的东西(例如 docker 容器或 Azure 函数应用程序?),因为它更容易维护、异地复制等

问题:如何让安全的私有服务器(python 包管理器)始终在云中启动并运行?

【问题讨论】:

您可以在 Amazon S3 上托管程序包,无需最少的设置或额外的依赖项。我在这里提供了说明 - ***.com/a/57552988/3007402 【参考方案1】:

我会使用 Linux 上的 Azure WebApp:

https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-intro https://docs.microsoft.com/en-us/azure/app-service/containers/quickstart-custom-docker-image

这大致只是一种无需 Kubernetes 负担即可部署容器的简单方法。 ACS 可能是最好的,如果你真的想要一个专用的容器解决方案(有几个协调器)。

对于认证部分,pip支持带有基本认证的htaccess文件。这允许执行类似extra-index-url = https://login:password@pypi.myserver.com/simple/ 的操作。我没有首选的教程,但是 google/bing 类似“pip 私人存储库”之类的东西,你可以毫无问题地找到答案。

(完全披露,我在 Azure Python SDK 团队的 MS 工作)

【讨论】:

您还会推荐上述内容,还是有其他文档可以解决这个问题? 我认为 Azure Artifacts 现在可以做到azure.microsoft.com/en-us/services/devops/artifacts 还没有,但实际上很快:docs.microsoft.com/en-us/azure/devops/artifacts/quickstarts/… @LaurentMazuel 这正是我希望在我的组织中做的事情。对此非常兴奋!

以上是关于如何在 Azure 或 AWS 中托管私有 python 包管理器的主要内容,如果未能解决你的问题,请参考以下文章

在 .NET WCF 服务部署上选择 Azure 或 AWS [关闭]

使用 Azure 托管私有项目的 docs/html 文件的位置

访问 Azure Pipelines 中私有 Nuget 服务器中托管的 Nuget 包

AWS Route53:同一域下的私有和公共托管区域

将 aws ELB 用于另一个托管实例

Windows Azure 和 Amazon AWS 之间的站点到站点 ***