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

能否不使用SAM仅通过CloudFormation YAML部署AWS Lambda Containers

完全可行。SAM只是在CloudFormation基础上做了语法简化和流程封装,所有SAM支持的Lambda容器部署能力,都可以通过原生CloudFormation YAML实现,不存在任何功能限制。

核心部署逻辑
  • 第一步:提前将构建好的Lambda容器镜像推送至和部署区域同地域的Amazon ECR仓库,确保仓库权限允许Lambda服务拉取镜像
  • 第二步:在CloudFormation模板中定义AWS::Lambda::Function资源,将PackageType参数设置为Image,在Code.ImageUri字段填写你的ECR镜像地址即可
最简模板示例
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  # Lambda容器函数定义
  ContainerLambdaDemo:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: container-lambda-demo
      PackageType: Image
      # 替换为你自己的ECR镜像URI
      Code:
        ImageUri: 123456789012.dkr.ecr.us-east-1.amazonaws.com/lambda-container-demo:v1
      # 替换为你自己的Lambda执行角色ARN
      Role: arn:aws:iam::123456789012:role/lambda-container-exec-role
      MemorySize: 512
      Timeout: 60
      # 可选:覆盖镜像默认的入口、命令和工作目录,不需要可删除
      ImageConfig:
        Command:
          - "index.handler"
和SAM部署的区别
  • 无需安装SAM CLI,也不需要执行sam build/sam deploy等专属命令,直接使用CloudFormation标准部署方式即可,比如控制台上传模板、调用aws cloudformation deploy命令
  • SAM自带镜像构建、ECR自动推送的流程能力,使用原生CloudFormation需要你自行完成镜像构建、ECR推送的前置操作
  • 所有Lambda容器的配置能力完全一致,包括环境变量、VPC配置、并发设置、文件系统挂载等,都可以在原生CloudFormation资源中直接配置

注意:如果使用私有ECR仓库,需要保证Lambda执行角色拥有ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:BatchCheckLayerAvailability三个权限,否则Lambda会因为无法拉取镜像启动失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:39:03