[英]Unable to fetch parameters from SSM using AWS CDK?
什么:- 我正在嘗試創建包含虛擬值的 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 的值在部署期間被解析,因此當您創建它時無法訪問,但如果您已經擁有類似的現有參數,則此方法有效。
您不需要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 ://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringListParameter.html#stringlistvalue-1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.