内容:-我正在尝试创建包含虚拟值的SSM参数。然后在聊天机器人配置中对它们进行访问和引用。
一旦它被存储,我想在聊天机器人中访问它。
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代码是无效的。
更新:根据这个https://docs.aws.amazon.com/cdk/v2/guide/get_ssm_value.html
这些方法返回令牌,而不是实际值。该值在部署期间由AWS CloudFormation解析。
ssm的值是在部署期间解析的,所以当您创建ssm时,它是不可访问的,但是如果您已经拥有类似的现有参数,这是可行的。
发布于 2022-07-06 07:27:10
您不需要CfnParameter构造--正如您已经发现的那样,它需要在部署之前存在该参数。
只需使用正在创建的参数,如下所示:
const slackParam = new ssm.StringListParameter(this, 'store-slack-ssm-param', {
parameterName: "slackChannelChatbotConfiguration",
stringListValue: ['slackChannelNameTobeAddedFromConsole', 'slack channelIdFromConsole'],
});
new chatbot.SlackChannelConfiguration(this, 'chatbot-slack-notification', {
slackChannelConfigurationName: Fn.select(0, slackParam.stringListValue),
slackWorkspaceId: this.slackWorkspaceId,
slackChannelId: Fn.select(1, slackParam.stringListValue),
notificationTopics: [this.snsTopic],
});https://stackoverflow.com/questions/72877803
复制相似问题