You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS SAM CLI构建Lambda容器镜像失败,路径含冒号报错

解决AWS SAM CLI部署容器镜像到Lambda的WinError 123问题

问题根源

Windows系统的文件名、目录名不允许包含冒号(:),而SAM CLI默认生成的镜像标签采用镜像名:版本号的格式,导致系统无法识别该路径,触发OSError: [WinError 123] 文件名、目录名或卷标语法不正确错误。

具体解决方案

1. 修改SAM模板(template.yaml)的镜像配置

在Lambda函数的Metadata或Properties中调整镜像标签格式,替换冒号为Windows兼容的字符(如下划线_或连字符-):

Resources:
  InferenceFunction:
    Type: AWS::Serverless::Function
    Properties:
      PackageType: Image
      ImageConfig:
        Command: ["app.lambda_handler"]
    Metadata:
      DockerTag: latest
      DockerContext: ./
      Dockerfile: Dockerfile
      # 可选:指定自定义镜像名称,避免冒号
      DockerImage: inferencefunction_latest

2. 自定义构建时的镜像标签

执行sam build时,通过--docker-build-args参数指定不含冒号的镜像名称:

sam build --docker-build-args "-t inferencefunction_latest" && sam deploy --guided

3. 清理缓存与旧镜像

残留的缓存或旧镜像可能引发冲突,执行以下命令清理:

# 清理SAM构建缓存
sam build --use-container --cached
# 删除本地不符合命名规则的旧镜像
docker rmi inferencefunction:latest

4. 检查Dockerfile的兼容性

确保Dockerfile中未使用Windows不支持的路径或命令:

  • 所有文件路径使用相对路径,避免含特殊字符的绝对路径
  • 验证CMD或ENTRYPOINT命令的语法正确性

内容的提问来源于stack exchange,提问作者Joysn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:54:40