gpt4 book ai didi

aws-cloudformation - AWS CDK资源创建顺序?

转载 作者:行者123 更新时间:2023-12-04 07:19:41 27 4
gpt4 key购买 nike

我正在使用 AWS CDK。当我部署时,根据AWS控制台中的CloudFormation Events,createWorkflow中的resources(CfnTrigger)createDDBCrawlercreateS3Crawler<之前初始化。这导致 create_failed(Entity not found) 因为 createWorkflow 依赖于这两个资源。

所以我想知道:

  1. AWS CDK 资源生成序列(因为我在函数中没有看到 asyncpromise,因此 TypeScript 正在按顺序处理代码。然后它是一个 CDK/CloudFormation 行为?)

  2. 如何避免这种情况或安排资源创建顺序,除了创建两个堆栈。

export class QuicksightGlue extends Construct {

constructor(scope: Construct, name: string, props: QuicksightGlueProps) {
super(scope, name);
this.createGlueDb(props.glueDb);

for (let zone of zones) {

const ddbCrawler = this.createDDBCrawler(...);

const etlJob = this.createEtlJob(...);

// crawler for processed data
this.createS3Crawler(...);

// create workflow that use crawler
this.createWorkflow(...);
}
}
private createS3Crawler(...) {
return new glue.CfnCrawler(this, 's3Crawler_' + zone, {
name: 's3Crawler_' + zone,
databaseName: glueDb,
role: roleArn,
targets: {
s3Targets: [{ path: s3 }]
}
});
}
private createWorkflow(...) {
const extracDdbWorkflow = new glue.CfnWorkflow(this, `ExtractDdb_` + zone, {
name: `udhcpExtractDdb_` + zone.toLowerCase(),
description: "Workflow to extract and process data from DDB"
});

const scheduledTriggerDdbCrawler = new glue.CfnTrigger(this, 'DdbTrigger_' + zone, {
workflowName: extracDdbWorkflow.name,
type: "SCHEDULED",
schedule: scheduleCronExpression, //"cron(0 * * * ? *)",
description: "Trigger to start the workflow every hour to update ddb data",
actions: [{
crawlerName: ddbCrawler,
}],
});
...

最佳答案

您可以通过在构造的 node 属性上调用 addDependency 来使一个构造变得依赖于另一个构造,如下所示:

// Normally these two constructs would be created in parallel
const construct1 = ...;
const construct2 = ...;

// But with this line, construct2 will not be created until construct 1 is
construct2.node.addDependency(construct1);

Here这是一个实际的例子。


您可能希望将 createS3Crawler 的返回值保存到一个变量,然后将该变量作为参数传递给 createWorkflow。然后,createWorkflow 将对其内部创建的每个依赖于 S3 爬网程序的构造调用 .node.addDependency(createS3Crawler)

关于aws-cloudformation - AWS CDK资源创建顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68586036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com