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

如何在AWS SAM模板中使用!ImportValue获取Lambda层ARN?

解答

首先,你写的Layers: !ImportValue layerName.arn不正确,原因和正确用法如下:

1. 先修正基础模板的输出配置

当前基础模板的Outputs仅定义了输出值,但缺少Export字段——只有配置了导出的输出才能被其他模板通过!ImportValue引用。你需要先修改基础模板的Outputs部分:

Outputs:
  layerName:
    Value: !Ref Psycopg2LayerLambdaLayer
    Export:
      Name: layerName  # 这个名称是后续导入时的唯一标识

注意:!Ref Psycopg2LayerLambdaLayer返回的本身就是该Lambda层的ARN,所以输出值直接是ARN,不需要额外拼接.arn后缀。

2. 新模板中的正确引用写法

Lambda函数的Layers属性是数组类型,因此需要用方括号包裹导入的值,正确写法示例:

Resources:
  YourTargetLambda:
    Type: AWS::Serverless::Function
    Properties:
      # 其他函数配置(如Runtime、Handler等)
      Layers:
        - !ImportValue layerName

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:25:17