AWS CodeArtifact with Python#
Keywords: AWS, Amazon, CodeArtifact, Code Artifact, Python.
将你的包发布到 AWS CodeArtifact#
首先你要在本地先 build 好 distribution artifacts:
# 在 Setup.py 中用 distutils, 2021 年已经不推荐使用了.
python setup.py sdist bdist_wheel --universal
# 用 build https://build.pypa.io/en/latest/, 这个 Python 官放的工具打包, 非常推荐
python -m build
# 用 Poetry https://python-poetry.org/docs/cli/#build, 也能用, 跟 build 的差别不大, 但不够轻量
poetry build
然后用 aws cli 对 CodeArtifact 进行身份验证, 并自动对 Python 的包发布工具 twine 进行配置, 这个本质就是获得一个 token 然后把这个 token 放在 twine 的配置文件 ~/.pypirc
中.
aws codeartifact login --tool twine --domain my_domain --domain-owner 111122223333 --repository my_repo
然后你就可以用 twine 将你的 artifacts 发布到你的私有 repo 里了:
# 注意, 这个 codeartifact 是 aws cli 自动创建的 config profile, 请不要乱改
twine upload --repository codeartifact dist/*
Reference:
从 AWS CodeArtifact 上安装你已发布的包#
然后用 aws cli 对 CodeArtifact 进行身份验证, 并自动对 Python 的包管理 pip 进行配置, 这个本质就是获得一个 token 然后把这个 token 放在 pip 的配置文件 ~/.config/pip/pip.conf
中.
aws codeartifact login --tool pip --domain my_domain --domain-owner 111122223333 --repository my_repo
然后你就可以使用 pip install ...
命令了, pip 会优先到你的 repo 上去搜索, 搜不到才会去 public PyPI 上搜索.
Reference:
Reference#
aws_codeartifact_python-project README: 一个详细讲解怎么将 Poetry 和 AWS CodeArtifacts 一起使用的示例项目.
cookiecutter-aws-codeartifact-python-project: 这是一个 cookiecutter 的模板项目. 如果你需要发布并维护一个私有的 Python 包并发布在 CodeArtifact 上, 那么你可以用这个模板项目快速生成项目的文件目录. 如果你的项目仅仅是使用在 CodeArtifact 上的私有包, 那么这个模板并不适合.