如何 "rebuild" CDK 入口点

How to "rebuild" the CDK entrypoint

一些背景知识,在 typescript 项目中启动了一个 CDK,但由于我是 AWS 的新手,所以不知道这些约定,所以代码是在 /bin 目录的“入口点”上编写的。进一步 reading 我发现我做错了

bin/cdk-workshop.ts is the entrypoint of the CDK application. It will load the stack defined in lib/cdk-workshop-stack.ts.

所以我的问题是,在我将我的代码从 /bin 文件移动到 /lib 之后,我该如何再次生成 bin/cdk-workshop.ts 文件?

cdk.json 文件定义了应用程序的入口点。在您链接的文章中,请注意此要点:

cdk.json tells the toolkit how to run your app. In our case it will be "npx ts-node bin/cdk-workshop.ts"

编辑:

So my question is, after I move my code from the /bin file to the /lib, how do I then generate the bin/cdk-workshop.ts file again?

所以 cdk init 只是一个帮助开发人员搭建起步项目脚手架的工具。这是代码唯一一次获得 'generated'。您不需要再次生成文件。你可以编辑它。它是入口点的原因是因为它创建了 App 的实例并创建了 Stacks 的实例。您可以随意命名文件。

例如,让我们在 binlib 的同一级别创建一个名为 entrypoint 的文件夹。在此文件夹中,我们创建一个名为 startup.ts

的文件

这里可能是 startup.ts

的代码
import * as cdk from '@aws-cdk/core';
import { MyCoolStack} from '../lib/my-cool-stack';
import { MyLameStack} from '../lib/my-lame-stack';

const app = new cdk.App();

new MyCoolStack(app, 'MyCoolStack', {});

new MyLameStack(app, 'MyLameStack', {});

然后有 2 个选项可以将此文件定义为入口点。

  • 内联
  • cdk.json

内联 cdk synth --app "npx ts node entrypoint/startup.ts"

cdk.json

{
  "app":"npx ts node entrypoint/startup.ts"
}

请注意,我从来没有用 typescript 开发过 cdk 应用程序,只是用 C# 开发过,所以这些是我基于它在 C# 项目中的工作方式的假设。