在MWAA中从S3自定义PyPI服务器安装Python包失败排查
MWAA部署时无法从S3自定义PyPI安装内部Python包的解决方案
问题场景
我们团队用S3搭了自定义PyPI服务器,想通过MWAA的requirements.txt装内部开发的Python包。已经配了MWAA的IAM策略和S3桶权限,本地用MWAA测试容器验证安装完全正常,但部署到MWAA实例后,requirements.txt里加了--extra-index-url、--trusted-host并指定包版本,所有DAG直接失效。CloudWatch日志显示只有目标内部包没装上,报错“找不到匹配版本”,怀疑是网络或权限配置出了问题,求解决办法。
附当前用的S3桶策略:
{ "Version": "Date", "Id": "MWAApolicyforcustomS3", "Statement": [ { "Sid": "AllowSpecificMWAAAccess", "Effect": "Allow", "Principal": { "AWS": "mwaa-role-example" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::bucket", "arn:aws:s3:::bucket/*" ] } ] }
排查与解决步骤
1. 先核对requirements.txt格式
MWAA对requirements.txt的格式要求很严,必须保证--extra-index-url和--trusted-host的写法符合pip规范,而且要放在包声明前面:
--extra-index-url https://bucket.s3.region.amazonaws.com/simple/ --trusted-host bucket.s3.region.amazonaws.com your-internal-package==1.0.0
重点:S3自定义PyPI的URL必须指向simple/目录(PyPI标准结构),不然pip根本识别不了索引。
2. 验证MWAA实例的网络能不能到S3
- 如果MWAA部署在私有子网,得确认子网配了VPC端点(Gateway或Interface)来访问S3:
- 检查VPC里有没有S3 Gateway端点,路由表有没有关联这个端点,允许MWAA子网访问S3
- 要是用Interface端点,得确保安全组允许出站流量到S3的443端口
- 确认MWAA实例没被限制访问公网(如果自定义PyPI的S3桶是公开访问或者需要公网解析,但更推荐用VPC端点)
3. 修正S3桶策略和IAM权限
- 当前桶策略里的
Version字段必须是合法的AWS版本值,比如"2012-10-17",不能写"Date",不然策略可能不生效 - MWAA执行角色的IAM策略除了桶策略里的
GetObject,还得加ListBucket权限——因为pip需要遍历索引目录:
{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket", "arn:aws:s3:::bucket/*" ] }
- 检查桶的阻塞公共访问设置,如果开了完全阻塞,得确认MWAA是通过VPC端点或IAM角色访问的,不是走公共URL;要是必须用公共URL,得调整阻塞设置(不推荐这么做)
4. 检查自定义PyPI的结构对不对
得保证S3桶里的PyPI结构符合标准:
- 包目录路径必须是
simple/your-internal-package/ - 目录下要有对应版本的
.whl或.tar.gz包文件,文件名得符合pip识别规则(比如your_internal_package-1.0.0-py3-none-any.whl) - 目录下的
index.html文件要正确生成——可以本地用pip index versions your-internal-package --index-url https://bucket.s3.region.amazonaws.com/simple/验证
5. 开MWAA的详细日志查问题
在MWAA控制台把Requirements Installation Logs设为详细级别,重新部署requirements.txt,去CloudWatch看pip的完整执行输出,确认有没有这些问题:
- pip是不是访问了正确的S3索引URL
- 有没有403/404错误(权限或者路径错了)
- 是不是因为SSL证书问题访问失败(得确保
--trusted-host正确配置了S3桶的域名)
内容的提问来源于stack exchange,提问作者Karan K
相关产品推荐
相关产品推荐

