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

CloudFormation中如何在Sub内部的ImportValue里嵌套使用Sub?

修正后的正确写法

你当前的配置存在嵌套函数语法格式错误,Fn::ImportValue 原生支持嵌套Fn::Sub作为入参,不需要给Fn::Sub添加单引号,修正后代码如下:

LambdaPermission:
    Type: AWS::Lambda::Permission
    Properties:
      Action: lambda:InvokeFunction
      FunctionName: !GetAtt MyLambdaFunction.Arn
      Principal: apigateway.amazonaws.com
      SourceArn: !Sub 
                    - arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${ApiGateway}/*/POST/CreateBofAParameter
                    - ApiGateway: !ImportValue 
                        Fn::Sub: ${ApiStack}--APIID

可选简化写法

你也可以直接将ImportValue逻辑合并到外层Sub中,无需额外定义参数映射,注意用!转义告诉外层Sub不解析内部函数即可:

LambdaPermission:
    Type: AWS::Lambda::Permission
    Properties:
      Action: lambda:InvokeFunction
      FunctionName: !GetAtt MyLambdaFunction.Arn
      Principal: apigateway.amazonaws.com
      SourceArn: !Sub "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${!ImportValue ${ApiStack}--APIID}/*/POST/CreateBofAParameter"

注意事项

  • 需确认模板参数段已正确声明ApiStack参数,参数类型为String,无拼写错误
  • 需确认导出${ApiStack}--APIID的CloudFormation栈已部署完成,导出名称匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 15:30:04