是否可以将AWS CodeArtifact PyPi存储库配置为在AWS MWAA中使用



AWS MWAA(Apache Airflow的托管工作流(是AWS提供的一项相对较新的服务。在配置MWAA环境时,可以提供自定义的requirements.txt文件,用于在该环境中安装其他Python包。

在我工作的公司,我们使用AWS CodeArtifact来定制PyPi包存储库,在那里我们上传私人Python包。我们想在气流DAG中使用其中的一些。这就是为什么我想知道MWAA环境是否可以以某种方式配置为使用CodeArtifact中的PyPi存储库?

或者有没有办法在MWAA环境中安装自定义Python包(不在公共PyPi中(?

没有尝试,但应该有效:

# aws codeartifact login --tool pip --domain **--repository **
# awk '/index-url/ {print "-i "$3}' ~/.config/pip/pip.conf  > requirements.txt
# echo <my python package> >> requirements.txt

它可以用作正常的需求文件:

# pip3 install -r requirements.txt 
Looking in indexes: https://aws:****

请注意,CodeArtifact令牌最长将在12小时内过期。您可以创建一个定期作业来重新生成此文件。。。

虽然有点晚,但AWS确实提供了一个示例repo来满足您的需求。该示例使用AWS CDK Python将VPC端点设置为Codeartifacts和您的私有VPC。尽管Python Lambda版本是3.7(已经弃用(,但您可以将其更新到Python 3.10(最新(,并更新AWS CDK Python版本,而不会出现任何问题。我最近也接受了这个回购,并让我的私人MWAA毫无问题地使用了代码工件。您也可以根据自己的要求更新S3 bucket和Path。

https://github.com/aws-samples/amazon-mwaa-examples/blob/main/usecases/mwaa-with-codeartifact/README.md

安装aws cdk Nodejs

yarn add --global aws-cdk
npx cdk deploy CodeArtifactStack LambdaCronStack # Require LTS nodejs

最新更新