您可以在 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 用于快速本地开发迭代。它会在您编写代码时自动部署增量更改。
是否可以在不使用 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 用于快速本地开发迭代。它会在您编写代码时自动部署增量更改。