AWS CodeArtifact配置上游PyPI源后无法获取包最新版本问题咨询
解决方案
CodeArtifact同步上游PyPI更新的周期
CodeArtifact针对外部上游源的包数据采用缓存机制:
- 首次查询的全新包,通常会在数分钟内同步返回上游的最新版本信息
- 此前已经查询过的包,版本列表默认缓存有效期为10分钟,已确认存在的版本元数据最长缓存时间可达24小时。也就是说PyPI发布新版本后,最长可能需要24小时才会自动同步到CodeArtifact的缓存中。
主动触发CodeArtifact刷新上游版本的方法
你可以通过以下操作主动告知CodeArtifact拉取上游最新版本:
- 执行AWS CLI命令主动查询目标包版本:
CodeArtifact收到显式的包版本查询请求时,会检查本地缓存有效性,若上游存在更新就会自动刷新本地缓存,命令示例如下:
命令执行完成后等待1到2分钟,再重新执行安装命令即可识别到2.3.1版本。aws codeartifact list-package-versions \ --domain <替换为你的CodeArtifact域名> \ --domain-owner <替换为你的AWS账号ID> \ --repository <替换为你的PyPI类型仓库名> \ --format pypi \ --package google-auth - 手动上传目标版本包:
如果急需使用该版本,可以先从PyPI官方下载对应版本的安装包,再通过aws codeartifact publish-package-version命令手动上传到你的CodeArtifact仓库,上传完成后立即可用。
临时使用方案
如果你的环境允许直接访问公共PyPI,也可以在安装时临时添加公共PyPI作为额外索引源,绕过CodeArtifact的缓存直接安装目标版本。
内容的提问来源于stack exchange,提问作者phkae
相关产品推荐
相关产品推荐

