news 2026/9/13 23:59:19

5分钟跑通 CDK Python 应用:从 0 到部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5分钟跑通 CDK Python 应用:从 0 到部署

5分钟跑通 CDK Python 应用:从 0 到部署

【免费下载链接】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

先看清改动去向:一行 Stack 定义会走多远

你改了 Stack 定义里的一行属性,云端会怎么变?S3 桶要重建吗?Lambda 要重新部署吗?答案藏在 CloudFormation 模板里,要等部署完才见真章。awesome-copilot 仓库有一份现成的拆法,入口在 skills/aws-cdk-python-setup/SKILL.md。它覆盖 AWS(Amazon Web Services)CDK(Cloud Development Kit)Python 工程全流程。所有命令可直接复制,5 分钟从环境检查走到cdk deploy

看懂输入输出:这套流程替你做了什么

整条链路是一组明确的映射:

  • 输入是 Python 代码:你在app.py和 Stack 类里写资源定义;
  • 输出是 CloudFormation 模板:cdk synth把代码翻译成cdk.out/下的 JSON;
  • 云端只在确认后变:cdk diff先预览,cdk deploy再执行;
  • 分工是三方:你写代码,CLI(Command Line Interface)翻译模板,CloudFormation 落成资源。

把这组映射记下来,后面每个里程碑都知道在验证哪一环。

动手:按五个里程碑把栈推上云端

里程碑 1:让 cdk 命令有反应

先给本地环境做体检,四个工具缺一不可:

工具最低版本职责
Node.js≥ 14.15.0承载 CDK CLI 运行时
Python≥ 3.7编写 Stack 定义
AWS CLI最新稳定版管理凭据、调 AWS API
Git任意现代版本版本控制
node -v python --version

这两条只查版本,不产生任何云端动作。期望分别看到v14.x3.7以上的数字。

npm install -g aws-cdk cdk --version

第一条命令全局装 CLI,装完cdk才存在。第二条期望打印版本号,如2.1xx.x。看到版本号,这条里程碑达成。

⚠️cdk提示 command not found?先跑node -v,低于 14.15 就升级 Node。版本没问题就查 npm 全局目录是否在 PATH。Windows 上装完记得重开终端。

里程碑 2:把凭据配通

CDK 部署时代你调 AWS API,身份必须先行。

# macOS brew install awscli # Linux / Windows:用发行版包管理器或官方安装脚本

装完跑配置向导:

aws configure

按提示填四项:Access Key、Secret Key、默认区域(如ap-southeast-1)、输出格式(建议json)。区域填错最伤。它决定cdk deploy默认落到哪个环境,新手容易翻车。

aws sts get-caller-identity

期望返回一段 JSON,里面有Account账号 ID。看到账号号,凭据这条线就通了。

⚠️ 报NoCredentialProvidersAccessDenied?重跑aws configure。再检查AWS_PROFILE是不是把配置指到了别处。

里程碑 3:生成第一个 Python 工程骨架

mkdir my-cdk-project && cd my-cdk-project cdk init app --language python

init生成一套标准骨架。别改它的布局,仓库里的自动化扫描靠它认工程:

