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

CDK Python部署时无法从SSM参数存储中获取值

问题原因与解决办法
  • 为啥会输出Token:CDK是声明式的基础设施代码工具,在执行cdk deploy的前期(合成阶段),不会去AWS拉取SSM参数的实际值。你看到的${Token[TOKEN.358]}是CDK生成的占位符,用来标记这个值会在部署过程中或者资源运行时被替换成真实的SSM参数值。而你写的print是在本地运行CDK代码时执行的,这时候还没和AWS交互拿真实值,所以输出的就是这个占位符。
  • 怎么拿到真实值:
    1. 运行时自动替换:如果是要在部署后的AWS资源(比如Lambda函数)里用这个值,直接用string_value就行,CDK会在部署时把Token替换成真实的SSM参数值,资源运行时就能拿到正确内容。
    2. 本地手动查询:要是想在本地看真实值,直接用AWS CLI查就行:
      aws ssm get-parameter --name "/XAZ-1019/activity/table-name" --query "Parameter.Value" --output text
      
    3. 合成阶段主动获取:如果必须在CDK代码运行时(合成阶段)拿到值,可以用AWS SDK在代码里主动调用SSM的API查询,比如用boto3:
      import boto3
      ssm_client = boto3.client('ssm')
      response = ssm_client.get_parameter(Name="/XAZ-1019/activity/table-name")
      table_name = response['Parameter']['Value']
      print(table_name)
      
      注意这种方式需要本地环境有AWS权限,而且如果参数值更新,CDK不会自动感知,需要重新部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:10:42