您可以在 python 中不使用 CLI 调用 AWS CDK 吗?

Can you call AWS CDK in python without CLI?

是否可以在不使用 cli 的情况下直接在 python(或任何其他语言)中 运行 AWS CDK 生命周期?例如

app.py

    app = cdk.App()
    Stack(app, ..)
    app.synth()

    app.deploy()

运行 python

    python app.py   //instead of cdk deploy...

这可能有助于准备临时测试场景。

今天的可能性:

在没有 cdk synth 的情况下以编程方式合成模板?

是的。 CDK 的 testing constructs 就是这样工作的。测试以编程方式断言 synth-ed 模板。

template = Template.from_stack(processor_stack)

template.resource_count_is("AWS::SNS::Subscription", 1)

在没有 cdk deploy 的情况下以编程方式部署应用程序?

不是以 OP 描述的方式,但您可以接近 CDK 的 CI/CD 结构。 CDK Pipelines construct synths and deploys CDK apps programatically. Build a pipeline that builds and tears-down a testing environment on each push to your remote repository. Alternatively, a standalone CodeBuild Project 可与 cdk deploy 应用程序的命令一起使用,并在事件触发时执行测试。

另外值得一提的是 cdk watch 用于快速本地开发迭代。它会在您编写代码时自动部署增量更改。