.NET 9 AWS Lambda自定义运行时发布遇镜像缺失错误,求解决办法
解决AWS Lambda升级.NET 9时的容器镜像缺失问题
可行的临时解决方案
- 切换至ARM64架构:AWS官方已提供.NET 9对应ARM64的容器构建镜像,修改发布配置里的架构为
arm64即可。目前大部分AWS服务都支持ARM架构,且ARM实例有成本优势,这是最快的适配方式。 - 自定义构建镜像:基于AL2023基础镜像自行构建包含.NET 9 SDK的容器镜像,用于Lambda发布构建:
- 编写Dockerfile,以
amazonlinux:2023为基础镜像,安装.NET 9 SDK及运行依赖; - 将构建好的镜像推送到AWS ECR私有仓库;
- 在Lambda发布配置中指定该自定义镜像作为构建环境。
- 编写Dockerfile,以
- 本地构建部署包:绕开AWS的容器构建流程,本地生成AOT编译的部署包后手动上传:
执行以下命令生成发布包:
之后将dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishAot=true /p:GenerateRuntimeConfigurationFiles=truebin/Release/net9.0/linux-x64/publish目录下的文件打包为zip,通过Lambda控制台或AWS CLI上传部署。
是否需要跳过.NET 9
无需跳过.NET 9,上述方案均可实现.NET 9在AWS Lambda上的正常运行。AWS通常会在.NET正式发布后的数月内完善官方支持,但当前通过临时方案完全可以使用.NET 9的特性。
内容的提问来源于stack exchange,提问作者Gup3rSuR4c
相关产品推荐
相关产品推荐

