AWS CDK 在不同的 .yaml 模板中使用“dependsOn”

问题描述 投票:0回答:1

我有几个不同的 .yaml 文件定义各种堆栈:dynamodb.yaml、sns.yaml、sqs.yaml、batch.yaml、gateway.yaml、stepfunction.yaml、users_roles.yaml 等。

在旧世界(在使用现代 aws-cdk-lib 之前),我曾经有一种使用 bash 脚本读取所有这些 yaml 定义的资源的老套方法,现在我想将其升级为使用现代方式,我遇到的问题之一是这些 .yaml 文件中的

dependsOn
字段,例如

在我的

gateway.yaml
文件中:

AWSTemplateFormatVersion: '2020-02-09'
Resources:
  NiceComputeAPI:
    DependsOn:
      - ComputeRole
    Type: AWS::ApiGateway::RestApi

其中

ComputeRole
是在此
users_roles.yaml
文件中定义的 iam 角色:

AWSTemplateFormatVersion: '2020-02-09'
Resources:
  ComputeRole:
    Type: AWS::IAM::Role

在我能找到的所有资源/代码示例中,都是在同一个 .yaml 模板文件中使用

dependsOn
,而不是跨不同的 .yaml 文件。

我看到了这个问题及其两条评论,看起来不可能,但仍然想将其作为一个单独的问题提出来确定。

如果不可能,唯一可能的方法是将所有不同的 .yaml 文件合并到一个整体 .yaml 文件中吗? 换句话说,AWS-CDK 迫使开发人员采用单一方法而不是各种迷你模板文件?

非常感谢!

amazon-web-services yaml aws-cloudformation amazon-iam aws-cdk
1个回答
0
投票

所以简短的回答是否定的。 CDK 并不强迫您构建一个整体堆栈。事实恰恰相反。 CDK 允许您构建可跨堆栈重用的抽象,以及以更合理的方式构建和维护堆栈的能力(请参阅NestedStack 构造)。

因此,您可以将它们保留在各自的堆栈中,并使用覆盖的堆栈和

dependsOn
 API 来编排它们,而不是使用脚本将小堆栈装订在一起并使用 
node.addDependency
来维护构建顺序。

请参阅本页,了解构造和各个级别的说明。

请参阅此页面,了解有关在一个项目中部署多个堆栈的教程。

© www.soinside.com 2019 - 2024. All rights reserved.