ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

AWS CDK Python 项目搭建完整实战:从空目录到 cdk deploy 的最快路径

2026/9/13 12:38:15 拓冰建站 浏览量
AWS CDK Python 项目搭建完整实战:从空目录到 cdk deploy 的最快路径 AWS CDK Python 项目搭建完整实战从空目录到 cdk deploy 的最快路径【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot本文以 awesome-copilot 仓库中的 AWS CDK 技能为参照带你用最短路搭建一个 AWS CDK Python 项目用 Python 代码定义基础设施由 CloudFormation 完成真实部署。读完即可独立完成环境自检、cdk init、cdk synth到cdk deploy的全流程。一、环境自检四个工具一次过CDK 的链路横跨两个运行时CLI 跑在 Node.js 上应用代码跑在 Python 上再叠加 AWS 凭据与版本控制。开写之前先逐项验证比部署中途报错再回头排查要快得多。检查项验证命令预期输出不通过怎么办Node.jsnode -vv14.15.0以上建议 18升级 Node推荐用版本管理器安装CDK CLI 依赖 npm 分发Pythonpython3 --version3.7 以上建议 3.9安装对应版本过低的 Python 会拉不到aws-cdk-lib发行包AWS CLIaws --versionaws-cli/2.x或 1.xmacOS 用brew install awscliLinux 用发行版包管理器AWS 凭据aws sts get-caller-identity返回含Account、Arn、UserId的 JSON执行aws configure重新录入 Access Key 与默认区域Gitgit --versiongit version 2.x用系统包管理器安装任何现代版本即可凭据验证失败是最常见的拦路虎aws sts get-caller-identity是仓库内多个 AWS 技能如 skills/aws-resource-query/SKILL.md统一采用的身份确认入口它通过就意味着后续cdk命令的云端调用有合法身份。二、最短路径5 条命令跑通项目骨架 在空目录中依次执行mkdir my-cdk-project cd my-cdk-project # 建空目录并进入 cdk init app --language python # 生成 Python 应用骨架与 .venv 虚拟环境 source .venv/bin/activate # 激活虚拟环境Windows 用 .venv\Scripts\activate pip install -r requirements.txt # 安装 aws-cdk-lib 与 constructs cdk synth # 验证向 cdk.out/ 输出 CloudFormation 模板最后一条命令若打印合成成功信息并生成cdk.out/目录说明骨架已可运行。只想跑通的读者看到这里即可下面两节解释每条命令背后的机制。三、每步为何必要init、venv 与依赖的分工cdk init到底做了什么。它按 Python 语言模板生成一套约定俗成的工程结构并预建虚拟环境。核心产物如下生成文件 / 目录作用app.py主入口实例化App并把 Stack 注册进去my_cdk_project/my_cdk_project_stack.pyStack 定义文件你的 AWS 资源都写在这里requirements.txt依赖清单声明aws-cdk-lib与constructscdk.jsonCDK 配置声明 app 入口命令与上下文同时是CDK 工程的标记文件.venv/模板预建的虚拟环境aws-cdk-lib 与 constructs 的分工。CDK 应用的本质是一棵 Construct 树constructs包提供树的基类IConstructaws-cdk-lib则基于它实现全部 AWS 服务的构造类aws_s3、aws_lambda、aws_ec2……。你在 Stack 里add_的每个资源都是树上的一个节点cdk synth的工作就是遍历这棵树把节点翻译为 CloudFormation 模板。虚拟环境为何不能省。直接装到全局 Python 会让aws-cdk-lib的版本随项目漂移团队和 CI 之间不可复现。激活后提示符出现(.venv)前缀后续所有cdk/pip命令都在隔离环境中执行。cdk.json的双重身份。它不仅是配置还是自动化工具识别这是不是 CDK 工程的标记。仓库里的 skills/aws-cost-optimize/SKILL.md 会扫描**/cdk.json来发现 IaC 资产skills/aws-well-architected-review/SKILL.md 则结合cdk.json与lib/**/*.ts定位 CDK 资产。保留模板默认布局app.py 同名包 cdk.json这些扫描才能命中。完整技能说明见 skills/aws-cdk-python-setup/SKILL.md。四、部署前校验闭环synth → diff → bootstrap → deploy命令本地 / 云端何时需要一句话作用cdk synth本地每次改代码后遍历构造树产出 CloudFormation 模板到cdk.out/cdk diff云端比对每次部署前必做与线上已部署模板逐条对齐列出新增 / 更新 / 删除cdk bootstrap云端每个账号 区域组合仅一次预建 S3 桶与 IAM 角色暂存待上传资产cdk deploy云端每次发布把合成模板交给 CloudFormation 创建 / 更新资源cdk synth纯本地操作不触碰任何云端资源。用它提前暴露语法错误与非法资源属性成本几乎为零所以应养成改完就 synth的习惯。cdk diff把变更摊开在生效之前。它能抓住最危险的场景——一次重构意外删掉了带数据的资源。cdk bootstrap当 Stack 含 Lambda 代码包、自定义资源等需上传的资产时CDK 需要目标区域中一个专用的资产存储桶与配套角色bootstrap 负责创建它们。同一账号 区域组合只需执行一次换区域才需再来一遍。cdk deploy提交模板前会先打印变更摘要并等待确认。目标账号与区域取自aws configure的默认值可用--profile、--context收窄范围。⚠️--require-approval never会跳过部署确认只建议用于 CI 等自动化场景首次部署一律在开发账号 / 非生产区域验证不要直接打生产。五、部署自检清单 ✅按下 deploy 之前过一遍这份清单□ 虚拟环境已激活提示符带(.venv)前缀□cdk synth无报错cdk.out/模板已生成□cdk diff已运行资源增减列表与预期完全一致□ 目标账号 区域已执行过cdk bootstrap□ 首次验证发生在开发账号 / 区域而非生产□requirements.txt用精确锁定aws-cdk-lib与constructs版本□ 代码已提交 Git且cdk.out/与.venv/在.gitignore中□ Stack 代码里没有硬编码密钥敏感值走 Secrets Manager 或 SSM六、常见报错速查 报错现象可能原因修复命令NoCredentialProviders/AccessDenied凭据缺失、过期或 profile 不对aws configure后跑aws sts get-caller-identity复核找不到模板资产 / 区域相关报错默认区域未设置或设错aws configure get region检查必要时aws configure set region regionnpm 引擎报错 /cdk命令不存在Node.js 低于 14.15.0 或 CLI 未装升级 Node 后npm install -g aws-cdkpip install提示找不到匹配的aws-cdk-libPython 版本过低或源不完整python3 --version确认 ≥ 3.7重试安装deploy 报资产桶 / bootstrap 缺失目标账号 区域未初始化cdk bootstrap aws://account-id/regiondiff 出现意外的资源删除代码删了资源或 Stack 改名回滚代码或在代码中显式处理该资源排查无果时cdk doctor是环境诊断首选它一次性收集 Node / Python 版本、CDK CLI 版本、AWS 凭据与配置并输出诊断结论比逐条猜版本要高效。七、生态联动让仓库里的 AWS 技能接管 CDK 之后搭好工程只是起点。plugins/aws-cloud-development/plugin.json 声明的 AWS 技能集群关键词覆盖cdk、cloudformation、serverless、devops正好接住部署后的环节资源核对skills/aws-resource-query/SKILL.md 以自然语言查询 EC2、S3、Lambda 等已部署资源严格只读适合 deploy 之后核对云端真实状态是否与模板一致。成本治理skills/aws-cost-optimize/SKILL.md 扫描仓库 IaC含cdk.json叠加云端资源产出优化建议并转成 Issue 跟踪。架构审查skills/aws-well-architected-review/SKILL.md 按 Well-Architected 六大支柱逐条检查其 CDK 资产识别依赖cdk.json与lib/**/*.ts——这正解释了第三节中保持模板默认结构的价值布局不规范扫描就落空。架构咨询agents/aws-principal-architect.agent.md 作为专家 Agent在设计阶段给出 CDK 方案与取舍分析其准则坚持一切资源皆 IaC手动控制台操作会被标记为技术债。部署后的运行态问题CloudWatch 日志与指标层面的诊断还可以参考 skills/aws-resource-health-diagnose/SKILL.md。八、附录 · 命令速查表安装命令用途npm install -g aws-cdk全局安装 CDK CLIbrew install awsclimacOS 安装 AWS CLILinux 换对应包管理器aws configure交互式录入凭据、默认区域与输出格式初始化命令用途cdk init app --language python生成 Python 应用骨架与虚拟环境source .venv/bin/activate激活虚拟环境pip install -r requirements.txt安装aws-cdk-lib与constructs日常命令用途cdk synth合成 CloudFormation 模板到cdk.out/cdk diff预览与线上模板的资源差异aws sts get-caller-identity确认当前身份与账号部署命令用途cdk bootstrap为账号 区域预建资产存储仅一次cdk deploy把模板交给 CloudFormation 创建 / 更新资源排错命令用途cdk doctor一键诊断 Node / Python / CLI / 凭据环境aws configure get region检查默认区域是否设置node -v/python3 --version复核运行时版本是否达标九、小结AWS CDK 把基础设施变成可合成、可 diff、可回滚的 Python 代码synth管正确性diff管安全性deploy管落地。技能原文与更多细节在 skills/aws-cdk-python-setup/SKILL.md。下一步挑一个开发账号跑通cdk deploy再用资源查询技能核对云端资源把闭环真正走一遍。【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考