使用AWS CodeArtifact阻止某些公共包

4
我希望创建一个私有的CodeArtifact PyPI仓库,该仓库的上游连接到公共的PyPI仓库。私有仓库将存储带有特定前缀的软件包。
例如:
- foo.databases - foo.logging 如果在私有仓库请求版本不可用,则希望避免从公共PyPI仓库拉取上述软件包。任何具有foo前缀的软件包请求都应该被阻止从上游仓库中获取。
根据文档所述的仓库策略...
“codeartifact:ReadFromRepository”操作只能用于仓库资源。不能将包的Amazon资源名称(ARN)作为资源与“codeartifact:ReadFromRepository”操作一起放置,以允许读取仓库中的一组软件包。给定的主体只能读取仓库中的所有软件包或不读取任何软件包。
从这里我得出的印象是这不可能实现。有什么方法可以让它工作吗?Artifactory使用一个包含/排除模式来解决此问题。我希望CodeArtifact中有类似的功能。
1个回答

3

CodeArtifact 不支持基于包名称前缀来阻止从上游获取的软件包。但是 CodeArtifact 现在提供了软件包来源控制,可以用来阻止来自上游的单个软件包。

如果您创建了一个私有的 CodeArtifact PyPI 存储库,并在其中设置了一个连接到公共 PyPI 存储库的上游,然后发布软件包 foo.databasesfoo.logging 的版本到您的私有存储库中,则这些软件包将在您的私有存储库中初始化设置,以阻止从上游仓库获取这些软件包的任何版本,从而防止从公共 PyPI 存储库拉取这些软件包的任何版本。

由于该功能不适用于前缀,因此,如果您稍后请求类似于 foo.networking 的内容,则它不会被阻止从公共 PyPI 拉取,除非您先发布 foo.networking 的版本到您的私有存储库中,或者手动为软件包 foo.networking 配置软件包来源控制以设置 Upstream: BLOCK。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接