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

如何在调试CDK Python应用时正常加载cdk.json中的上下文变量

IntelliJ调试Python CDK应用加载cdk.json变量配置方案

直接运行app.py不会触发CDK的默认配置加载逻辑,只有CDK CLI调用时才会自动读取cdk.json的上下文、环境配置,按以下步骤配置即可解决问题:

方案一:修改调试运行入口(推荐,无需改动业务代码)

  • 打开IntelliJ顶部菜单 运行 > 编辑配置,找到你当前用于启动app.py的Python运行配置项
  • 将配置页中的 脚本路径 改为本地CDK CLI的可执行文件路径:
    • macOS/Linux可在终端执行which cdk获取路径,通常为/usr/local/bin/cdk或~/.local/bin/cdk
    • Windows可在cmd执行where cdk获取路径,通常为C:\Users\<你的用户名>\AppData\Roaming\Python\Python<版本号>\Scripts\cdk.exe
  • 在 形参 输入框填入synth --app "python app.py",若只需调试特定栈,可改为synth 你的栈名 --app "python app.py"
  • 保存配置后启动调试,CDK会自动加载当前项目cdk.json中所有定义的上下文变量、配置项

方案二:手动加载cdk.json配置(适合不想修改运行入口的场景)

直接在app.py入口代码中添加cdk.json读取逻辑,初始化App时传入上下文即可:

import json
import os
from aws_cdk import App

# 读取项目根目录的cdk.json文件
cdk_json_path = os.path.join(os.path.dirname(__file__), "cdk.json")
with open(cdk_json_path, "r", encoding="utf-8") as f:
    cdk_config = json.load(f)

# 初始化App时传入上下文字典
app = App(context=cdk_config.get("context", {}))

# 后续栈初始化逻辑保持不变
# MyStack(app, "MyStack")
app.synth()

配置校验

你可以在app.py中添加打印代码验证变量是否加载成功:
print(app.node.try_get_context("你在cdk.json中定义的变量key"))
调试运行后查看控制台输出是否和cdk.json中的配置值一致即可。

注意:如果你的cdk.json配置中使用了环境变量占位符,需要在IntelliJ运行配置的 环境变量 栏补充所有依赖的环境变量,否则仍会出现变量缺失问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:09:03