Amazon dynamodb 尝试从无服务器堆栈导出dynamodb表变量失败,内部函数失败!裁判

Amazon dynamodb 尝试从无服务器堆栈导出dynamodb表变量失败,内部函数失败!裁判,amazon-dynamodb,amazon-cloudformation,serverless-framework,aws-serverless,Amazon Dynamodb,Amazon Cloudformation,Serverless Framework,Aws Serverless,我有一个使用无服务器框架构建的工作堆栈,其中包括一个dynamodb表(堆栈已经成功部署)。我正在尝试导出dynamo表的变量(基本上是name和arn),以便在我部署的另一个堆栈中使用这些变量 为此,我有以下几点: 在serverless.yml中: resources: Resources: AqDataTable: ${file(resources/AqDataTable.yml):AqDataTable} Outputs: AqDataTableName: ${f

我有一个使用无服务器框架构建的工作堆栈,其中包括一个dynamodb表(堆栈已经成功部署)。我正在尝试导出dynamo表的变量(基本上是name和arn),以便在我部署的另一个堆栈中使用这些变量

为此,我有以下几点:

在serverless.yml中:

resources:
  Resources:
    AqDataTable: ${file(resources/AqDataTable.yml):AqDataTable}
  Outputs:
    AqDataTableName: ${file(resources/AqDataTable.yml):Outputs.AqDataTableName}
    AqDataTableArn: ${file(resources/AqDataTable.yml):Outputs.AqDataTableArn}

(...)

custom:
  AqDataTable:
    name: !Ref AqDataTable
    arn: !GetAtt AqDataTable.Arn
    stream_arn: !GetAtt AqDataTable.StreamArn
在resources/AqDataTable.yml中:

Outputs:
  AqDataTableName:
    Value: ${self:custom.AqDataTable.name}
    Export:
      Name: ${self:custom.AqDataTable.name}-Name
  AqDataTableArn:
    Value: ${self:custom.AqDataTable.arn}
    Export:
      Name: ${self:custom.AqDataTable.name}-Arn
尝试部署时,出现以下错误:

Serverless Error ---------------------------------------
 
  Trying to populate non string value into a string for variable ${self:custom.AqDataTable.name}. Please make sure the value of the property is a string.
我解决这个问题的方法是替换
中serverless.yml自定义部分中的
AqDataTable.name
值!将AqDataTable
引用为“硬编码”值:
AqDataTable-${self:provider.stage}
,但显然这是一种我希望避免的错误做法

如果您能告诉我为什么这种堆栈格式会使文件无效,我将不胜感激!Ref的内在功能,或更好的方式来实现我在这里所追求的


非常感谢

如果有人遇到这个问题:

在再次查看文档之后,显然我最初尝试做的是不可能的。根据CF文件:

对于输出,导出的Name属性的值不能使用Ref 或依赖于资源的GetAtt函数

类似地,ImportValue函数不能包含Ref或GetAtt 依赖于资源的函数