You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以无服务器方式调度AWS CDK栈的工作日部署与销毁?

无服务器定时部署/销毁AWS CDK栈的方案

当然有,完全可以用EventBridge + Lambda的无服务器组合实现,不用操心EC2实例的运维,具体落地步骤如下:

  • 第一步:打包并托管CDK代码
    把你的CDK项目打包(比如用cdk synth生成CloudFormation模板,或者直接把整个项目代码打成zip包),上传到一个S3桶中,方便后续Lambda拉取使用。

  • 第二步:编写执行CDK操作的Lambda函数
    选择和你CDK开发语言匹配的Lambda运行时(比如Node.js或Python),在函数代码里完成这些操作:

    1. 从S3下载CDK项目代码到Lambda的临时目录
    2. 安装CDK依赖(执行npm install或pip install)
    3. 执行CDK命令:部署用cdk deploy --require-approval never,销毁用cdk destroy --force
      注意要给Lambda配置足够的IAM权限:包括S3读取权限、CloudFormation的创建/删除权限、Aurora与ECS相关资源的操作权限,以及CDK运行所需的sts:AssumeRole等权限。
  • 第三步:用EventBridge配置定时触发规则
    创建两个EventBridge定时规则:

    • 上班前触发:设置cron表达式(比如0 8 ? * MON-FRI *,对应工作日早8点,时区按需调整),触发执行部署的Lambda函数
    • 下班后触发:设置0 18 ? * MON-FRI *这类表达式,触发执行销毁的Lambda函数
  • 额外优化建议

    • 把AWS账号ID、区域等环境变量配置在Lambda的环境变量中,避免硬编码
    • 给Lambda分配足够的内存和超时时间(部署/销毁栈可能需要数分钟)
    • 在Lambda中添加日志输出,方便排查执行异常

另外还有个简化思路:如果你的CDK栈已经定义完成,也可以直接在Lambda里调用CloudFormation的API(用AWS SDK的createStack和deleteStack方法)来创建/删除栈,省去在Lambda中安装CDK的步骤,执行效率更高。

内容的提问来源于stack exchange,提问作者CKey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:53:15