文件 / 目录作用
app.py应用入口,实例化 Stack
my_cdk_project/包目录,Stack 定义放这里
requirements.txt依赖清单(aws-cdk-lib+constructs
cdk.json工程标记文件,声明 app 入口命令

cdk.json就是扫描 IaC(Infrastructure as Code)资产时的指纹。skills/aws-cost-optimize/SKILL.md 找它来确认"这是 CDK 工程"。

里程碑 4:合成第一条 CloudFormation 模板

source .venv/bin/activate # macOS / Linux 用上一行;Windows 改用 .venv\Scripts\activate pip install -r requirements.txt

激活后提示符出现(.venv)前缀。装依赖是把aws-cdk-lib(核心构造库)拉进本地环境。Stack 里所有资源类都来自它。

cdk synth

期望输出:终端打印以AWS::CloudFormation::Stack开头的 JSON。cdk.out/同时落盘。这一步纯本地、不碰云端,是验证代码能否跑通的最便宜手段。

⚠️ 报No module named 'aws_cdk'?虚拟环境没激活或依赖没装全。确认提示符带(.venv),再重跑一遍pip install -r requirements.txt

里程碑 5:跑完 diff、bootstrap 与 deploy

部署前的安全动作:

cdk diff

它拿本地模板和云端状态逐条比对。输出列出新增、更新、删除的资源。第一次部署时云端是空的。diff 会显示整栈新增,清单全绿就能放心下手。

cdk bootstrap

它给目标"账号 + 区域"建一套环境。包括资产存储桶(S3)和 IAM(Identity and Access Management)角色。Lambda 代码包要先传到云端,这步就是备仓库。每个账号 + 区域组合只需执行一次。

cdk deploy

期望:先打印变更摘要。你输入y确认后开始建栈,最后返回栈的 ARN(Amazon Resource Name)。拿到 ARN,栈就在云端活了。

⚠️deploy报找不到资产桶?回跑cdk bootstrap。并确认区域和 bootstrap 时一致。

卡住了?按这个顺序自查

  • cdk doctor:它汇总 Node、Python、CLI 版本与凭据状态。环境问题一次看清;
  • 验凭据:aws sts get-caller-identity出账号号才算通。没通过就重跑aws configure
  • 查区域:aws configure get region要有值。且和 bootstrap、deploy 用同一个。

仓库里接着往下读

  • 部署完核对云端真实状态,翻 skills/aws-resource-query/SKILL.md:只读,用自然语言查 EC2、S3、Lambda;
  • 栈跑起来后看成本,skills/aws-cost-optimize/SKILL.md 扫 IaC 与云端资源,给出优化建议;
  • 架构层过六大支柱,skills/aws-well-architected-review/SKILL.md 按支柱逐条检查栈定义。

以上技能与 agents/aws-principal-architect.agent.md 都挂在 plugins/aws-cloud-development/plugin.json 声明的 AWS 技能集群下,一次装齐。

把这条线接下去

你现在拥有"写码 → 合成 → 审查 → 部署"的完整闭环。接下来给栈加一个 S3 桶。只看cdk diff的输出,说出它会发生什么。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 23:57:33

从脚手架到 AI 低代码:JeecgBoot 与若依走出了两条路

先泼冷水:它们根本不是同类若依是一套权限管理脚手架, 它涵盖以下方面, 一为用户, 二是角色, 三乃菜单, 接着是代码生成, 有共18个功能。它拥有代码薄的特征, 处于无黑盒的情况, 所有业务需要自己去编写。它获得了43,067个Star, 还有34,102个Fork, 是全中国Java后台…

作者头像 李华
网站建设 2026/9/13 23:51:37

扩散模型教程(Diffusion model)

1.写在前面 扩散模型是一类重要的深度生成模型.它的基本思想不是一步生成一个复杂样本,而是先定义一个固定的前向随机过程,把真实样本逐步扰动为近似高斯噪声;再学习一个反向过程,从噪声一步步恢复数据&#xf…

作者头像 李华
网站建设 2026/9/13 23:50:51

2026年高教社杯全国大学生数学建模竞赛A题药材的烘干问题-完整版Word论文,完整版Matlab代码,可直接运行和复制

A题 药材的烘干问题干燥是决定中药材成品品质的关键工序之一,其中热风烘干是一种常见的干燥方式。该方式主要包括预热平衡和恒温干燥两个阶段,通过调控烘房温湿环境,完成药材的干燥。在中药材烘干过程中,工艺参数选取不当容易导致…

作者头像 李华
网站建设 2026/9/13 23:50:44

工业HMI数据架构设计:IEC标准与实践指南

1. 工业HMI数据架构设计概述在工业自动化领域,人机界面(HMI)作为操作人员与控制系统交互的关键纽带,其数据架构设计直接影响着整个生产系统的可靠性和可维护性。一个设计良好的HMI数据架构能够显著提升操作效率、降低维护成本,同时确保系统符…

作者头像 李华