Amazon web services 依赖于另一个资源的存在的无服务器/云信息资源

Amazon web services 依赖于另一个资源的存在的无服务器/云信息资源,amazon-web-services,amazon-cloudformation,serverless-framework,Amazon Web Services,Amazon Cloudformation,Serverless Framework,我正在尝试使用无服务器框架部署一个Kinesis Firehose,它输出到一个ElasticSearch域 由于Firehose需要ES域在创建之前已经存在,因此我遇到以下错误: 出现错误:MyFirehoseStream-域 arn:aws:es:us-east-1:1234567890:domain/my elastic搜索仍在进行中 正在创建 有没有办法让Firehose创建等待ES域创建完成 为了以防万一,下面是我的serverless.yml文件的相关部分: 仅供参考,我正在使用无

我正在尝试使用无服务器框架部署一个Kinesis Firehose,它输出到一个ElasticSearch

由于Firehose需要ES域在创建之前已经存在,因此我遇到以下错误:

出现错误:MyFirehoseStream-域 arn:aws:es:us-east-1:1234567890:domain/my elastic搜索仍在进行中 正在创建

有没有办法让Firehose创建等待ES域创建完成


为了以防万一,下面是我的
serverless.yml
文件的相关部分:

仅供参考,我正在使用
无服务器伪参数
插件来使用
{AWS::Region}
{AWS::AccountId}

更新:

我现在已经解决了这个问题,因此,如果细节对任何人都有帮助:

我将
DomainARN
属性更改为
{“Fn::GetAtt”:[“MyElasticSearch”,“DomainARN”]}


我最初动态生成ARN的原因是,对于
“Fn::GetAtt”
,我最初尝试使用
ARN
,而不是
DomainArn
,但没有成功。不过巧合的是,
DomainArn
在最新版本中已被弃用,因此如果您使用的是最新版本,
Arn
实际上是正确的。

云信息资源支持
DependsOn
属性


资源:
资源:
MyFirehoseStream:
类型:“AWS::KinesisFirehose::DeliveryStream”
DependsOn:MyElasticSearch


云信息资源支持
DependsOn
属性


资源:
资源:
MyFirehoseStream:
类型:“AWS::KinesisFirehose::DeliveryStream”
DependsOn:MyElasticSearch


谢谢,这似乎是正确的,但我想指出的是,在我的情况下,我实际上不需要
DependsOn
。在您链接到的文档中,它解释了“隐式依赖”,这最终对我有用。我只需要引用其他资源的ARN。谢谢,这似乎是正确的,但我想指出,在我的例子中,我实际上不需要
DependsOn
。在您链接到的文档中,它解释了“隐式依赖”,这最终对我有用。我只需要参考其他资源的ARN。请将您的答案作为实际答案而不是问题编辑;堆栈溢出明确支持自答问题。请将您的答案作为实际答案而不是问题编辑发布;堆栈溢出明确支持自我回答问题。
resources:
  Resources:
    MyFirehoseStream:
      Type: "AWS::KinesisFirehose::DeliveryStream"
      Properties:
        DeliveryStreamName: "MyFirehoseStream"
        DeliveryStreamType: "DirectPut"
        ElasticsearchDestinationConfiguration:
          BufferingHints:
            IntervalInSeconds: 300
            SizeInMBs: 5
          DomainARN:  "arn:aws:es:#{AWS::Region}:#{AWS::AccountId}:domain/my-elastic-search"
          IndexName: "myindex"
          IndexRotationPeriod: "NoRotation"
          RetryOptions:
            DurationInSeconds: 300
          RoleARN: { "Fn::GetAtt": ["FirehoseBackupBucketRole", "Arn" ] }
          S3BackupMode: "FailedDocumentsOnly"
          S3Configuration:
            BucketARN: { "Fn::GetAtt": ["FirehoseBackupBucket", "Arn" ] }
            BufferingHints:
              IntervalInSeconds: 300
              SizeInMBs: 5
            CompressionFormat: "GZIP"
            RoleARN: { "Fn::GetAtt": ["FirehoseBackupBucketRole", "Arn" ] }
          TypeName: "mytype"

    MyElasticSearch:
      Type: "AWS::Elasticsearch::Domain"
      Properties:
        AccessPolicies: ${file(./iam_policies/elastic-search.json)}
        DomainName: "my-elastic-search"
        ElasticsearchVersion: 6.2
        ElasticsearchClusterConfig:
          InstanceCount: "1"
          InstanceType: "t2.small.elasticsearch"
        EBSOptions:
          EBSEnabled: true
          Iops: 0
          VolumeSize: 10
          VolumeType: "gp2"