Amazon dynamodb 尝试从无服务器堆栈导出dynamodb表变量失败,内部函数失败!裁判
我有一个使用无服务器框架构建的工作堆栈,其中包括一个dynamodb表(堆栈已经成功部署)。我正在尝试导出dynamo表的变量(基本上是name和arn),以便在我部署的另一个堆栈中使用这些变量 为此,我有以下几点: 在serverless.yml中: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
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 依赖于资源的函数