创建变更集时出错-“dependson必须是字符串或字符串列表”

bxpogfeg  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(368)

我正在使用cloudformation来部署我的代码。在我的yml档案里我有这个 DependsOn 我试图为其添加值为“appapiv1stage”的属性。我试过很多种方法,每次都会出现不同的错误,不知道我做错了什么。在下面的代码段中,我首先用双引号将其添加如下: "AppApiv1Stage" 然后它显示出错误。我再次尝试使用下面的代码,然后它显示错误为“dependson必须是字符串或字符串列表”

Parameters:
  ApiStageSecondDeploymentName:
    Description: API Stage name to use
    Type: String
    Default: v1
Resources:
 AppAPI:
    Type: AWS::Serverless::Api
    DependsOn: AuthFunction
    Properties:
      Name: !Sub ${AWS::StackName}
      StageName: !Ref ApiStageSecondDeploymentName          
      Variables:
        LocalTLD: local                                    # Deploys a Dev stage to use for tests and development
      MethodSettings:
        - LoggingLevel: ERROR
          MetricsEnabled: True
          DataTraceEnabled: True
          HttpMethod: '*'
          ResourcePath: '/*'
          ThrottlingBurstLimit: !Ref ApiBurstLimit
          ThrottlingRateLimit: !Ref ApiRateLimit
ApiMapping:
    DependsOn: !Sub AppAPI !Ref ${ApiStageSecondDeploymentName}Stage
    Type: AWS::ApiGateway::BasePathMapping
    Properties:
      BasePath: !Ref ApiStageSecondDeploymentName
      DomainName:
        Fn::ImportValue: !Sub ${CustomDomainStack}-DNSName
      RestApiId: !Ref AppAPI

我也试过加入!但又出现了错误。

egmofgnx

egmofgnx1#

不知道我做错了什么 DependsOn 如错误所述,必须是字符串或字符串列表。不是内在函数(sub,ref)。
更重要的是,内在函数只能在模板中的少数地方使用,而这些地方都不是 DependsOn . 来自文档:
只能在模板的特定部分使用内部函数。目前,您可以在资源属性、输出、元数据属性和更新策略属性中使用内部函数。还可以使用内部函数有条件地创建堆栈资源。

相关问题