我通过 CDK pipelines.CodePipeline 部署了我的生产基础设施。这是一个使用 AWS CodePipeline 服务部署 CDK 应用程序的 CDK 构造。
由于这是完全托管的,我不需要将
cdk deploy
命令放入管道阶段,它会自动为我构建它。
不幸的是,它似乎没有禁用自动回滚的选项。是吗?
我的代码:
from aws_cdk import pipelines
... builds cdk synth
pipeline = pipelines.CodePipeline(
self,
"Pipeline",
cli_version=Toolchain._get_cdk_cli_version(),
cross_account_keys=True,
docker_enabled_for_synth=True,
publish_assets_in_parallel=False,
synth=synth,
)
production = cdk.Stage(
pipeline,
PRODUCTION_ENV_NAME,
env=cdk.Environment(
account=PRODUCTION_ENV_ACCOUNT, region=PRODUCTION_ENV_REGION
),
)
Backend(
production,
constants.APP_NAME + PRODUCTION_ENV_NAME,
env=cdk.Environment(account=PRODUCTION_ENV_ACCOUNT, region=PRODUCTION_ENV_REGION),
stack_name=constants.APP_NAME + PRODUCTION_ENV_NAME,
github_branch="production",
image_tag="prod"
)
pipeline.add_stage(production)
看起来您应该可以通过在 cdk.json
文件中设置
rollback 选项来完成此操作:
rollback:如果为 false,则不会回滚失败的部署。
请务必将 cdk.json 和 cdk.context.json 文件提交到源代码管理。
所以我非常确定通过管道部署时也会使用这些选项。