
从零跑通 AWS CDK Python 项目环境搭建、cdk init 到首次 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-copilotAWS CDK Python 让你用 Python 代码定义基础设施交给 CloudFormation 完成实际部署。读完本文你将完成环境检查、项目初始化、模板合成与首次部署能独立跑通 synth → diff → deploy 完整闭环。 快速上手5 分钟跑通最小项目按顺序执行以下命令每条命令后附上预期输出。node -v python --version预期Node.js 不低于 14.15.0Python 不低于 3.7。低于该版本时先升级工具再继续。npm install -g aws-cdk cdk --version预期打印出 CLI 版本号例如 2.15.0。aws configure交互式输入Access Key、Secret Key、默认区域如 us-east-1、输出格式选 json。mkdir my-cdk-project cd my-cdk-project cdk init app --language python预期目录下出现 app.py、cdk.json、requirements.txt 和 my_cdk_project/ 包。python -m venv .venv source .venv/bin/activate pip install -r requirements.txtcdk synth预期cdk.out/ 目录生成 CloudFormation 模板。核心组件拆解cdk CLI、cdk.json 与依赖清单工具职责对比工具最低版本承担角色Node.js≥ 14.15.0CDK CLI 的运行依赖Python≥ 3.7编写 Stack 与 Construct 定义AWS CLI最新稳定版管理凭据、直接调用 AWS APIAWS CDK CLIcdk最新稳定版init、synth、diff、deploy 等命令入口Git现代版本版本控制与项目协作AWS CDK CLIcdkcdk 是 npm 全局包所有项目操作的统一入口后续 synth、deploy 都是它的子命令。安装后先跑cdk --version确认命令链路可用。AWS CLIaws负责凭据管理aws configure把密钥与区域写入~/.aws/之后 cdk 部署都借用这份身份调用 AWS API。aws sts get-caller-identity返回当前身份的 Account 与 Arn是验证凭据有效性的最快方式。cdk.json项目配置文件声明应用入口与合成上下文。典型内容如下{ app: python3 app.py }app是 cdk 合成应用时执行的命令还可以在其中配置watch与context文件监听、自定义参数。仓库的自动化扫描工具如 CDK 工程识别也把它当作标记文件建议保持不动。requirements.txt 与两个核心依赖aws-cdk-lib是核心构造库包含全部 AWS 服务的资源类constructs是 Construct 基类库。CDK 应用本质上是一棵 Construct 树aws-cdk-lib依赖它来组织资源层级。项目文件结构文件 / 目录作用app.py主入口实例化 Stack 并注册到 Appmy_cdk_project/包目录包含 Stack 定义文件requirements.txt依赖清单cdk.jsonCDK 配置app 入口、上下文.venv/Python 虚拟环境cdk.out/synth 输出CloudFormation 模板完整工作流走查synth、diff、bootstrap 到 deploy 的执行顺序Step 1 安装 CDK CLInpm install -g aws-cdk cdk --version预期输出版本号。踩坑提示安装后仍提示cdk: command not found说明 npm 全局目录不在 PATH 里先用npm config get prefix定位目录。Step 2 配置 AWS 凭据aws configure aws sts get-caller-identity预期后者返回包含 Account 与 Arn 的 JSON。⚠️ 踩坑提示这里配置的默认区域就是 deploy 未显式指定区域时的目标区域一开始就选对可避免后面找不到资源类报错。Step 3 初始化项目mkdir my-cdk-project cd my-cdk-project cdk init app --language python预期生成上一节所示的项目骨架。踩坑提示init 过程中若询问是否自动安装依赖选否——自己在虚拟环境里装避免污染全局 Python。Step 4 创建虚拟环境并安装依赖python -m venv .venv source .venv/bin/activate pip install -r requirements.txt预期命令行提示符出现 (.venv) 前缀pip 安装完成。Step 5 合成 CloudFormation 模板cdk synth预期终端打印模板内容并在 cdk.out/ 中生成模板文件。踩坑提示这一步是纯本地操作、不触碰云端报错时先查代码或依赖而不是 AWS 账号。Step 6 预览变更反向检查cdk diff预期逐条列出将新增 / 更新 / 删除的资源首次项目全部为将新增。⚠️ 踩坑提示每次部署前都先在这里确认没有误删既有资源这是部署前最重要的安全动作。Step 7 bootstrap 引导环境cdk bootstrap预期创建 CDKToolkit 栈包含 S3 资产桶与配套 IAM 角色。踩坑提示每个账号 区域组合只需执行一次重复运行会提示栈已存在属正常现象。Step 8 部署到 AWScdk deploy预期展示变更摘要并要求确认完成后显示 Stack updated successfully。踩坑提示--require-approval never可跳过确认仅建议 CI 等自动化场景使用。Step 9 正向验证部署结果aws cloudformation describe-stacks --stack-name my-cdk-project预期输出中 Status 为 CREATE_COMPLETE表示资源已全部创建成功。踩坑提示栈名不匹配时检查my_cdk_project/中 Stack 定义的栈名与此处传参是否一致。生产环境注意事项先激活虚拟环境再操作所有 cdk / pip 命令都在 (.venv) 下执行避免依赖跨环境串味。用 锁定依赖版本requirements.txt 中对 aws-cdk-lib 与 constructs 精确锁版本保证团队与 CI 构建可复现。部署前必跑 cdk diff让每一次变更可审查、可回滚。开发账号先行验证非生产账号 / 区域先验证模板与资源行为再推向生产。保持模板默认结构app.py、同名包、cdk.json 的布局不要随意改便于仓库自动化扫描识别 CDK 工程。升级 CLI 时同步升级 aws-cdk-lib再重新 cdk synth 验证模板兼容性。 常见故障速查定位凭据、区域与依赖问题cdk: command not foundnpm 全局安装目录不在 PATH → 执行npm config get prefix把其 bin 子目录加入 PATH → 如果仍未解决重新确认npm install -g aws-cdk是否真正执行成功。Unable to locate credentials未配置 AWS 凭据或加载了错误 profile → 重新执行aws configure或用AWS_PROFILE环境变量指向正确 profile → 如果仍未解决用aws sts get-caller-identity验证凭据本身是否有效。deploy 提示缺少 staging bucket该账号 / 区域未执行过引导 → 执行cdk bootstrap→ 如果仍未解决核对凭据文件中的账号与区域是否正是部署目标。ModuleNotFoundError: No module named aws_cdk未在虚拟环境中运行或未装依赖 → 执行source .venv/bin/activate后再pip install -r requirements.txt→ 如果仍未解决确认 cdk.json 的 app 命令实际使用的是虚拟环境里的解释器。区域未设置aws configure get region输出为空 → 重新执行aws configure补填区域 → 如果仍未解决运行cdk doctor全面体检本地环境版本、凭据、配置。延伸与后续本文覆盖本地环境 → 首次部署成功CI/CD 流水线、成本优化与架构审查不在本文范围内可以深入仓库内的这些模块继续技能完整原文与全部命令细节skills/aws-cdk-python-setup/SKILL.md用自然语言查询已部署资源严格只读skills/aws-resource-query/SKILL.md基于 Well-Architected 六支柱做架构审查skills/aws-well-architected-review/SKILL.md下一步你可以把空 Stack 换成第一个真实资源再走一遍 cdk diff → 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),仅供参考