AWS CDK同栈创建SSM参数后引用提示无法获取参数错误
问题场景
在CDK栈内先创建带占位测试值的SSM参数,再将该参数引用到Chatbot配置中,预期参数部署完成后供Chatbot读取调用。
使用的实现代码如下:
new ssm.StringListParameter(this, 'store-slack-ssm-param', { parameterName: "slackChannelChatbotConfiguration", stringListValue: ['slackChannelNameTobeAddedFromConsole', 'slack channelIdFromConsole'], }); const slackParam = new CfnParameter(this, 'access-slack-ssm-param', { type: 'AWS::SSM::Parameter::Value<List<String>>', default: 'slackChannelChatbotConfiguration', }) new chatbot.SlackChannelConfiguration(this, 'chatbot-slack-notification', { slackChannelConfigurationName: Fn.select(0, slackParam.valueAsList), slackWorkspaceId: this.slackWorkspaceId, slackChannelId: Fn.select(1, slackParam.valueAsList), notificationTopics: [this.snsTopic], })
部署过程中抛出错误:
[ValidationError]: Unable to fetch parameters [slackChannelChatbotConfiguration] from parameter store for this account.
- 补充验证结果:手动预先在账号中创建对应SSM参数,再在CDK代码中直接引用可正常运行,仅CDK同栈内先创建参数、再引用的场景下功能异常。
根因分析
使用AWS::SSM::Parameter::Value类型的CfnParameter引用SSM参数时,返回的是Token占位符而非实际参数值,参数值由CloudFormation在部署的参数解析阶段统一从Parameter Store拉取,这个拉取动作执行时机早于栈内所有资源的创建流程。
同栈内定义的SSM参数属于待创建资源,在CloudFormation执行参数拉取的环节还未实际写入Parameter Store,自然无法被读取,只有引用部署启动前就已经存在的存量SSM参数时,这种动态引用方式才能正常生效。
修复方案
同栈内创建的SSM参数不需要通过动态引用方式拉取,直接使用StringListParameter构造返回的实例属性传参即可,CDK会自动为两个资源添加依赖关系,保证SSM参数创建完成后再创建Chatbot配置资源:
// 先创建SSM参数,保留实例引用 const slackSsmParam = new ssm.StringListParameter(this, 'store-slack-ssm-param', { parameterName: "slackChannelChatbotConfiguration", stringListValue: ['slackChannelNameTobeAddedFromConsole', 'slack channelIdFromConsole'], }); new chatbot.SlackChannelConfiguration(this, 'chatbot-slack-notification', { // 直接读取SSM参数实例的属性值,不需要额外做参数拉取 slackChannelConfigurationName: Fn.select(0, slackSsmParam.stringListValue), slackWorkspaceId: this.slackWorkspaceId, slackChannelId: Fn.select(1, slackSsmParam.stringListValue), notificationTopics: [this.snsTopic], })
如果业务场景必须使用动态引用方式加载SSM参数,需要保证被引用的参数在当前栈部署前就已存在,可将SSM参数定义在独立的前置栈中提前部署,或在部署当前栈前手动创建对应参数。
内容的提问来源于stack exchange,提问作者Jatin Mehrotra
相关产品推荐
相关产品推荐

